Module: Tsundere::ClassMethods
- Defined in:
- lib/tsundere/class_methods.rb
Instance Attribute Summary collapse
-
#fail_table ⇒ Object
readonly
Returns the value of attribute fail_table.
-
#look_array ⇒ Object
readonly
Returns the value of attribute look_array.
-
#look_table ⇒ Object
readonly
Returns the value of attribute look_table.
-
#permission_table ⇒ Object
Returns the value of attribute permission_table.
-
#rank_table ⇒ Object
Returns the value of attribute rank_table.
Instance Method Summary collapse
-
#attr_looker(*attributes, opts) ⇒ Object
attr_tsundere.
-
#attr_modifier_thing(*attributes, opts) ⇒ Object
Yes, I realize this function looks like crap, but it’s late, I’m tired and this project is due really soon and I need sleep before I die.
-
#attr_toucher(*attributes, opts) ⇒ Object
attr_looker.
- #attr_tsundere(*attributes, opts) ⇒ Object
Instance Attribute Details
#fail_table ⇒ Object (readonly)
Returns the value of attribute fail_table.
5 6 7 |
# File 'lib/tsundere/class_methods.rb', line 5 def fail_table @fail_table end |
#look_array ⇒ Object (readonly)
Returns the value of attribute look_array.
5 6 7 |
# File 'lib/tsundere/class_methods.rb', line 5 def look_array @look_array end |
#look_table ⇒ Object (readonly)
Returns the value of attribute look_table.
5 6 7 |
# File 'lib/tsundere/class_methods.rb', line 5 def look_table @look_table end |
#permission_table ⇒ Object
Returns the value of attribute permission_table.
6 7 8 |
# File 'lib/tsundere/class_methods.rb', line 6 def @permission_table end |
#rank_table ⇒ Object
Returns the value of attribute rank_table.
6 7 8 |
# File 'lib/tsundere/class_methods.rb', line 6 def rank_table @rank_table end |
Instance Method Details
#attr_looker(*attributes, opts) ⇒ Object
attr_tsundere
15 16 17 |
# File 'lib/tsundere/class_methods.rb', line 15 def attr_looker *attributes, opts attr_modifier_thing *attributes, opts.merge( :type => :looker ) end |
#attr_modifier_thing(*attributes, opts) ⇒ Object
Yes, I realize this function looks like crap, but it’s late, I’m tired and this project is due really soon and I need sleep before I die. I’ll refactor this later. I swear.
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/tsundere/class_methods.rb', line 26 def attr_modifier_thing *attributes, opts @rank_table ||= {} @permission_table ||= {} @fail_table ||= {} [:looker, :toucher].each do |thing| @permission_table[thing] ||= { :array => [] , :table => {} } # looker end # each thing type = opts[:type] perm = opts[:as] fail = opts[:fail] case perm.class.to_s when 'Hash' perm.each do |key, lvl| @rank_table[key] = lvl @fail_table[key] ||= fail @fail_table[lvl] ||= fail ind = [type][:array].binary_search_raw([lvl, attributes]) { |a1, a2| a1.first <=> a2.first } [type][:array].insert(ind, [lvl, attributes]) # .sort! { |a1, a2| a1.first <=> a2.first } end # each perm when 'Fixnum', 'Integer', 'Float' @fail_table[perm] ||= fail ind = [type][:array].binary_search_raw([perm, attributes]) { |a1, a2| a1.first <=> a2.first } [type][:array].insert(ind, [perm, attributes]) # .sort! { |a1, a2| a1.first <=> a2.first } when 'String', 'Symbol' @fail_table[perm] ||= fail attributes.each do |attr| ([type][:table][perm] ||= []) << attr end # each attr end # perm class end |
#attr_toucher(*attributes, opts) ⇒ Object
attr_looker
19 20 21 |
# File 'lib/tsundere/class_methods.rb', line 19 def attr_toucher *attributes, opts attr_modifier_thing *attributes, opts.merge( :type => :toucher ) end |
#attr_tsundere(*attributes, opts) ⇒ Object
8 9 10 11 12 13 |
# File 'lib/tsundere/class_methods.rb', line 8 def attr_tsundere *attributes, opts attr_looker *attributes, opts if defined? Rails and self.respond_to? :helper_method helper_method :tsundere_for end # if end |