hbase-stargate 1.5.1 → 1.5.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -16,7 +16,7 @@ To work with this gem in your Rails application, add this to the environment.rb
16
16
  <pre><code>config.gem 'hbase-stargate', :lib => "stargate", :source => "http://gemcutter.org"</code></pre>
17
17
 
18
18
  To build the gem yourself:
19
- <pre><code>$ rake gem</code></pre>
19
+ <pre><code>$ rake build</code></pre>
20
20
 
21
21
 
22
22
  h2. Getting Started
@@ -75,5 +75,5 @@ $ rake spec STARGATE_URL=http://localhost:8080
75
75
 
76
76
  h2. Copyright
77
77
 
78
- Copyright (c) 2008 Dingding Ye <yedingding@gmail.com>
78
+ Copyright (c) 2008 Openplaces.org
79
79
  Distributed under MIT License
data/Rakefile CHANGED
@@ -1,4 +1,4 @@
1
- require 'spec/rake/spectask'
1
+ require 'rspec/core/rake_task'
2
2
 
3
3
  begin
4
4
  require 'jeweler'
@@ -20,7 +20,7 @@ rescue LoadError
20
20
  puts "Jeweler not available. Install it with: sudo gem install jeweler"
21
21
  end
22
22
 
23
- Spec::Rake::SpecTask.new(:spec) do |t|
24
- t.spec_files = FileList['spec/**/*_spec.rb']
25
- t.spec_opts = File.open("spec/spec.opts").readlines.map{|x| x.chomp}
23
+ RSpec::Core::RakeTask.new do |t|
24
+ t.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
25
+ t.pattern = 'spec/**/*_spec.rb'
26
26
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.5.1
1
+ 1.5.2
@@ -12,11 +12,16 @@ module Stargate
12
12
  raise ArgumentError, "options should be given as a Hash" unless options.instance_of? Hash
13
13
  columns = options.delete(:columns)
14
14
  batch = options.delete(:batch) || "10"
15
+ start_time = options.delete(:start_time)
16
+ end_time = options.delete(:end_time)
15
17
 
16
18
  begin
17
19
  request = Request::ScannerRequest.new(table_name)
18
20
 
19
21
  xml_data = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?><Scanner batch='#{batch}' "
22
+ xml_data += "startTime='#{start_time}' " if start_time
23
+ xml_data += "endTime='#{end_time}' " if end_time
24
+
20
25
  options.each do |key,value|
21
26
  if Model::Scanner::AVAILABLE_OPTS.include? key
22
27
  xml_data << "#{Model::Scanner::AVAILABLE_OPTS[key]}='#{[value.to_s].flatten.pack('m')}' "
@@ -10,6 +10,22 @@ describe Stargate::Operation::ScannerOperation do
10
10
  @client.create_row('test-hbase-stargate', 'row1', nil, {:name => 'col1:', :value => "row1-col1"})
11
11
  @client.create_row('test-hbase-stargate', 'row2', nil, {:name => 'col1:', :value => "row2-col1"})
12
12
  @client.create_row('test-hbase-stargate', 'row3', nil, {:name => 'col1:', :value => "row3-col1"})
13
+
14
+ scan_table = @client.create_table("test-hbase-stargate-scan", "col1")
15
+
16
+ @ts1 = (Time.now - (5*60)).to_i
17
+ @client.create_row("test-hbase-stargate-scan", "rowts11", @ts1, { :name => "col1:", :value => "rowts11-col1-cell1" }).should be_true
18
+ @client.create_row("test-hbase-stargate-scan", "rowts12", @ts1, { :name => "col1:", :value => "rowts12-col1-cell1" }).should be_true
19
+
20
+ @ts2 = (Time.now - (5*60)).to_i + 1000
21
+ @client.create_row("test-hbase-stargate-scan", "rowts21", @ts2, { :name => "col1:", :value => "rowts21-col1-cell1" }).should be_true
22
+ @client.create_row("test-hbase-stargate-scan", "rowts22", @ts2, { :name => "col1:", :value => "rowts22-col1-cell1" }).should be_true
23
+
24
+ @ts3 = (Time.now - (5*60)).to_i + 2000
25
+ @client.create_row("test-hbase-stargate-scan", "rowts31", @ts3, { :name => "col1:", :value => "rowts31-col1-cell1" }).should be_true
26
+ @client.create_row("test-hbase-stargate-scan", "rowts32", @ts3, { :name => "col1:", :value => "rowts32-col1-cell1" }).should be_true
27
+
28
+ @ts4 = (Time.now - (5*60)).to_i + 3000
13
29
  end
