keymap 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,7 +5,7 @@ require 'rake'
5
5
  require 'rake/clean'
6
6
  require 'rake/testtask'
7
7
  require 'rake/packagetask'
8
- require 'rdoc/task'
8
+
9
9
  require 'bundler'
10
10
  require 'bundler/gem_tasks'
11
11
 
@@ -16,8 +16,6 @@ Bundler::GemHelper.install_tasks
16
16
 
17
17
  load 'keymap.gemspec'
18
18
 
19
- Dir['tasks/**/*.rb'].each { |file| load file }
20
-
21
19
  GEM_NAME = "keymap"
22
20
  GEM_VERSION = Keymap::VERSION
23
21
 
@@ -25,6 +23,8 @@ CLEAN.include('doc/ri')
25
23
  CLEAN.include('doc/site')
26
24
  CLEAN.include('pkg')
27
25
 
26
+ Dir['tasks/**/*.rb'].each { |file| load file }
27
+
28
28
  task :default => :spec
29
29
 
30
30
  desc "Push gem packages"
@@ -85,46 +85,3 @@ namespace :redis do
85
85
 
86
86
  task :restart_server => [:stop_server, :start_server]
87
87
  end
88
-
89
- desc "Prints lines of code metrics"
90
- task :lines do
91
- lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
92
-
93
- FileList["lib/keymap/**/*.rb"].each { |file_name|
94
- next if file_name =~ /vendor/
95
- f = File.open(file_name)
96
-
97
- while (line = f.gets)
98
- lines += 1
99
- next if line =~ /^\s*$/
100
- next if line =~ /^\s*#/
101
- codelines += 1
102
- end
103
- puts "L: #{sprintf("%4d", lines)}, LOC #{sprintf("%4d", codelines)} | #{file_name}"
104
-
105
- total_lines += lines
106
- total_codelines += codelines
107
-
108
- lines, codelines = 0, 0
109
- }
110
-
111
- puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
112
- end
113
-
114
- RDOC_FILES = FileList['README.rdoc', 'lib/**/*.rb']
115
-
116
- require 'rdoc/task'
117
- Rake::RDocTask.new do |rdoc|
118
- rdoc.title = "#{GEM_NAME} #{GEM_VERSION}"
119
- rdoc.main = 'README.rdoc'
120
- rdoc.rdoc_dir = 'doc/site/api'
121
- rdoc.options << "-a" << "-U" << "-D" << "-v"
122
- rdoc.rdoc_files.include(RDOC_FILES)
123
- end
124
-
125
- Rake::RDocTask.new(:ri) do |rdoc|
126
- rdoc.main = "README.rdoc"
127
- rdoc.rdoc_dir = "doc/ri"
128
- rdoc.options << "--ri-system"
129
- rdoc.rdoc_files.include(RDOC_FILES)
130
- end
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = 'buck.robert.j@gmail.com'
11
11
  spec.description = 'Helping Ruby developers and their companies, unlock their key-value store data, through associative and sequential based access, providing unprecedented support for map reduce behaviors, native to the Ruby language'
12
12
  spec.summary = 'Abstracts choosing a key-value store implementation, and provides a natural enumerable-based Ruby API for hashed and sequential collections.'
13
- spec.homepage = 'https://github.com/rbuck/keymap'
13
+ spec.homepage = 'http://rbuck.github.com/keymap/'
14
14
 
15
15
  spec.files = `git ls-files`.split($/)
16
16
  spec.executables = spec.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -2,12 +2,16 @@ module Keymap
2
2
  module ConnectionAdapters
3
3
  module DataManagement #:nodoc:
4
4
 
5
- def list (key)
5
+ def delete(key)
6
+ false
7
+ end
8
+
9
+ def hash (key)
6
10
  nil
7
11
  end
8
12
 
9
- def delete(key)
10
- false
13
+ def list (key)
14
+ nil
11
15
  end
12
16
 
13
17
  end
@@ -82,166 +82,168 @@ module Keymap
82
82
  # todo idea: add an optional argument where we specify the data type for elements in the collection
83
83
  RedisList.new(raw_connection, id)
84
84
  end
85
- end
86
85
 
87
- private
86
+ private
88
87
 
89
- class RedisHash
88
+ class RedisHash
90
89
 
91
- include Enumerable
90
+ include Enumerable
92
91
 
93
- attr_reader :connection, :id, :sentinel
92
+ attr_reader :connection, :id, :sentinel
94
93
 
95
- # n.b. nil gets represented as an empty string by redis, so the two are
96
- # in effect identical keys.
97
- def initialize(connection, id, sentinel=nil)
98
- @connection = connection
99
- @id = id
100
- @sentinel = sentinel
101
- self[sentinel] = sentinel
102
- end
94
+ # n.b. nil gets represented as an empty string by redis, so the two are
95
+ # in effect identical keys.
96
+ def initialize(connection, id, sentinel=nil)
97
+ @connection = connection
98
+ @id = id
99
+ @sentinel = sentinel
100
+ self[sentinel] = sentinel
101
+ end
103
102
 
