Module: Facetious::BaseClassMethods
- Included in:
- ActiveRecord::Base
- Defined in:
- lib/facetious.rb
Overview
These methods are made available on all ActiveRecord classes:
Instance Method Summary collapse
Instance Method Details
#facet(*args) ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'lib/facetious.rb', line 97 def facet *args respond_to?(:facets) or extend FacetedClassMethods facet_name = args.first.is_a?(Hash) ? args[-1][:name] : args.shift unless facet_name raise "Usage: facet :field_name, :title => 'Field Name', :data_type => :string (etc), :where => 'SQL'" end field_name = (args.first.is_a?(Hash) ? args[-1][:field_name] : args.shift) || facet_name title = (args.first.is_a?(Hash) ? args[-1][:title] : args.shift) || facet_name data_type = (args.first.is_a?(Hash) ? args[-1][:data_type] : args.shift) || :string where = args.first.is_a?(Hash) ? args[-1][:where] : args.shift f = self.facets[facet_name] = Facet.new(facet_name, field_name, title, data_type, where) end |