Class: Clevic::ActiveRecordAdaptor
- Defined in:
- lib/clevic/sequel_ar_adapter.rb
Instance Method Summary collapse
-
#attribute_list(attribute, attribute_value, by_description, by_frequency, find_options, &block) ⇒ Object
values are passed as row objects to block.
-
#count(attribute = nil, options = {}) ⇒ Object
options is a hash.
- #find(options) ⇒ Object
-
#initialize(entity_class) ⇒ ActiveRecordAdaptor
constructor
A new instance of ActiveRecordAdaptor.
- #query_order_description(attribute, attribute_value, find_options) ⇒ Object
- #query_order_frequency(attribute, attribute_value, find_options) ⇒ Object
- #quoted_false ⇒ Object
- #quoted_true ⇒ Object
Constructor Details
#initialize(entity_class) ⇒ ActiveRecordAdaptor
Returns a new instance of ActiveRecordAdaptor.
38 39 40 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 38 def initialize( entity_class ) @entity_class = entity_class end |
Instance Method Details
#attribute_list(attribute, attribute_value, by_description, by_frequency, find_options, &block) ⇒ Object
values are passed as row objects to block
81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 81 def attribute_list( attribute, attribute_value, by_description, by_frequency, , &block ) query = case when by_description entity_class.adaptor.query_order_description( attribute, attribute_value, ) when by_frequency entity_class.adaptor.query_order_frequency( attribute, attribute_value, ) else entity_class.adaptor.query_order_frequency( attribute, attribute_value, ) end entity_class.connection.execute( query ).each( &block ) end |
#count(attribute = nil, options = {}) ⇒ Object
options is a hash
51 52 53 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 51 def count( attribute = nil, = {} ) @entity_class.count( attribute, ) end |
#find(options) ⇒ Object
55 56 57 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 55 def find( ) @entity_class.find( :all, ) end |
#query_order_description(attribute, attribute_value, find_options) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 59 def query_order_description( attribute, attribute_value, ) " select distinct \#{attribute.to_s}, lower(\#{attribute.to_s})\n from \#{@entity_class.table_name}\n where (\#{find_options[:conditions] || '1=1'})\n or \#{@entity_class.connection.quote_column_name( attribute.to_s )} = \#{@entity_class.connection.quote( attribute_value )}\n order by lower(\#{attribute.to_s})\n EOF\nend\n" |
#query_order_frequency(attribute, attribute_value, find_options) ⇒ Object
69 70 71 72 73 74 75 76 77 78 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 69 def query_order_frequency( attribute, attribute_value, ) " select distinct \#{attribute.to_s}, count(\#{attribute.to_s})\n from \#{entity_class.table_name}\n where (\#{find_options[:conditions] || '1=1'})\n or \#{@entity_class.connection.quote_column_name( attribute.to_s )} = \#{@entity_class.connection.quote( attribute_value )}\n group by \#{attribute.to_s}\n order by count(\#{attribute.to_s}) desc\n EOF\nend\n" |
#quoted_false ⇒ Object
42 43 44 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 42 def quoted_false @entity_class.connection.quoted_false end |
#quoted_true ⇒ Object
46 47 48 |
# File 'lib/clevic/sequel_ar_adapter.rb', line 46 def quoted_true @entity_class.connection.quoted_true end |