14
30
 
15
31
  it "should throw TableNotFoundError if a scanner is requested for an non-existant table" do
@@ -97,7 +113,56 @@ describe Stargate::Operation::ScannerOperation do
97
113
  @client.close_scanner(scanner).should be_true
98
114
  end
99
115
 
116
+ it "should scan all 6 rows when given first timestamp" do
117
+ scanner = @client.open_scanner("test-hbase-stargate-scan", {:start_time => @ts1})
118
+ rows = @client.get_rows(scanner)
119
+ rows.size.should == 6
120
+ rows.each do |row|
121
+ row.should be_an_instance_of Stargate::Model::Row
122
+ ["rowts11","rowts12","rowts21","rowts22","rowts31","rowts32"].should include(row.name)
123
+ end
124
+
125
+ @client.close_scanner(scanner).should be_true
126
+ end
127
+
128
+ it "should scan last 2 rows when given last timestamp as start" do
129
+ scanner = @client.open_scanner("test-hbase-stargate-scan", {:start_time => @ts3})
130
+ rows = @client.get_rows(scanner)
131
+ rows.size.should == 2
132
+ rows.each do |row|
133
+ row.should be_an_instance_of Stargate::Model::Row
134
+ ["rowts31","rowts32"].should include(row.name)
135
+ end
136
+
137
+ @client.close_scanner(scanner).should be_true
138
+ end
139
+
140
+ it "should scan first 4 rows when given middle timestamp as end" do
141
+ scanner = @client.open_scanner("test-hbase-stargate-scan", {:start_time => @ts1, :end_time => @ts3})
142
+ rows = @client.get_rows(scanner)
143
+ rows.size.should == 4
144
+ rows.each do |row|
145
+ row.should be_an_instance_of Stargate::Model::Row
146
+ ["rowts11","rowts12","rowts21","rowts22"].should include(row.name)
147
+ end
148
+
149
+ @client.close_scanner(scanner).should be_true
150
+ end
151
+
152
+ it "should scan last 4 rows when given start and end timestamp" do
153
+ scanner = @client.open_scanner("test-hbase-stargate-scan", {:start_time => @ts2, :end_time => @ts4})
154
+ rows = @client.get_rows(scanner)
155
+ rows.size.should == 4
156
+ rows.each do |row|
157
+ row.should be_an_instance_of Stargate::Model::Row
158
+ ["rowts21","rowts22","rowts31","rowts32"].should include(row.name)
159
+ end
160
+
161
+ @client.close_scanner(scanner).should be_true
162
+ end
163
+
100
164
  after :all do
101
165
  @client.destroy_table("test-hbase-stargate")
166
+ @client.destroy_table("test-hbase-stargate-scan")
102
167
  end
103
168
  end
@@ -1,3 +1,3 @@
1
1
  require 'rubygems'
2
- require 'spec'
2
+ require 'rspec'
3
3
  require File.expand_path(File.join(File.dirname(__FILE__), "..", "lib", "stargate"))
metadata CHANGED
@@ -1,7 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hbase-stargate
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ hash: 7
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 5
9
+ - 2
10
+ version: 1.5.2
5
11
  platform: ruby
6
12
  authors:
7
13
  - Openplaces
