jsonrpc 0.9.2 → 0.9.3

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/.gitignore ADDED
@@ -0,0 +1,9 @@
1
+ *.log
2
+ log/*
3
+ doc
4
+ cov
5
+ pkg
6
+ .DS_Store
7
+ coverage/*
8
+ *.un~
9
+ *.swp
data/Rakefile CHANGED
@@ -1,49 +1,22 @@
1
- lib_dir = File.expand_path(File.join(File.dirname(__FILE__), "lib"))
2
- $:.unshift(lib_dir)
3
- $:.uniq!
4
-
5
1
  require 'rubygems'
6
2
  require 'rake'
7
- require 'rake/testtask'
8
- require 'rake/rdoctask'
9
- require 'rake/packagetask'
10
- require 'rake/gempackagetask'
11
- require 'rake/contrib/rubyforgepublisher'
12
- require 'spec/rake/spectask'
13
-
14
- require File.join(File.dirname(__FILE__), 'lib/jsonrpc', 'version')
15
-
16
- PKG_DISPLAY_NAME = 'JsonRPC'
17
- PKG_NAME = PKG_DISPLAY_NAME.downcase
18
- PKG_VERSION = JsonRPC::VERSION::STRING
19
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
20
-
21
- RELEASE_NAME = "REL #{PKG_VERSION}"
3
+ require 'rspec'
4
+ require 'rspec/core/rake_task'
22
5
 
23
- RUBY_FORGE_PROJECT = PKG_NAME
24
- RUBY_FORGE_USER = "dbussink"
25
- RUBY_FORGE_PATH = "/var/www/gforge-projects/#{RUBY_FORGE_PROJECT}"
26
- RUBY_FORGE_URL = "http://#{RUBY_FORGE_PROJECT}.rubyforge.org/"
6
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
7
+ require "jsonrpc/version"
27
8
 
28
- PKG_SUMMARY = "JSON RPC implementation"
29
- PKG_DESCRIPTION = <<-TEXT
30
- Very simple JSON RPC client implementation
31
- TEXT
32
9
 
33
- PKG_FILES = FileList[
34
- "lib/**/*", "spec/**/*", "vendor/**/*",
35
- "tasks/**/*", "website/**/*",
36
- "[A-Z]*", "Rakefile"
37
- ].exclude(/database\.yml/).exclude(/[_\.]git$/)
38
-
39
- RCOV_ENABLED = (RUBY_PLATFORM != "java" && RUBY_VERSION =~ /^1\.8/)
40
- if RCOV_ENABLED
41
- task :default => "spec:verify"
42
- else
43
- task :default => "spec"
10
+ RSpec::Core::RakeTask.new do |t|
11
+ t.rspec_opts = %w(-fs --color)
44
12
  end
45
13
 
46
- WINDOWS = (RUBY_PLATFORM =~ /mswin|win32|mingw|bccwin|cygwin/) rescue false
47
- SUDO = WINDOWS ? '' : ('sudo' unless ENV['SUDOLESS'])
14
+ desc "Build the gem"
15
+ task :build do
16
+ system "gem build jsonrpc.gemspec"
17
+ end
48
18
 
49
- Dir['tasks/**/*.rake'].each { |rake| load rake }
19
+ desc "Release the gem"
20
+ task :release => :build do
21
+ system "gem push jsonrpc-#{JsonRPC::VERSION}.gem"
22
+ end
data/jsonrpc.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib/', __FILE__)
3
+ $:.unshift lib unless $:.include?(lib)
4
+
5
+ require 'jsonrpc/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = "jsonrpc"
9
+ s.version = JsonRPC::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.authors = ["Dirkjan Bussink"]
12
+ s.email = ["d.bussink@gmail.com"]
13
+ s.homepage = "https://github.com/dbussink/jsonrpc"
14
+ s.summary = %q{JSON RPC Implementation}
15
+ s.description = %q{Very simple JSON RPC client implementation}
16
+
17
+ s.rubyforge_project = "jsonrpc"
18
+
19
+ s.add_dependency "addressable"
20
+ s.add_development_dependency "rake"
21
+ s.add_development_dependency "rspec", "~> 2.0"
22
+
23
+ # Man files are required because they are ignored by git
24
+ s.files = `git ls-files`.split("\n")
25
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
+ s.require_paths = ["lib"]
27
+ end
@@ -1,11 +1,5 @@
1
- if !defined?(JsonRPC::VERSION)
2
- module JsonRPC
3
- module VERSION #:nodoc:
4
- MAJOR = 0
5
- MINOR = 9
6
- TINY = 2
7
-
8
- STRING = [MAJOR, MINOR, TINY].join('.')
9
- end
1
+ module JsonRPC
2
+ if !defined?(::JsonRPC::VERSION)
3
+ VERSION = "0.9.3"
10
4
  end