104
- def empty?
105
- connection.hlen id == 1
106
- end
103
+ def empty?
104
+ connection.hlen id == 1
105
+ end
107
106
 
108
- def [](key)
109
- connection.hget id, key
110
- end
107
+ def [](key)
108
+ connection.hget id, key
109
+ end
111
110
 
112
- def []=(key, value)
113
- connection.hset id, key, value
114
- end
111
+ def []=(key, value)
112
+ connection.hset id, key, value
113
+ end
115
114
 
116
- def each
117
- if block_given?
118
- hash_keys.each { |key| yield [key, self[key]] unless key == sentinel }
119
- else
120
- ::Enumerable::Enumerator.new(self, :each)
115
+ def each
116
+ if block_given?
117
+ hash_keys.each { |key| yield [key, self[key]] unless key == sentinel }
118
+ else
119
+ ::Enumerable::Enumerator.new(self, :each)
120
+ end
121
121
  end
122
- end
123
122
 
124
- def each_pair
125
- if block_given?
126
- hash_keys.each { |key| yield key, self[key] unless key == sentinel }
127
- else
128
- ::Enumerable::Enumerator.new(self, :each_pair)
123
+ def each_pair
124
+ if block_given?
125
+ hash_keys.each { |key| yield key, self[key] unless key == sentinel }
126
+ else
127
+ ::Enumerable::Enumerator.new(self, :each_pair)
128
+ end
129
129
  end
130
- end
131
130
 
132
- def each_value
133
- if block_given?
134
- hash_keys.each { |key| yield self[key] unless key == sentinel }
135
- else
136
- ::Enumerable::Enumerator.new(self, :each_value)
131
+ def each_value
132
+ if block_given?
133
+ hash_keys.each { |key| yield self[key] unless key == sentinel }
134
+ else
135
+ ::Enumerable::Enumerator.new(self, :each_value)
136
+ end
137
137
  end
138
- end
139
138
 
140
- def delete(key)
141
- value = self[key]
142
- connection.hdel id, key
143
- value
144
- end
139
+ def delete(key)
140
+ value = self[key]
141
+ connection.hdel id, key
142
+ value
143
+ end
145
144
 
146
- def merge!(hash)
147
- hash.each do |key, value|
148
- self[key] = value
145
+ def merge!(hash)
146
+ hash.each do |key, value|
147
+ self[key] = value
148
+ end
149
+ self
149
150
  end
150
- self
151
- end
152
151
 
153
- alias merge merge!
152
+ alias merge merge!
154
153
 
155
- private
154
+ private
156
155
 
157
- def hash_keys
158
- keys = connection.hkeys id
159
- keys.delete sentinel
160
- keys.delete ''
161
- keys
156
+ def hash_keys
157
+ keys = connection.hkeys id
158
+ keys.delete sentinel
159
+ keys.delete ''
160
+ keys
161
+ end
162
162
  end
163
- end
164
163
 
165
- class RedisList
164
+ class RedisList
166
165
 
167
- include Enumerable
166
+ include Enumerable
168
167
 
169
- attr_reader :connection, :id
168
+ attr_reader :connection, :id
170
169
 
171
- def initialize(connection, id, sentinel=nil)
172
- @connection = connection
173
- @id = id
174
- self << sentinel # sentinel to force creation of an "empty list"
175
- end
170
+ def initialize(connection, id, sentinel=nil)
171
+ @connection = connection
172
+ @id = id
173
+ self << sentinel # sentinel to force creation of an "empty list"
174
+ end
176
175
 
177
- def each
178
- if block_given?
179
- step_size = 100
180
- (0..length % step_size).step(step_size) do |step|
181
- first = step_size * step
182
- last = first + step_size
183
- list = connection.lrange id, first + 1, last
184
- list.each do |item|
185
- yield item
176
+ def each
177
+ if block_given?
178
+ step_size = 100
179
+ (0..length % step_size).step(step_size) do |step|
180
+ first = step_size * step
181
+ last = first + step_size
182
+ list = connection.lrange id, first + 1, last
183
+ list.each do |item|
184
+ yield item
185
+ end
186
186
  end
187
+ else
188
+ ::Enumerable::Enumerator.new(self, :each)
187
189
  end
188
- else
189
- ::Enumerable::Enumerator.new(self, :each)
190
190
  end
191
- end
192
191
 
193
- def <<(value)
194
- connection.rpush id, value
195
- self
196
- end
192
+ def <<(value)
193
+ connection.rpush id, value
194
+ self
195
+ end
197
196
 
198
- alias :push :<<
197
+ alias :push :<<
199
198
 
200
- def [](index)
201
- connection.lindex id, index + 1
202
- end
199
+ def [](index)
200
+ connection.lindex id, index + 1
201
+ end
203
202
 
