keymap 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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