11
5
  end
data/lib/jsonrpc.rb CHANGED
@@ -16,8 +16,9 @@ module JsonRPC
16
16
  def request(method, params)
17
17
  result = {}
18
18
  params ||= {}
19
+ h = {"Content-Type", "application/json"}
19
20
  Net::HTTP.start(@address.host, @address.port) do |connection|
20
- result = JSON.parse(connection.post(@address.path, {:method => method.to_s, :params => params}.to_json).body)
21
+ result = JSON.parse(connection.post(@address.path, {:method => method.to_s, :params => params}.to_json, h).body)
21
22
  end
22
23
  if error = result["error"]
23
24
  raise JsonRPCError, error["message"]
data/spec/jsonrpc_spec.rb CHANGED
@@ -43,10 +43,19 @@ class Net::HTTP < Net::Protocol
43
43
  @raw_post_path
44
44
  end
45
45
 
46
+ def self.raw_headers=(headers)
47
+ @raw_headers = headers
48
+ end
49
+
50
+ def self.raw_headers
51
+ @raw_headers
52
+ end
53
+
46
54
  def post(path, body, headers = [])
47
55
  res = Net::HTTPSuccess.new('1.2', '200', 'OK')
48
56
  self.class.raw_post_path = path
49
57
  self.class.raw_post_body = body
58
+ self.class.raw_headers = headers
50
59
  res.body = self.class.raw_response_data
51
60
  res
52
61
  end
@@ -76,6 +85,10 @@ describe JsonRPC::Client do
76
85
  @result.should == {"result" => 200, "message" => "what a great success!"}
77
86
  end
78
87
 
88
+ it 'should set the headers to application/json' do
89
+ Net::HTTP.raw_headers.should include("Content-Type" => "application/json")
90
+ end
91
+
79
92
  end
80
93
 
81
94
  describe 'when it is not successful' do
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jsonrpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 9
8
+ - 3
9
+ version: 0.9.3
5
10
  platform: ruby
6
11
  authors:
7
12
  - Dirkjan Bussink
@@ -9,93 +14,95 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-06-14 00:00:00 +02:00
17
+ date: 2011-07-25 00:00:00 +02:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: addressable
17
- type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
20
24
  requirements:
21
25
  - - ">="
22
26
  - !ruby/object:Gem::Version
27
+ segments:
28
+ - 0
23
29
  version: "0"
24
- version:
30
+ type: :runtime
31
+ version_requirements: *id001
25
32
  - !ruby/object:Gem::Dependency
26
33
  name: rake
27
- type: :development
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
34
+ prerelease: false
35
+ requirement: &id002 !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: 0.7.3
34
- version:
39
+ segments:
40
+ - 0
41
+ version: "0"
42
+ type: :development
43
+ version_requirements: *id002
35
44
  - !ruby/object:Gem::Dependency
36
45
  name: rspec
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
46
+ prerelease: false
47
+ requirement: &id003 !ruby/object:Gem::Requirement
40
48
  requirements:
41
- - - ">="
49
+ - - ~>
42
50
  - !ruby/object:Gem::Version
43
- version: 1.0.8
44
- version:
45
- description: |
46
- Very simple JSON RPC client implementation
47
-
48
- email: d.bussink@gmail.com
51
+ segments:
52
+ - 2
53
+ - 0
54
+ version: "2.0"
55
+ type: :development
56
+ version_requirements: *id003
57
+ description: Very simple JSON RPC client implementation
58
+ email:
59
+ - d.bussink@gmail.com
49
60
  executables: []
50
61
 
51
62
  extensions: []
52
63
 
53
- extra_rdoc_files:
54
- - README
64
+ extra_rdoc_files: []
65
+
55
66
  files:
56
- - lib/jsonrpc/exceptions.rb
57
- - lib/jsonrpc/version.rb
58
- - lib/jsonrpc.rb
59
- - spec/jsonrpc_spec.rb
60
- - tasks/clobber.rake
61
- - tasks/gem.rake
62
- - tasks/git.rake
63
- - tasks/metrics.rake
64
- - tasks/rdoc.rake
65
- - tasks/rubyforge.rake
66
- - tasks/spec.rake
67
+ - .gitignore
67
68
  - CHANGELOG
68
69
  - LICENSE
