kjess 1.1.0 → 1.2.0

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.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NThhODY1MzZlNTE5MWZhZDI4ZGYzYTZmZjg3NTIxYTlmZjYxZDEwYg==
5
+ data.tar.gz: !binary |-
6
+ ZWM3NjkwNzczNDM4ZWIzNzA5MmNlYzE0ZjQwZTdiM2ZmOTJlZjczMg==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ YTA0NDVhYmE4MTdiNTdjZjM4NjdmNzkyNzUwOWM2MTQyMjI5MzQ4MTU3Y2Rk
10
+ N2IwNDEyNDU1Mzk2ZThiYjBiZWE1NDE2MTIzNTg3NWUzNjkxOWUwOGJkYzBj
11
+ NjRiOGVmNTcxOTQ2ZTA4MjExYWEyM2EzMzcwNWM2MjA4NWM2NmU=
12
+ data.tar.gz: !binary |-
13
+ M2Q3MGNhNzdlM2RlOTM4OGI0ZmFhNjkxMzhlZjQ3ZTJhNmE1MGIxNzI0MGQ4
14
+ ZGIzNmY3NzE2MDRkZTQ0Zjk1NTYxM2JmZGQxMGVhY2E2MDQ5YWExMDA1NTJl
15
+ NGQ1NjgzNGQ5MTE2MzQzYmFlMTFkNDYxODhiMzc0ZGUzMDA4NDM=
@@ -1,6 +1,12 @@
1
- = KJess Changlog
1
+ # KJess Changlog
2
2
 
