Module: ActiveHash::Enum::Methods
- Defined in:
- lib/enum/enum.rb
Instance Method Summary collapse
- #delete_all ⇒ Object
- #enum(columns) ⇒ Object
- #enum_accessor(*field_names) ⇒ Object
- #insert(record) ⇒ Object
Instance Method Details
#delete_all ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/enum/enum.rb', line 36 def delete_all if @enum_accessors.present? @records.each do |record| constant = constant_for(record, @enum_accessors) remove_const(constant) if const_defined?(constant, false) end end super end |
#enum(columns) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/enum/enum.rb', line 17 def enum(columns) columns.each do |column, values| values = values.zip(values.map(&:to_s)).to_h if values.is_a?(Array) values.each do |method, value| class_eval <<~METHOD, __FILE__, __LINE__ + 1 # frozen_string_literal: true def #{method}? #{column} == #{value.inspect} end METHOD end end end |
#enum_accessor(*field_names) ⇒ Object
12 13 14 15 |
# File 'lib/enum/enum.rb', line 12 def enum_accessor(*field_names) @enum_accessors = field_names reload end |
#insert(record) ⇒ Object
31 32 33 34 |
# File 'lib/enum/enum.rb', line 31 def insert(record) super set_constant(record) if defined?(@enum_accessors) end |