204
- def []=(index, value)
205
- connection.lset id, index + 1, value
206
- end
203
+ def []=(index, value)
204
+ connection.lset id, index + 1, value
205
+ end
207
206
 
208
- def concat array
209
- array.each do |entry|
210
- self << entry
207
+ def concat(array)
208
+ array.each do |entry|
209
+ self << entry
210
+ end
211
+ self
211
212
  end
212
- self
213
- end
214
213
 
215
- def length
216
- connection.llen(id) -1
217
- end
214
+ def length
215
+ connection.llen(id) -1
216
+ end
218
217
 
219
- alias size length
218
+ alias size length
220
219
 
221
- def empty?()
222
- length != 1
223
- end
220
+ def empty?()
221
+ length != 1
222
+ end
224
223
 
225
- def pop()
226
- connection.rpop id unless length == 0
227
- end
224
+ def pop()
225
+ connection.rpop id unless length == 0
226
+ end
228
227
 
229
- def delete(value)
230
- value = connection.lrem(id, 0, value) == 0 ? nil : value
231
- yield value if block_given?
232
- value
233
- end
228
+ def delete(value)
229
+ value = connection.lrem(id, 0, value) == 0 ? nil : value
230
+ yield value if block_given?
231
+ value
232
+ end
234
233
 
235
- def delete_if
236
- if block_given?
237
- each do |value|
238
- delete(value) if yield(value)
234
+ def delete_if
235
+ if block_given?
236
+ each do |value|
237
+ delete(value) if yield(value)
238
+ end
239
+ self
240
+ else
241
+ nil
239
242
  end
240
- self
241
- else
242
- nil
243
243
  end
244
+
244
245
  end
246
+
245
247
  end
246
248
 
247
249
  end
@@ -1,3 +1,3 @@
1
1
  module Keymap
2
- VERSION = "0.3.0"
2
+ VERSION = "0.3.1"
3
3
  end
@@ -0,0 +1,19 @@
1
+ require 'rdoc/task'
2
+
3
+ RDOC_FILES = FileList['README.rdoc', 'lib/**/*.rb']
4
+
5
+ require 'rdoc/task'
6
+ Rake::RDocTask.new do |rdoc|
7
+ rdoc.title = "#{GEM_NAME} #{GEM_VERSION}"
8
+ rdoc.main = 'README.rdoc'
9
+ rdoc.rdoc_dir = 'doc/site/api'
10
+ rdoc.options << "-a" << "-U" << "-D" << "-v"
11
+ rdoc.rdoc_files.include(RDOC_FILES)
12
+ end
13
+
14
+ Rake::RDocTask.new(:ri) do |rdoc|
15
+ rdoc.main = "README.rdoc"
16
+ rdoc.rdoc_dir = "doc/ri"
17
+ rdoc.options << "--ri-system"
18
+ rdoc.rdoc_files.include(RDOC_FILES)
19
+ end
@@ -0,0 +1,24 @@
1
+ desc "Prints lines of code metrics"
2
+ task :stats do
3
+ lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
4
+
5
+ FileList["lib/keymap/**/*.rb"].each { |file_name|
6
+ next if file_name =~ /vendor/
7
+ f = File.open(file_name)
8
+
9
+ while (line = f.gets)
10
+ lines += 1
11
+ next if line =~ /^\s*$/
12
+ next if line =~ /^\s*#/
13
+ codelines += 1
14
+ end
15
+ puts "L: #{sprintf("%4d", lines)}, LOC #{sprintf("%4d", codelines)} | #{file_name}"
16
+
17
+ total_lines += lines
18
+ total_codelines += codelines
19
+
20
+ lines, codelines = 0, 0
21
+ }
22
+
23
+ puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
24
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: keymap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-03 00:00:00.000000000 Z
12
+ date: 2012-12-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: erubis
@@ -243,8 +243,10 @@ files:
243
243
  - spec/support/config.yml
244
244
  - spec/support/connection.rb
245
245
  - spec/unit/.gitignore
246
+ - tasks/rdoc.rb
246
247
  - tasks/rspec.rb
247
- homepage: https://github.com/rbuck/keymap
248
+ - tasks/stats.rb
249
+ homepage: http://rbuck.github.com/keymap/
248
250
  licenses: []
249
251
  post_install_message:
250
252
  rdoc_options: []
@@ -264,7 +266,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
266
  version: '0'
265
267
  requirements: []
266
268
  rubyforge_project:
267
- rubygems_version: 1.8.24
269
+ rubygems_version: 1.8.23
268
270
  signing_key:
269
271
  specification_version: 3
270
272
  summary: Abstracts choosing a key-value store implementation, and provides a natural
@@ -283,4 +285,6 @@ test_files:
283
285
  - spec/support/config.yml
284
286
  - spec/support/connection.rb
285
287
  - spec/unit/.gitignore
288
+ - tasks/rdoc.rb
286
289
  - tasks/rspec.rb
290
+ - tasks/stats.rb