3
- == Version 1.1.0 - 2013-01-08
3
+ ## Version 1.2.0 - 2013-07-08
4
+
5
+ * Allow for setting a socket factory on the Connection (eric)
6
+ * Connections only raise Connection::Error (eric)
7
+ * Refactor Error hierarchy [#19]
8
+
9
+ ## Version 1.1.0 - 2013-01-08
4
10
 
5
11
  * Allow the setting of the kestrel server processes ports for testing (eric)
6
12
  * Update development dependencies, new version and missing gems
@@ -10,7 +16,7 @@
10
16
  * Added socket timeout feature (eric)
11
17
  * Added support for tcp keepalive
12
18
 
13
- == Version 1.0.0 - 2012-10-31
19
+ ## Version 1.0.0 - 2012-10-31
14
20
 
15
21
  * Initial Release - Yeah!
16
22
 
@@ -1,8 +1,8 @@
1
1
  CONTRIBUTING.md
2
- HISTORY.rdoc
2
+ HISTORY.md
3
3
  LICENSE
4
4
  Manifest.txt
5
- README.rdoc
5
+ README.md
6
6
  Rakefile
7
7
  example/client_test.rb
8
8
  lib/kjess.rb
@@ -44,6 +44,7 @@ lib/kjess/response/version.rb
44
44
  lib/kjess/socket.rb
45
45
  lib/kjess/stats_cache.rb
46
46
  spec/client_spec.rb
47
+ spec/connection_spec.rb
47
48
  spec/kestrel_server.rb
48
49
  spec/request/set_spec.rb
49
50
  spec/request/version_spec.rb
@@ -52,4 +53,6 @@ spec/response/client_error_spec.rb
52
53
  spec/spec_helper.rb
53
54
  spec/utils.rb
54
55
  spec/version_spec.rb
56
+ tasks/default.rake
55
57
  tasks/kestrel.rake
58
+ tasks/this.rb
@@ -1,19 +1,19 @@
1
- == KJess
1
+ # KJess
2
2
 
3
- * Homepage[https://github.com/copiousfreetime/kjess/]
4
- * {Github Project}[https://github.com/copiousfreetime/kjess]
5
- * email jeremy at hinegardner dot org
3
+ * [Homepage](https://github.com/copiousfreetime/kjess/)
4
+ * [Github Project](https://github.com/copiousfreetime/kjess)
5
+ * email jeremy at copiousfreetime dot org
6
6
 
7
- == DESCRIPTION
7
+ ## DESCRIPTION
8
8
 
9
9
  KJess is a pure ruby Kestrel client that supports Kestrel's Memcache style
10
10
  protocol.
11
11
 
12
- == FEATURES
12
+ ## FEATURES
13
13
 
14
14
  A pure ruby native client to Kestrel.
15
15
 
16
- == Examples
16
+ ## Examples
17
17
 
18
18
  client = Kestrel::Client.new( 'k.example.com' )
19
19
  client.set( 'my_queue', 'item' ) # put an 'item' on 'my_queue'
@@ -25,9 +25,9 @@ A pure ruby native client to Kestrel.
25
25
  client.close( 'my_queue' ) # confirm with Kestrel that the item
26
26
  # retrieved was processed
27
27
 
28
- == ISC LICENSE
28
+ ## ISC LICENSE
29
29
 
30
- http://opensource.org/licenses/isc-license.txt
30
+ <http://opensource.org/licenses/isc-license.txt>
31
31
 
32
32
  Copyright (c) 2012 Jeremy Hinegardner
33
33
 
data/Rakefile CHANGED
@@ -1,350 +1,21 @@
1
1
  # vim: syntax=ruby
2
+ load 'tasks/this.rb'
2
3
 
3
4
  This.name = "kjess"
4
5
  This.author = "Jeremy Hinegardner"
5
6
  This.email = "jeremy@copiousfreetime.org"
6
7
  This.homepage = "http://github.com/copiousfreetime/#{ This.name }"
7
- This.version = Util.version
8
8
 
9
- #------------------------------------------------------------------------------
10
- # If you want to Develop on this project just run 'rake develop' and you'll
11
- # have all you need to get going. If you want to use bundler for development,
12
- # then run 'rake develop:using_bundler'
13
- #------------------------------------------------------------------------------
14
- namespace :develop do
15
-
16
- # Install all the development and runtime dependencies of this gem using the
17
- # gemspec.
18
- task :default do
19
- require 'rubygems/dependency_installer'
20
- installer = Gem::DependencyInstaller.new
21
-
22
- Util.set_coverage_gem
23
-
24
- puts "Installing gem depedencies needed for development"
25
- Util.platform_gemspec.dependencies.each do |dep|
26
- if dep.matching_specs.empty? then
27
- puts "Installing : #{dep}"
28
- installer.install dep
29
- else
30
- puts "Skipping : #{dep} -> already installed #{dep.matching_specs.first.full_name}"
31
- end
32
- end
33
- puts "\n\nNow run 'rake test'"
34
- end
35
-
36
- # Create a Gemfile that just references the gemspec
37
- file 'Gemfile' => :gemspec do
38
- File.open( "Gemfile", "w+" ) do |f|
39
- f.puts 'source :rubygems'
40
- f.puts 'gemspec'
41
- end
42
- end
43
-
44
- desc "Create a bundler Gemfile"
45
- task :using_bundler => 'Gemfile' do
46
- puts "Now you can 'bundle'"
47
- end
48
-
49
- # Gemfiles are build artifacts
50
- CLOBBER << FileList['Gemfile*']
51
- end
52
- desc "Boostrap development"
53
- task :develop => "develop:default"
54
-
55
- #------------------------------------------------------------------------------
56
- # Minitest - standard TestTask
57
- #------------------------------------------------------------------------------
58
- begin
59
- require 'rake/testtask'
60
- Rake::TestTask.new( :test ) do |t|
61
- t.ruby_opts = %w[ -w -rubygems ]
62
- t.libs = %w[ lib spec ]
63
- t.pattern = "spec/**/*_spec.rb"
64
- end
65
- task :default => :test
66
- rescue LoadError
67
- Util.task_warning( 'test' )
68
- end
69
-
70
- #------------------------------------------------------------------------------
71
- # RDoc - standard rdoc rake task, although we must make sure to use a more
72
- # recent version of rdoc since it is the one that has 'tomdoc' markup
73
- #------------------------------------------------------------------------------
74
- begin
75
- gem 'rdoc' # otherwise we get the wrong task from stdlib
76
- require 'rdoc/task'
77
- RDoc::Task.new do |t|
78
- t.markup = 'tomdoc'
79
- t.rdoc_dir = 'doc'
80
- t.main = 'README.rdoc'
81
- t.title = "#{This.name} #{This.version}"
82
- t.rdoc_files.include( '*.rdoc', 'lib/**/*.rb' )
83
- end
84
- rescue LoadError => le
85
- Util.task_warning( 'rdoc' )
86
- end
87
-
88
- #------------------------------------------------------------------------------
89
- # Coverage - optional code coverage, rcov for 1.8 and simplecov for 1.9, so
90
- # for the moment only rcov is listed.
91
- #------------------------------------------------------------------------------
92
- if RUBY_VERSION <= "1.9.2"
93
- begin
94
- require 'rcov/rcovtask'
95
- Rcov::RcovTask.new( 'coverage' ) do |t|
96
- t.libs << 'spec'
97
- t.pattern = 'spec/**/*_spec.rb'
98
- t.verbose = true
99
- t.rcov_opts << "-x ^/" # remove all the global files
100
- t.rcov_opts << "--sort coverage" # so we see the worst files at the top
101
- end
102
- rescue LoadError
103
- Util.task_warning( 'rcov' )
104
- end
105
- else
106
- begin
107
- require 'simplecov'
108
- desc 'Run tests with code coverage'
109
- task :coverage do
110
- ENV['COVERAGE'] = 'true'
111
- Rake::Task[:test].execute
112
- end
113
- CLOBBER << FileList["coverage"]
114
- rescue LoadError
115
- Util.task_warning( 'simplecov' )
116
- end
117
- end
118
-
119
- #------------------------------------------------------------------------------
120
- # Manifest - We want an explicit list of thos files that are to be packaged in
121
- # the gem. Most of this is from Hoe.
122
- #------------------------------------------------------------------------------
123
- namespace 'manifest' do
124
- desc "Check the manifest"
125
- task :check => :clean do
126
- files = FileList["**/*", ".*"].exclude( This.exclude_from_manifest ).to_a.sort
127
- files = files.select{ |f| File.file?( f ) }
128
-
129
- tmp = "Manifest.tmp"
130
- File.open( tmp, 'w' ) do |f|
131
- f.puts files.join("\n")
132
- end
133
-
134
- begin
135
- sh "diff -du Manifest.txt #{tmp}"
136
- ensure
137
- rm tmp
138
- end
139
- puts "Manifest looks good"
140
- end
141
-
142
- desc "Generate the manifest"
143
- task :generate => :clean do
144
- files = %x[ git ls-files ].split("\n").sort
145
- files.reject! { |f| f =~ This.exclude_from_manifest }
146
- File.open( "Manifest.txt", "w" ) do |f|
147
- f.puts files.join("\n")
148
- end
149
- end
150
- end
151
-
152
- #------------------------------------------------------------------------------
153
- # Fixme - look for fixmes and report them
154
- #------------------------------------------------------------------------------
155
- task :fixme => 'manifest:check' do
156
- Util.read_manifest.each do |file|
157
- next if file == File.basename( __FILE__ )
158
-
159
- puts "FIXME: Rename #{file}" if file =~ /fixme/i
160
-
161
- IO.readlines( file ).each_with_index do |line, idx|
162
- prefix = "FIXME: #{file}:#{idx+1}".ljust(42)
163
- puts "#{prefix} => #{line.strip}" if line =~ /fixme/i
164
- end
165
- end
166
- end
167
-
168
- #------------------------------------------------------------------------------
169
- # Gem Specification
170
- #------------------------------------------------------------------------------
171
- This.gemspec = Hash.new
172
- This.gemspec['ruby'] = Gem::Specification.new do |spec|
173
- spec.name = This.name
174
- spec.version = This.version
175
- spec.author = This.author
176
- spec.email = This.email
177
- spec.homepage = This.homepage
178
-
179
- spec.summary = This.summary
180
- spec.description = This.description
181
-
182
- spec.files = This.manifest
183
- spec.executables = spec.files.grep(/^bin/) { |f| File.basename(f) }
184
- spec.test_files = spec.files.grep(/^spec/)
185
-
186
- spec.extra_rdoc_files += spec.files.grep(/(txt|rdoc)$/)
187
- spec.rdoc_options = [ "--main" , 'README.rdoc',
188
- "--markup", "tomdoc" ]
189
-
190
- # The Runtime Dependencies
191
-
192
- # The Development Dependencies
9
+ This.ruby_gemspec do |spec|
193
10
  spec.add_development_dependency( 'rake' , '~> 10.0.3')
194
- spec.add_development_dependency( 'minitest' , '~> 4.4.0' )
11
+ spec.add_development_dependency( 'minitest' , '~> 4.5.0' )
195
12
  spec.add_development_dependency( 'rdoc' , '~> 3.12' )
196
13
  spec.add_development_dependency( 'zip' , '~> 2.0.2' )
197
14
  spec.add_development_dependency( 'json' , '~> 1.7.6' )
198
15
  end
199
16
 
200
17
 
201
- # The name of the gemspec file on disk
202
- This.gemspec_file = "#{This.name}.gemspec"
18
+ load 'tasks/default.rake'
203
19
 
204
- # Really this is only here to support those who use bundler
205
- desc "Build the #{This.name}.gemspec file"
206
- task :gemspec do
207
- Util.set_coverage_gem
208
- File.open( This.gemspec_file, "wb+" ) do |f|
209
- f.write Util.platform_gemspec.to_ruby
210
- end
211
- end
212
-
213
- # the gemspec is also a dev artifact and should not be kept around.
214
- CLOBBER << This.gemspec_file
215
-
216
- # The standard gem packaging task, everyone has it.
217
- require 'rubygems/package_task'
218
- Gem::PackageTask.new( Util.platform_gemspec ) do
219
- # nothing
220
- end
221
-
222
- #------------------------------------------------------------------------------
223
- # Release - the steps we go through to do a final release, this is pulled from
224
- # a compbination of mojombo's rakegem, hoe and hoe-git
225
- #
226
- # 1) make sure we are on the master branch
227
- # 2) make sure there are no uncommitted items
228
- # 3) check the manifest and make sure all looks good
229
- # 4) build the gem
230
- # 5) do an empty commit to have the commit message of the version
231
- # 6) tag that commit as the version
232
- # 7) push master
233
- # 8) push the tag
234
- # 7) pus the gem
235
- #------------------------------------------------------------------------------
236
- task :release_check do
237
- unless `git branch` =~ /^\* master$/
238
- abort "You must be on the master branch to release!"
239
- end
240
- unless `git status` =~ /^nothing to commit/m
241
- abort "Nope, sorry, you have unfinished business"
242
- end
243
- end
244
-
245
- desc "Create tag v#{This.version}, build and push #{Util.platform_gemspec.full_name} to rubygems.org"
246
- task :release => [ :release_check, 'manifest:check', :gem ] do
247
- sh "git commit --allow-empty -a -m 'Release #{This.version}'"
248
- sh "git tag -a -m 'v#{This.version}' v#{This.version}"
249
- sh "git push origin master"
250
- sh "git push origin v#{This.version}"
251
- sh "gem push pkg/#{Util.platform_gemspec.full_name}.gem"
252
- end
253
-
254
- #------------------------------------------------------------------------------
255
- # Load the extra rake tasks
256
- #------------------------------------------------------------------------------
257
20
  $: << "." unless $:.include?(".")
258
- begin
259
- load 'tasks/kestrel.rake'
260
- rescue LoadError => le
261
- Util.task_warning( 'kestrel' )
262
- end
263
-
264
-
265
-
266
- #------------------------------------------------------------------------------
267
- # Rakefile Support - This is all the guts and utility methods that are
268
- # necessary to support the above tasks.
269
- #
270
- # Lots of Credit for this Rakefile goes to:
271
- #
272
- # Ara T. Howard - see the Rakefile in all of his projects -
273
- # https://github.com/ahoward/
274
- # Tom Preston Werner - his Rakegem project https://github.com/mojombo/rakegem
275
- # Seattle.rb - Hoe - cuz it has relly good stuff in there
276
- #------------------------------------------------------------------------------
277
- BEGIN {
278
-
279
- require 'ostruct'
280
- require 'rake/clean'
281
- require 'rubygems' unless defined? Gem
282
-
283
- module Util
284
- def self.version
285
- [ "lib/#{ This.name }.rb", "lib/#{ This.name }/version.rb" ].each do |v|
286
- line = File.read( v )[/^\s*VERSION\s*=\s*.*/]
287
- if line then
288
- return line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
289
- end
290
- end
291
- end
292
-
293
- # Partition an rdoc file into sections and return the text of the section
294
- # as an array of paragraphs
295
- def self.section_of( file, section_name )
296
- re = /^=+ (.*)$/
297
- parts = File.read( file ).split( re )[1..-1]
298
- parts.map! { |p| p.strip }
299
-
300
- sections = Hash.new
301
- Hash[*parts].each do |k,v|
302
- sections[k] = v.split("\n\n")
303
- end
304
- return sections[section_name]
305
- end
306
-
307
- def self.task_warning( task )
308
- warn "WARNING: '#{task}' tasks are not defined. Please run 'rake develop'"
309
- end
310
-
311
- def self.project_root
312
- File.expand_path( File.dirname(__FILE__) )
313
- end
314
-
315
- def self.read_manifest
316
- abort "You need a Manifest.txt" unless File.readable?( "Manifest.txt" )
317
- File.readlines( "Manifest.txt" ).map { |l| l.strip }
318
- end
319
-
320
- def self.platform_gemspec
321
- This.gemspec[This.platform]
322
- end
323
-
324
- def self.set_coverage_gem
325
- # list these here instead of gem dependencies since there is not a way to
326
- # specify ruby version specific dependencies
327
- g, v = 'simplecov', '~> 0.7.1'
328
- if RUBY_VERSION < "1.9.2"
329
- g, v = 'rcov', '~> 1.0.0'
330
- end
331
-
332
- if Util.platform_gemspec.dependencies.none? { |s| s.name == g } then
333
- Util.platform_gemspec.add_development_dependency( g, v )
334
- end
335
- end
336
- end
337
-
338
- # Hold all the metadata about this project
339
- This = OpenStruct.new
340
- This.platform = (RUBY_PLATFORM == "java") ? 'java' : Gem::Platform::RUBY
341
-
342
- desc = Util.section_of( 'README.rdoc', 'DESCRIPTION')
343
- This.summary = desc.first
344
- This.description = desc.join(" ").tr("\n", ' ').gsub(/[{}]/,'').gsub(/\[[^\]]+\]/,'') # strip rdoc
345
-
346
-
347
- This.exclude_from_manifest = %r/tmp$|\.(git|DS_Store)|^(doc|coverage|pkg)|Gemfile*|\.gemspec$|\.swp$|\.jar|\.rvmrc$|^kestrel|~$/
348
- This.manifest = Util.read_manifest
349
-
350
- }
21
+ load 'tasks/kestrel.rake'