class Generators::Simple
Public Instance Methods
generate()
click to toggle source
# File lib/toschas/filterable/generators/simple.rb, line 3 def generate filters.each do |filter| model.define_singleton_method( "by_#{filter}", ->(value) { send(:where, { filter => value }) } ) generate_range_filter(filter) if table_loaded? && range_filter?(filter) end end
Private Instance Methods
generate_range_filter(filter)
click to toggle source
# File lib/toschas/filterable/generators/simple.rb, line 23 def generate_range_filter(filter) model.define_singleton_method( "from_#{filter}", ->(value) { send(:where, "#{filter} > ?", value) } ) model.define_singleton_method( "to_#{filter}", ->(value) { send(:where, "#{filter} < ?", value) } ) end
range_filter?(filter)
click to toggle source
# File lib/toschas/filterable/generators/simple.rb, line 16 def range_filter?(filter) range_types.include?( model.to_s.classify.constantize .type_for_attribute(filter.to_s).type ) end