69
- - Rakefile
70
70
  - README
71
+ - Rakefile
72
+ - jsonrpc.gemspec
73
+ - lib/jsonrpc.rb
74
+ - lib/jsonrpc/exceptions.rb
75
+ - lib/jsonrpc/version.rb
76
+ - spec/jsonrpc_spec.rb
71
77
  has_rdoc: true
72
- homepage: http://jsonrpc.rubyforge.org/
78
+ homepage: https://github.com/dbussink/jsonrpc
73
79
  licenses: []
74
80
 
75
81
  post_install_message:
76
- rdoc_options:
77
- - --main
78
- - README
82
+ rdoc_options: []
83
+
79
84
  require_paths:
80
85
  - lib
81
86
  required_ruby_version: !ruby/object:Gem::Requirement
82
87
  requirements:
83
88
  - - ">="
84
89
  - !ruby/object:Gem::Version
90
+ segments:
91
+ - 0
85
92
  version: "0"
86
- version:
87
93
  required_rubygems_version: !ruby/object:Gem::Requirement
88
94
  requirements:
89
95
  - - ">="
90
96
  - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
91
99
  version: "0"
92
- version:
93
100
  requirements: []
94
101
 
95
102
  rubyforge_project: jsonrpc
96
- rubygems_version: 1.3.4
103
+ rubygems_version: 1.3.6
97
104
  signing_key:
98
105
  specification_version: 3
