jsonrpc 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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"]