class Google::Cloud::Bigtable::RowRange

# RowRange

Specifies a contiguous range of rows.

@example

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

# Range that includes all row keys including "user-001" to "user-005"
table.new_row_range.from("user-001").to("user-005", inclusive: true)

# Range that includes all row keys including "user-001" up to exclusive "user-010".
table.new_row_range.from("user-001").to("user-010")

# Range that includes all row keys including "user-001" up until end of the row keys.
table.new_row_range.from "user-001"

# Range that includes all row keys exclusive "user-001" up until end of the row keys.
table.new_row_range.from "user-001", inclusive: false

# Range with unbounded from and the exclusive end "user-010"
table.new_row_range.to "user-010"

# Range that includes all row keys including from and end row keys "user-001", "user-010"
table.new_row_range.between "user-001", "user-010"

# Range that includes all row keys including "user-001" up until "user-010"
table.new_row_range.of "user-001", "user-010"

Public Class Methods

new() click to toggle source

@private Creates a row range instance.

# File lib/google/cloud/bigtable/row_range.rb, line 59
def initialize
  @grpc = Google::Cloud::Bigtable::V2::RowRange.new
end

Public Instance Methods

between(from_key, to_key) click to toggle source

Sets a row range with inclusive upper and lower bounds.

@param from_key [String] Inclusive from row key. Required. @param to_key [String] Inclusive end row key. Required. @return [Google::Cloud::Bigtable::RowRange]

Range with inclusive from and end row keys.

@example

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_row_range.between "key-001", "key-010"
# File lib/google/cloud/bigtable/row_range.rb, line 145
def between from_key, to_key
  from(from_key).to(to_key, inclusive: true)
end
from(key, inclusive: true) click to toggle source

Sets a row range with a lower bound.

@param key [String] Row key. Required. @param inclusive [String] Inclusive/exclusive lower bound.

Default is an inclusive lower bound.

@return [Google::Cloud::Bigtable::RowRange]

@example Inclusive lower bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_row_range.from "key-001"

@example Exclusive lower bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_row_range.from "key-001", inclusive: false
# File lib/google/cloud/bigtable/row_range.rb, line 87
def from key, inclusive: true
  if inclusive
    @grpc.start_key_closed = key
  else
    @grpc.start_key_open = key
  end
  self
end
of(from_key, to_key) click to toggle source

Sets a row range with an inclusive lower bound and an exclusive upper bound.

@param from_key [String] Inclusive from row key. @param to_key [String] Exclusive end row key. @return [Google::Cloud::Bigtable::RowRange]

Range with inclusive from and exclusive end row key.

@example

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_row_range.of "key-001", "key-010"
# File lib/google/cloud/bigtable/row_range.rb, line 165
def of from_key, to_key
  from(from_key).to(to_key)
end
to(key, inclusive: false) click to toggle source

Sets a row range with an upper bound.

@param key [String] Row key. Required. @param inclusive [String] Inclusive/Exclusive upper bound.

Default it is an exclusive upper bound.

@return [Google::Cloud::Bigtable::RowRange]

@example Inclusive upper bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_row_range.to "key-001", inclusive: true

@example Exclusive upper bound.

require "google/cloud/bigtable"

bigtable = Google::Cloud::Bigtable.new
table = bigtable.table "my-instance", "my-table"

range = table.new_row_range.to "key-001"
# File lib/google/cloud/bigtable/row_range.rb, line 120
def to key, inclusive: false
  if inclusive
    @grpc.end_key_closed = key
  else
    @grpc.end_key_open = key
  end
  self
end
to_grpc() click to toggle source

@private

@return [Google::Cloud::Bigtable::V2::RowRange]

# File lib/google/cloud/bigtable/row_range.rb, line 173
def to_grpc
  @grpc
end