@@ -9,19 +15,23 @@ autorequire:
9
15
  bindir: bin
10
16
  cert_chain: []
11
17
 
12
- date: 2010-01-18 00:00:00 -05:00
18
+ date: 2010-12-26 00:00:00 -05:00
13
19
  default_executable:
14
20
  dependencies:
15
21
  - !ruby/object:Gem::Dependency
16
22
  name: rspec
17
- type: :development
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
20
26
  requirements:
21
27
  - - ">="
22
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
23
32
  version: "0"
24
- version:
33
+ type: :development
34
+ version_requirements: *id001
25
35
  description: A Ruby client used to interact with HBase through its Stargate web service front-end
26
36
  email: greg.lu@gmail.com
27
37
  executables: []
@@ -93,42 +103,48 @@ rdoc_options:
93
103
  require_paths:
94
104
  - lib
95
105
  required_ruby_version: !ruby/object:Gem::Requirement
106
+ none: false
96
107
  requirements:
97
108
  - - ">="
98
109
  - !ruby/object:Gem::Version
110
+ hash: 3
111
+ segments:
112
+ - 0
99
113
  version: "0"
100
- version:
101
114
  required_rubygems_version: !ruby/object:Gem::Requirement
115
+ none: false
102
116
  requirements:
103
117
  - - ">="
104
118
  - !ruby/object:Gem::Version
119
+ hash: 3
120
+ segments:
121
+ - 0
105
122
  version: "0"
106
- version:
107
123
  requirements: []
108
124
 
109
125
  rubyforge_project:
110
- rubygems_version: 1.3.5
126
+ rubygems_version: 1.3.7
111
127
  signing_key:
112
128
  specification_version: 3
113
129
  summary: Ruby client for HBase's Stargate web service
114
130
  test_files:
115
- - spec/hbase-stargate/request/row_request_spec.rb
116
- - spec/hbase-stargate/request/table_request_spec.rb
117
- - spec/hbase-stargate/request/meta_request_spec.rb
118
- - spec/hbase-stargate/request/scanner_request_spec.rb
119
- - spec/hbase-stargate/model/scanner.rb
120
- - spec/hbase-stargate/model/column_spec.rb
121
- - spec/hbase-stargate/model/row_spec.rb
122
131
  - spec/hbase-stargate/model/column_descriptor_spec.rb
132
+ - spec/hbase-stargate/model/column_spec.rb
123
133
  - spec/hbase-stargate/model/region_descriptor_spec.rb
134
+ - spec/hbase-stargate/model/row_spec.rb
135
+ - spec/hbase-stargate/model/scanner.rb
124
136
  - spec/hbase-stargate/model/table_descriptor_spec.rb
125
- - spec/hbase-stargate/operation/row_operation_spec.rb
126
137
  - spec/hbase-stargate/operation/meta_operation_spec.rb
138
+ - spec/hbase-stargate/operation/row_operation_spec.rb
127
139
  - spec/hbase-stargate/operation/scanner_operation_spec.rb
128
140
  - spec/hbase-stargate/operation/table_operation_spec.rb
129
141
  - spec/hbase-stargate/record_spec.rb
130
- - spec/hbase-stargate/response/scanner_response_spec.rb
142
+ - spec/hbase-stargate/request/meta_request_spec.rb
143
+ - spec/hbase-stargate/request/row_request_spec.rb
144
+ - spec/hbase-stargate/request/scanner_request_spec.rb
145
+ - spec/hbase-stargate/request/table_request_spec.rb
131
146
  - spec/hbase-stargate/response/meta_response_spec.rb
132
- - spec/hbase-stargate/response/table_response_spec.rb
133
147
  - spec/hbase-stargate/response/row_response_spec.rb
148
+ - spec/hbase-stargate/response/scanner_response_spec.rb
149
+ - spec/hbase-stargate/response/table_response_spec.rb
134
150
  - spec/spec_helper.rb