Module: Believer::Columns::ClassMethods
- Defined in:
- lib/believer/columns.rb
Instance Method Summary collapse
- #apply_cql_result_row_conversion=(b) ⇒ Object
- #apply_cql_result_row_conversion? ⇒ Boolean
-
#column(name, opts = {}) ⇒ Object
Defines a column on the model.
-
#columns ⇒ Object
Returns all columns on the model.
- #columns_with_type(t) ⇒ Object
- #get_primary_key ⇒ Object
- #has_compound_key? ⇒ Boolean
- #partition_key ⇒ Object
- #partition_keys ⇒ Object
- #primary_key(*cols) ⇒ Object
- #primary_key_columns ⇒ Object
Instance Method Details
#apply_cql_result_row_conversion=(b) ⇒ Object
87 88 89 |
# File 'lib/believer/columns.rb', line 87 def apply_cql_result_row_conversion=(b) @apply_cql_result_row_conversion = b end |
#apply_cql_result_row_conversion? ⇒ Boolean
80 81 82 83 84 85 |
# File 'lib/believer/columns.rb', line 80 def apply_cql_result_row_conversion? if @apply_cql_result_row_conversion.nil? @apply_cql_result_row_conversion = columns.any? {|name, col| col.apply_cql_result_row_conversion?} end @apply_cql_result_row_conversion end |
#column(name, opts = {}) ⇒ Object
Defines a column on the model. The column name must correspond with the Cassandra column name
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/believer/columns.rb', line 33 def column(name, opts = {}) defaults = { :type => :string } = defaults.merge(opts).merge(:name => name) columns[name] = ::Believer::Column.new() self.redefine_method(name) do read_attribute(name) end self.redefine_method("#{name}=") do |val| write_attribute(name, val) end end |
#columns ⇒ Object
Returns all columns on the model
27 28 29 |
# File 'lib/believer/columns.rb', line 27 def columns @columns ||= {} end |
#columns_with_type(t) ⇒ Object
50 51 52 |
# File 'lib/believer/columns.rb', line 50 def columns_with_type(t) columns.values.find_all {|col| col.ruby_type == t} end |
#get_primary_key ⇒ Object
58 59 60 |
# File 'lib/believer/columns.rb', line 58 def get_primary_key @primary_key.dup end |
#has_compound_key? ⇒ Boolean
76 77 78 |
# File 'lib/believer/columns.rb', line 76 def has_compound_key? @primary_key.size > 1 end |
#partition_key ⇒ Object
66 67 68 |
# File 'lib/believer/columns.rb', line 66 def partition_key @primary_key.first.dup end |
#partition_keys ⇒ Object
70 71 72 73 74 |
# File 'lib/believer/columns.rb', line 70 def partition_keys part_key = partition_key return part_key.dup if part_key.is_a?(Enumerable) [part_key] end |
#primary_key(*cols) ⇒ Object
54 55 56 |
# File 'lib/believer/columns.rb', line 54 def primary_key(*cols) @primary_key = *cols end |
#primary_key_columns ⇒ Object
62 63 64 |
# File 'lib/believer/columns.rb', line 62 def primary_key_columns @primary_key.flatten end |