99
- summary: JSON RPC implementation
100
- test_files: []
101
-
106
+ summary: JSON RPC Implementation
107
+ test_files:
108
+ - spec/jsonrpc_spec.rb
data/tasks/clobber.rake DELETED
@@ -1,2 +0,0 @@
1
- desc "Remove all build products"
2
- task "clobber"
data/tasks/gem.rake DELETED
@@ -1,68 +0,0 @@
1
- require "rake/gempackagetask"
2
-
3
- namespace :gem do
4
- GEM_SPEC = Gem::Specification.new do |s|
5
- s.name = PKG_NAME
6
- s.version = PKG_VERSION
7
- s.summary = PKG_SUMMARY
8
- s.description = PKG_DESCRIPTION
9
-
10
- s.files = PKG_FILES.to_a
11
-
12
- s.has_rdoc = true
13
- s.extra_rdoc_files = %w( README )
14
- s.rdoc_options.concat ["--main", "README"]
15
-
16
- if !s.respond_to?(:add_development_dependency)
17
- puts "Cannot build Gem with this version of RubyGems."
18
- exit(1)
19
- end
20
-
21
- s.add_dependency("addressable")
22
- s.add_development_dependency("rake", ">= 0.7.3")
23
- s.add_development_dependency("rspec", ">= 1.0.8")
24
-
25
- s.require_path = "lib"
26
-
27
- s.author = "Dirkjan Bussink"
28
- s.email = "d.bussink@gmail.com"
29
- s.homepage = RUBY_FORGE_URL
30
- s.rubyforge_project = RUBY_FORGE_PROJECT
31
- end
32
-
33
- Rake::GemPackageTask.new(GEM_SPEC) do |p|
34
- p.gem_spec = GEM_SPEC
35
- p.need_tar = true
36
- p.need_zip = true
37
- end
38
-
39
- desc "Show information about the gem"
40
- task :debug do
41
- puts GEM_SPEC.to_ruby
42
- end
43
-
44
- desc "Install the gem"
45
- task :install => ["clobber", "gem:package"] do
46
- sh "#{SUDO} gem install --local pkg/#{GEM_SPEC.full_name}"
47
- end
48
-
49
- desc "Uninstall the gem"
50
- task :uninstall do
51
- installed_list = Gem.source_index.find_name(PKG_NAME)
52
- if installed_list &&
53
- (installed_list.collect { |s| s.version.to_s}.include?(PKG_VERSION))
54
- sh(
55
- "#{SUDO} gem uninstall --version '#{PKG_VERSION}' " +
56
- "--ignore-dependencies --executables #{PKG_NAME}"
57
- )
58
- end
59
- end
60
-
61
- desc "Reinstall the gem"
62
- task :reinstall => [:uninstall, :install]
63
- end
64
-
65
- desc "Alias to gem:package"
66
- task "gem" => "gem:package"
67
-
68
- task "clobber" => ["gem:clobber_package"]
data/tasks/git.rake DELETED
@@ -1,40 +0,0 @@
1
- namespace :git do
2
- namespace :tag do
3
- desc "List tags from the Git repository"
4
- task :list do
5
- tags = `git tag -l`
6
- tags.gsub!("\r", "")
7
- tags = tags.split("\n").sort {|a, b| b <=> a }
8
- puts tags.join("\n")
9
- end
10
-
11
- desc "Create a new tag in the Git repository"
12
- task :create do
13
- changelog = File.open("CHANGELOG", "r") { |file| file.read }
14
- puts "-" * 80
15
- puts changelog
16
- puts "-" * 80
17
- puts
18
-
19
- v = ENV["VERSION"] or abort "Must supply VERSION=x.y.z"
20
- abort "Versions don't match #{v} vs #{PKG_VERSION}" if v != PKG_VERSION
21
-
22
- tag = "#{PKG_NAME}-#{PKG_VERSION}"
23
- msg = "Release #{PKG_NAME}-#{PKG_VERSION}"
24
-
25
- existing_tags = `git tag -l instrument-*`.split("\n")
26
- if existing_tags.include?(tag)
27
- warn("Tag already exists, deleting...")
28
- unless system "git tag -d #{tag}"
29
- abort "Tag deletion failed."
30
- end
31
- end
32
- puts "Creating git tag '#{tag}'..."
33
- unless system "git tag -a -m \"#{msg}\" #{tag}"
34
- abort "Tag creation failed."
35
- end
36
- end
37
- end
38
- end
39
-
40
- task "gem:release" => "git:tag:create"
data/tasks/metrics.rake DELETED
@@ -1,22 +0,0 @@
1
- namespace :metrics do
2
- task :lines do
3
- lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
4
- for file_name in FileList["lib/**/*.rb"]
5
- f = File.open(file_name)
6
- while line = f.gets
7
- lines += 1
8
- next if line =~ /^\s*$/
9
- next if line =~ /^\s*#/
10
- codelines += 1
11
- end
12
- puts "L: #{sprintf("%4d", lines)}, " +
13
- "LOC #{sprintf("%4d", codelines)} | #{file_name}"
14
- total_lines += lines
15
- total_codelines += codelines
16
-
17
- lines, codelines = 0, 0
18
- end
19
-
20
- puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
21
- end
22
- end
data/tasks/rdoc.rake DELETED
@@ -1,29 +0,0 @@
1
- require "rake/rdoctask"
2
-
3
- namespace :doc do
4
- desc "Generate RDoc documentation"
5
- Rake::RDocTask.new do |rdoc|
6
- rdoc.rdoc_dir = "doc"
7
- rdoc.title = "#{PKG_NAME}-#{PKG_VERSION} Documentation"
8
- rdoc.options << "--line-numbers" << "--inline-source" <<
9
- "--accessor" << "cattr_accessor=object" << "--charset" << "utf-8"
10
- rdoc.template = "#{ENV["template"]}.rb" if ENV["template"]
11
- rdoc.rdoc_files.include("README", "CHANGELOG", "LICENSE")
12
- rdoc.rdoc_files.include("lib/**/*.rb")
13
- end
14
-
15
- desc "Generate ri locally for testing"
16
- task :ri do
17
- sh "rdoc --ri -o ri ."
18
- end
19
-
20
- desc "Remove ri products"
21
- task :clobber_ri do
22
- rm_r "ri" rescue nil
23
- end
24
- end
25
-
26
- desc "Alias to doc:rdoc"
27
- task "doc" => "doc:rdoc"
28
-
29
- task "clobber" => ["doc:clobber_rdoc", "doc:clobber_ri"]
data/tasks/rubyforge.rake DELETED
@@ -1,89 +0,0 @@
1
- namespace :gem do
2
- desc 'Package and upload to RubyForge'
3
- task :release => ["gem:package"] do |t|
4
- require 'rubyforge'
5
-
6
- v = ENV['VERSION'] or abort 'Must supply VERSION=x.y.z'
7
- abort "Versions don't match #{v} vs #{PROJ.version}" if v != PKG_VERSION
8
- pkg = "pkg/#{GEM_SPEC.full_name}"
9
-
10
- rf = RubyForge.new
11
- rf.configure
12
- puts 'Logging in...'
13
- rf.login
14
-
15
- c = rf.userconfig
16
- changelog = File.open("CHANGELOG") { |file| file.read }
17
- c['release_changes'] = changelog
18
- c['preformatted'] = true
19
-
20
- files = ["#{pkg}.tgz", "#{pkg}.zip", "#{pkg}.gem"]
21
-
22
- puts "Releasing #{PKG_NAME} v. #{PKG_VERSION}"
23
- rf.add_release RUBY_FORGE_PROJECT, PKG_NAME, PKG_VERSION, *files
24
- end
25
- end
26
-
27
- namespace :doc do
28
- desc "Publish RDoc to RubyForge"
29
- task :release => ["doc:rdoc"] do
30
- require "rake/contrib/sshpublisher"
31
- require "yaml"
32
-
33
- config = YAML.load(
34
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
35
- )
36
- host = "#{config['username']}@rubyforge.org"
37
- remote_dir = RUBY_FORGE_PATH + "/api"
38
- local_dir = "doc"
39
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
40
- end
41
- end
42
-
43
- namespace :spec do
44
- desc "Publish specdoc to RubyForge"
45
- task :release => ["spec:specdoc"] do
46
- require "rake/contrib/sshpublisher"
47
- require "yaml"
48
-
49
- config = YAML.load(
50
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
51
- )
52
- host = "#{config['username']}@rubyforge.org"
53
- remote_dir = RUBY_FORGE_PATH + "/specdoc"
54
- local_dir = "specdoc"
55
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
56
- end
57
-
58
- namespace :rcov do
59
- desc "Publish coverage report to RubyForge"
60
- task :release => ["spec:rcov"] do
61
- require "rake/contrib/sshpublisher"
62
- require "yaml"
63
-
64
- config = YAML.load(
65
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
66
- )
67
- host = "#{config['username']}@rubyforge.org"
68
- remote_dir = RUBY_FORGE_PATH + "/coverage"
69
- local_dir = "coverage"
70
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
71
- end
72
- end
73
- end
74
-
75
- namespace :website do
76
- desc "Publish website to RubyForge"
77
- task :release => ["doc:release", "spec:release", "spec:rcov:release"] do
78
- require "rake/contrib/sshpublisher"
79
- require "yaml"
80
-
81
- config = YAML.load(
82
- File.read(File.expand_path('~/.rubyforge/user-config.yml'))
83
- )
84
- host = "#{config['username']}@rubyforge.org"
85
- remote_dir = RUBY_FORGE_PATH
86
- local_dir = "website"
87
- Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
88
- end
89
- end
data/tasks/spec.rake DELETED
@@ -1,63 +0,0 @@
1
- require 'spec/rake/verify_rcov'
2
-
3
- namespace :spec do
4
- Spec::Rake::SpecTask.new(:rcov) do |t|
5
- t.spec_files = FileList['spec/**/*_spec.rb']
6
- t.spec_opts = ['--color', '--format', 'specdoc']
7
- if RCOV_ENABLED
8
- t.rcov = true
9
- else
10
- t.rcov = false
11
- end
12
- t.rcov_opts = [
13
- '--exclude', 'spec',
14
- '--exclude', '1\\.8\\/gems',
15
- '--exclude', '1\\.9\\/gems',
16
- ]
17
- end
18
-
19
- Spec::Rake::SpecTask.new(:normal) do |t|
20
- t.spec_files = FileList['spec/**/*_spec.rb']
21
- t.spec_opts = ['--color', '--format', 'specdoc']
22
- t.rcov = false
23
- end
24
-
25
- if RCOV_ENABLED
26
- RCov::VerifyTask.new(:verify) do |t|
27
- t.threshold = 100.0
28
- t.index_html = 'coverage/index.html'
29
- end
30
-
31
- task :verify => :rcov
32
- end
33
-
34
- desc "Generate HTML Specdocs for all specs"
35
- Spec::Rake::SpecTask.new(:specdoc) do |t|
36
- specdoc_path = File.expand_path(
37
- File.join(File.dirname(__FILE__), '../specdoc/'))
38
- Dir.mkdir(specdoc_path) if !File.exist?(specdoc_path)
39
-
40
- output_file = File.join(specdoc_path, 'index.html')
41
- t.spec_files = FileList['spec/**/*_spec.rb']
42
- t.spec_opts = ["--format", "\"html:#{output_file}\"", "--diff"]
43
- t.fail_on_error = false
44
- end
45
-
46
- namespace :rcov do
47
- desc "Browse the code coverage report."
48
- task :browse => "spec:rcov" do
49
- require "launchy"
50
- Launchy::Browser.run("coverage/index.html")
51
- end
52
- end
53
- end
54
-
55
- if RCOV_ENABLED
56
- desc "Alias to spec:verify"
57
- task "spec" => "spec:verify"
58
- else
59
- desc "Alias to spec:normal"
60
- task "spec" => "spec:normal"
61
- end
62
-
63
- task "clobber" => ["spec:clobber_rcov"]