Class: Cassandra::Mapper::Data::Request
- Inherits:
-
Object
- Object
- Cassandra::Mapper::Data::Request
- Defined in:
- lib/cassandra/mapper/data/request.rb
Direct Known Subclasses
Constant Summary collapse
- KEY_SEPARATOR =
'##'
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#keys ⇒ Object
readonly
Returns the value of attribute keys.
-
#subkeys ⇒ Object
readonly
Returns the value of attribute subkeys.
Instance Method Summary collapse
- #columns ⇒ Object
-
#initialize(config, data) ⇒ Request
constructor
A new instance of Request.
- #packed_keys ⇒ Object
- #query(offset = nil) ⇒ Object
Constructor Details
#initialize(config, data) ⇒ Request
Returns a new instance of Request.
7 8 9 10 11 12 |
# File 'lib/cassandra/mapper/data/request.rb', line 7 def initialize(config, data) @config = config @data = convert! data.dup @keys = extract! :key @subkeys = extract! :subkey end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
5 6 7 |
# File 'lib/cassandra/mapper/data/request.rb', line 5 def config @config end |
#data ⇒ Object (readonly)
Returns the value of attribute data.
5 6 7 |
# File 'lib/cassandra/mapper/data/request.rb', line 5 def data @data end |
#keys ⇒ Object (readonly)
Returns the value of attribute keys.
5 6 7 |
# File 'lib/cassandra/mapper/data/request.rb', line 5 def keys @keys end |
#subkeys ⇒ Object (readonly)
Returns the value of attribute subkeys.
5 6 7 |
# File 'lib/cassandra/mapper/data/request.rb', line 5 def subkeys @subkeys end |
Instance Method Details
#columns ⇒ Object
18 19 20 21 22 23 |
# File 'lib/cassandra/mapper/data/request.rb', line 18 def columns fields = data.empty? ? { '' => '' } : data fields.each_with_object({}) do |(field, value), columns| columns[composite *subkeys, field.to_s] = value end end |
#packed_keys ⇒ Object
14 15 16 |
# File 'lib/cassandra/mapper/data/request.rb', line 14 def packed_keys keys.join(KEY_SEPARATOR).force_encoding('binary') end |
#query(offset = nil) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/cassandra/mapper/data/request.rb', line 25 def query(offset=nil) return { start: offset } if offset return if subkeys.all? &:empty? { start: composite(*subkeys), finish: composite(*subkeys, slice: :after) } end |