Module: Aska::ClassMethods
- Defined in:
- lib/aska.rb
Instance Method Summary collapse
- #are_rules?(name) ⇒ Boolean
- #aska_attr_accessors ⇒ Object
- #aska_named(name) ⇒ Object
- #create_instance_variable(k) ⇒ Object
- #defined_rules ⇒ Object
- #look_up_rules(name) ⇒ Object
- #rules(name = :rules, arr = []) ⇒ Object
Instance Method Details
#are_rules?(name) ⇒ Boolean
30 31 32 |
# File 'lib/aska.rb', line 30 def are_rules?(name) !look_up_rules(name).empty? end |
#aska_attr_accessors ⇒ Object
33 34 35 |
# File 'lib/aska.rb', line 33 def aska_attr_accessors @@aska_attr_accessors ||= Rules.new end |
#aska_named(name) ⇒ Object
39 40 41 |
# File 'lib/aska.rb', line 39 def aska_named(name) "#{name}_aska" end |
#create_instance_variable(k) ⇒ Object
22 23 24 25 26 |
# File 'lib/aska.rb', line 22 def create_instance_variable(k) aska_attr_accessors << k.to_sym unless aska_attr_accessors.include?(k.to_sym) attr_reader k.to_sym unless respond_to?("#{k}".to_sym) attr_writer k.to_sym unless respond_to?("#{k}=".to_sym) end |
#defined_rules ⇒ Object
36 37 38 |
# File 'lib/aska.rb', line 36 def defined_rules @defined_rules ||= {} end |
#look_up_rules(name) ⇒ Object
27 28 29 |
# File 'lib/aska.rb', line 27 def look_up_rules(name) defined_rules[name.to_sym] ||= Rules.new end |
#rules(name = :rules, arr = []) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/aska.rb', line 7 def rules(name=:rules, arr=[]) returning look_up_rules(name) do |rs| arr.each do |line| k = line[/(.+)[=\\\<\>](.*)/, 1].gsub(/\s+/, '') v = line[/(.+)[=\\<>](.*)/, 2].gsub(/\s+/, '') m = line[/[=\\<>]/, 0].gsub(/\s+/, '') create_instance_variable(k) rs << {k => [m, v]} end self.send(:define_method, name) do look_up_rules(name) end end end |