weary 0.7.0 → 0.7.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/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  pkg/
2
- doc/
2
+ doc/
3
+ .bundle/
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ source :gemcutter
2
+
3
+ gem 'crack', '>= 0.1.7'
4
+ gem 'oauth', '>= 0.3.5'
5
+
6
+ group :test do
7
+ gem 'rake'
8
+ gem 'rspec'
9
+ gem 'fakeweb'
10
+ gem 'jeweler'
11
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,53 @@
1
+ ---
2
+ dependencies:
3
+ fakeweb:
4
+ group:
5
+ - :test
6
+ version: ">= 0"
7
+ rake:
8
+ group:
9
+ - :test
10
+ version: ">= 0"
11
+ oauth:
12
+ group:
13
+ - :default
14
+ version: ">= 0.3.5"
15
+ rspec:
16
+ group:
17
+ - :test
18
+ version: ">= 0"
19
+ crack:
20
+ group:
21
+ - :default
22
+ version: ">= 0.1.7"
23
+ jeweler:
24
+ group:
25
+ - :test
26
+ version: ">= 0"
27
+ specs:
28
+ - json_pure:
29
+ version: 1.2.2
30
+ - git:
31
+ version: 1.2.5
32
+ - rubyforge:
33
+ version: 2.0.4
34
+ - rspec:
35
+ version: 1.3.0
36
+ - ruby-hmac:
37
+ version: 0.4.0
38
+ - crack:
39
+ version: 0.1.7
40
+ - oauth:
41
+ version: 0.3.6
42
+ - rake:
43
+ version: 0.8.7
44
+ - gemcutter:
45
+ version: 0.4.1
46
+ - jeweler:
47
+ version: 1.4.0
48
+ - fakeweb:
49
+ version: 1.2.8
50
+ hash: 840ef225827ef421653168c75a110d1a0a2e39a9
51
+ sources:
52
+ - Rubygems:
53
+ uri: http://gemcutter.org
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2009 Mark Wunsch
1
+ Copyright (c) 2009-2010 Mark Wunsch
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -9,22 +9,19 @@ What does it do:
9
9
  + Authentication with Basic Authentication and [OAuth](http://oauth.net/).
10
10
  + Asynchronous, multi-threaded requests.
11
11
 
12
- Browse the documentation here: [http://rdoc.info/projects/mwunsch/weary](http://rdoc.info/projects/mwunsch/weary)
13
- Peruse the [Wiki](http://wiki.github.com/mwunsch/weary) to discover libraries built with Weary and a more thorough review of the API.
12
+ [RDoc](http://rdoc.info/projects/mwunsch/weary) | [Gem](http://rubygems.org/gems/weary) | [Wiki](http://wiki.github.com/mwunsch/weary) | [Metrics](http://getcaliper.com/caliper/project?repo=git://github.com/mwunsch/weary.git)
14
13
 
15
14
  ## Requirements
16
15
 
17
- + [Crack](http://github.com/jnunemaker/crack) >= 0.1.2
16
+ + [Crack](http://github.com/jnunemaker/crack) >= 0.1.7
18
17
  + [OAuth](http://github.com/mojodna/oauth) >= 0.3.5
19
- + [RSpec](http://rspec.info/) (for running the tests)
20
- + [FakeWeb](http://github.com/chrisk/fakeweb) (for running the tests)
21
18
 
22
19
  ## Installation
23
20
 
24
- You do have Rubygems right? You do use [Gemcutter](http://gemcutter.org/), right?
25
-
26
21
  gem install weary
27
22
 
23
+ If you're interested in doing development on Weary, clone the repository and run `bundle install` to get the development dependencies.
24
+
28
25
  ## Quick Start
29
26
 
30
27
  # http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-users%C2%A0show
data/Rakefile CHANGED
@@ -1,4 +1,13 @@
1
- require 'rubygems'
1
+ begin
2
+ # Try to require the preresolved locked set of gems.
3
+ require File.expand_path('../.bundle/environment', __FILE__)
4
+ rescue LoadError
5
+ # Fall back on doing an unlocked resolve at runtime.
6
+ require "rubygems"
7
+ require "bundler"
8
+ Bundler.setup
9
+ end
10
+
2
11
  require 'spec/rake/spectask'
3
12
 
4
13
  task :default => :spec
@@ -22,14 +31,13 @@ begin
22
31
  gemspec.homepage = "http://github.com/mwunsch/weary"
23
32
  gemspec.description = "A tiny DSL that makes the consumption of RESTful web services simple."
24
33
  gemspec.authors = "Mark Wunsch"
25
- gemspec.add_dependency 'crack', '>= 0.1.2'
34
+ gemspec.add_dependency 'crack', '>= 0.1.7'
26
35
  gemspec.add_dependency 'oauth', '>= 0.3.5'
27
- gemspec.add_development_dependency 'rspec'
28
- gemspec.add_development_dependency 'fakeweb'
36
+ gemspec.add_development_dependency 'bundler', ">= 0.9.7"
29
37
  end
30
38
  Jeweler::GemcutterTasks.new
31
39
  rescue LoadError
32
- puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
40
+ puts "Jeweler not available. Install it with: gem install jeweler"
33
41
  end
34
42
 
35
43
  desc "Open an irb session preloaded with this library"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.7.1
data/lib/weary.rb CHANGED
@@ -61,30 +61,30 @@ module Weary
61
61
 
62
62
  class << self
63
63
  def get(url,&block)
64
- request url, :get, block
64
+ request url, :get, &block
65
65
  end
66
66
 
67
67
  def post(url,&block)
68
- request url, :post, block
68
+ request url, :post, &block
69
69
  end
70
70
 
71
71
  def put(url,&block)
72
- request url, :put, block
72
+ request url, :put, &block
73
73
  end
74
74
 
75
75
  def delete(url,&block)
76
- request url, :delete, block
76
+ request url, :delete, &block
77
77
  end
78
78
 
79
79
  def head(url,&block)
80
- request url, :head, block
80
+ request url, :head, &block
81
81
  end
82
82
 
83
83
  # Create a Request for the URL.
84
84
  # Defaults to a GET Request. Use a block to further modify the Request
85
- def request(url,via = :get,block = nil)
85
+ def request(url,via = :get, &block)
86
86
  req = Request.new(url,via)
87
- block.call(req) if block
87
+ yield req if block_given?
88
88
  req
89
89
  end
90
90
 
data/lib/weary/base.rb CHANGED
@@ -34,8 +34,7 @@ module Weary
34
34
  }
35
35
  end
36
36
 
37
- class << self
38
-
37
+ class << self
39
38
  # Getter for class-level resources
40
39
  def resources
41
40
  @@resources
@@ -52,23 +51,23 @@ module Weary
52
51
  # [<tt>follows</tt>] Boolean; Does this follow redirects? Defaults to true
53
52
  # [<tt>headers</tt>] Set headers for the HTTP Request
54
53
  def get(name,&block)
55
- build_resource(name, :get, block)
54
+ build_resource(name, :get, &block)
56
55
  end
57
56
  alias declare get
58
57
 
59
58
  # Declares a Resource to be requested via POST
60
59
  def post(name,&block)
61
- build_resource(name, :post, block)
60
+ build_resource(name, :post, &block)
62
61
  end
63
62
 
64
63
  # Declares a Resource to be requested via PUT
65
64
  def put(name,&block)
66
- build_resource(name, :put, block)
65
+ build_resource(name, :put, &block)
67
66
  end
68
67
 
69
68
  # Declares a Resource to be requested via DELETE
70
69
  def delete(name,&block)
71
- build_resource(name, :delete, block)
70
+ build_resource(name, :delete, &block)
72
71
  end
73
72
 
74
73
  # Set custom default Headers for your Request
@@ -89,9 +88,9 @@ module Weary
89
88
  end
90
89
 
91
90
  # Prepare and store the Resource
92
- def build_resource(name,verb,block=nil)
91
+ def build_resource(name,verb,&block)
93
92
  resource = prepare_resource(name,verb)
94
- block.call(resource) if block
93
+ yield resource if block_given?
95
94
  store_resource(resource)
96
95
  build_method(resource)
97
96
  resource
data/lib/weary/request.rb CHANGED
@@ -10,20 +10,15 @@ module Weary
10
10
  self.credentials = {:username => options[:basic_auth][:username],
11
11
  :password => options[:basic_auth][:password]} if options[:basic_auth]
12
12
  self.credentials = options[:oauth] if options[:oauth]
13
- if (options[:body])
14
- self.with = options[:body]
15
- end
13
+ self.with = options[:body] if options[:body]
16
14
  self.headers = options[:headers] if options[:headers]
17
- self.follows = true
18
- if options.has_key?(:no_follow)
19
- self.follows = options[:no_follow] ? false : true
20
- end
15
+ self.follows = options[:no_follow] ? false : true
21
16
  end
22
17
 
23
18
  # Create a URI object for the given URL
24
19
  def uri=(url)
25
20
  @uri = URI.parse(url)
26
- if (with && !request_preparation.request_body_permitted?)
21
+ if (with && !connection.request_body_permitted?)
27
22
  @uri.query = with
28
23
  end
29
24
  end
@@ -46,7 +41,7 @@ module Weary
46
41
  # set the query string for the url.
47
42
  def with=(params)
48
43
  @with = (params.respond_to?(:to_params) ? params.to_params : params)
49
- if (!request_preparation.request_body_permitted?)
44
+ if (!connection.request_body_permitted?)
50
45
  uri.query = @with
51
46
  end
52
47
  end
@@ -109,14 +104,14 @@ module Weary
109
104
 
110
105
  # Build the HTTP connection.
111
106
  def http
112
- connection = Net::HTTP.new(uri.host, uri.port)
113
- connection.verify_mode = OpenSSL::SSL::VERIFY_NONE if connection.use_ssl?
114
- connection
107
+ socket = Net::HTTP.new(uri.host, uri.port)
108
+ socket.verify_mode = OpenSSL::SSL::VERIFY_NONE if socket.use_ssl?
109
+ socket
115
110
  end
116
111
 
117
112
  # Build the HTTP Request.
118
113
  def request
119
- req = request_preparation
114
+ req = connection
120
115
 
121
116
  req.body = with if (with && req.request_body_permitted?)
122
117
  if (credentials)
@@ -127,11 +122,7 @@ module Weary
127
122
  end
128
123
  end
129
124
 
130
- if headers
131
- headers.each_pair do |key, value|
132
- req[key] = value
133
- end
134
- end
125
+ headers.each_pair {|key,value| req[key] = value } if headers
135
126
 
136
127
  req
137
128
  end
@@ -141,7 +132,7 @@ module Weary
141
132
  # Prepare with `request_preparation`
142
133
  # Build with `request`
143
134
  # Fire with `perform`
144
- def request_preparation
135
+ def connection
145
136
  HTTPVerb.new(via).request_class.new(uri.request_uri)
146
137
  end
147
138
 
@@ -18,11 +18,7 @@ module Weary
18
18
  # The HTTP Method used to fetch the Resource
19
19
  def via=(http_verb)
20
20
  verb = HTTPVerb.new(http_verb).normalize
21
- @via = if Methods.include?(verb)
22
- verb
23
- else
24
- :get
25
- end
21
+ @via = Methods.include?(verb) ? verb : :get
26
22
  end
27
23
 
28
24
  # Optional params. Should be an array. Merges with requires if that is set.
@@ -49,7 +45,7 @@ module Weary
49
45
 
50
46
  # Sets whether the Resource should follow redirection. Always sets to a boolean value.
51
47
  def follows=(bool)
52
- @follows = (bool ? true : false)
48
+ @follows = bool ? true : false
53
49
  end
54
50
 
55
51
  # Should the resource follow redirection?
@@ -17,7 +17,7 @@ module Weary
17
17
 
18
18
  # Is this an HTTP redirect?
19
19
  def redirected?
20
- raw.is_a?(Net::HTTPRedirection)
20
+ raw.is_a? Net::HTTPRedirection
21
21
  end
22
22
 
23
23
  # Was this Request successful?
@@ -66,6 +66,11 @@ module Weary
66
66
  end
67
67
  end
68
68
 
69
+ # Puts the body
70
+ def to_s
71
+ body.to_s
72
+ end
73
+
69
74
  # Same as parse[key]
70
75
  def [](key)
71
76
  parse[key]
data/spec/spec_helper.rb CHANGED
@@ -1,7 +1,21 @@
1
- $LOAD_PATH.unshift File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
1
+ begin
2
+ # Try to require the preresolved locked set of gems.
3
+ require File.expand_path('../.bundle/environment', __FILE__)
4
+ rescue LoadError
5
+ # Fall back on doing an unlocked resolve at runtime.
6
+ require "rubygems"
7
+ require "bundler"
8
+ Bundler.setup
9
+ end
10
+
11
+ begin
12
+ require 'weary'
13
+ rescue LoadError
14
+ lib_path = File.join(File.dirname(__FILE__), '..', 'lib')
15
+ $LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
16
+ require 'weary'
17
+ end
2
18
 
3
- require 'rubygems'
4
- require 'weary'
5
19
  require 'spec'
6
20
  require 'fakeweb'
7
21
 
@@ -112,7 +112,7 @@ describe Weary::Base do
112
112
  end
113
113
 
114
114
  it 'passes the resource into a block for further refinement' do
115
- r = @contest.build_resource("test", :post, Proc.new {|res| res.via = :put })
115
+ r = @contest.build_resource("test", :post) {|res| res.via = :put }
116
116
  r.name.should == "test"
117
117
  r.via.should == :put
118
118
  end
@@ -9,7 +9,7 @@ describe Weary::Request do
9
9
 
10
10
  it 'maps to a Net/HTTPRequest class' do
11
11
  test = Weary::Request.new("http://google.com")
12
- test.request_preparation.class.should == Net::HTTP::Get
12
+ test.connection.class.should == Net::HTTP::Get
13
13
  end
14
14
 
15
15
  describe 'Request' do
@@ -145,6 +145,14 @@ describe Weary::Response do
145
145
  response = request.perform
146
146
  response['repository'][:name].should == 'rails'
147
147
  end
148
+
149
+ it 'converts to a string by printing the body' do
150
+ fixture = get_fixture('github.yml')
151
+ FakeWeb.register_uri(:get, "http://github.com", :body => fixture, :'Content-Type' => 'text/yaml')
152
+ request = Weary::Request.new('http://github.com')
153
+ response = request.perform
154
+ response.to_s.should == get_fixture('github.yml')
155
+ end
148
156
  end
149
157
 
150
158
  describe 'Exceptions' do
data/spec/weary_spec.rb CHANGED
@@ -9,8 +9,7 @@ describe Weary do
9
9
  end
10
10
 
11
11
  it 'can alter the request' do
12
- block = lambda{|r| r.via = 'POST' }
13
- r = Weary.request('http://google.com', :get, block)
12
+ r = Weary.request('http://google.com', :get) {|r| r.via = 'POST' }
14
13
  r.via.should == :post
15
14
  end
16
15
 
data/weary.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{weary}
8
- s.version = "0.7.0"
8
+ s.version = "0.7.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mark Wunsch"]
12
- s.date = %q{2009-12-30}
12
+ s.date = %q{2010-03-06}
13
13
  s.description = %q{A tiny DSL that makes the consumption of RESTful web services simple.}
14
14
  s.email = %q{mark@markwunsch.com}
15
15
  s.extra_rdoc_files = [
@@ -18,6 +18,8 @@ Gem::Specification.new do |s|
18
18
  ]
19
19
  s.files = [
20
20
  ".gitignore",
21
+ "Gemfile",
22
+ "Gemfile.lock",
21
23
  "LICENSE",
22
24
  "README.md",
23
25
  "Rakefile",
@@ -50,7 +52,7 @@ Gem::Specification.new do |s|
50
52
  s.rdoc_options = ["--charset=UTF-8"]
51
53
  s.require_paths = ["lib"]
52
54
  s.rubyforge_project = %q{weary}
53
- s.rubygems_version = %q{1.3.5}
55
+ s.rubygems_version = %q{1.3.6}
54
56
  s.summary = %q{A little DSL for consuming RESTful web services}
55
57
  s.test_files = [
56
58
  "spec/spec_helper.rb",
@@ -71,21 +73,18 @@ Gem::Specification.new do |s|
71
73
  s.specification_version = 3
72
74
 
73
75
  if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
74
- s.add_runtime_dependency(%q<crack>, [">= 0.1.2"])
76
+ s.add_runtime_dependency(%q<crack>, [">= 0.1.7"])
75
77
  s.add_runtime_dependency(%q<oauth>, [">= 0.3.5"])
76
- s.add_development_dependency(%q<rspec>, [">= 0"])
77
- s.add_development_dependency(%q<fakeweb>, [">= 0"])
78
+ s.add_development_dependency(%q<bundler>, [">= 0.9.7"])
78
79
  else
79
- s.add_dependency(%q<crack>, [">= 0.1.2"])
80
+ s.add_dependency(%q<crack>, [">= 0.1.7"])
80
81
  s.add_dependency(%q<oauth>, [">= 0.3.5"])
81
- s.add_dependency(%q<rspec>, [">= 0"])
82
- s.add_dependency(%q<fakeweb>, [">= 0"])
82
+ s.add_dependency(%q<bundler>, [">= 0.9.7"])
83
83
  end
84
84
  else
85
- s.add_dependency(%q<crack>, [">= 0.1.2"])
85
+ s.add_dependency(%q<crack>, [">= 0.1.7"])
86
86
  s.add_dependency(%q<oauth>, [">= 0.3.5"])
87
- s.add_dependency(%q<rspec>, [">= 0"])
88
- s.add_dependency(%q<fakeweb>, [">= 0"])
87
+ s.add_dependency(%q<bundler>, [">= 0.9.7"])
89
88
  end
90
89
  end
91
90
 
metadata CHANGED
@@ -1,7 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weary
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 7
8
+ - 1
9
+ version: 0.7.1
5
10
  platform: ruby
6
11
  authors:
7
12
  - Mark Wunsch
@@ -9,49 +14,51 @@ autorequire:
9
14
  bindir: bin
10
15
  cert_chain: []
11
16
 
12
- date: 2009-12-30 00:00:00 -05:00
17
+ date: 2010-03-06 00:00:00 -05:00
13
18
  default_executable:
14
19
  dependencies:
15
20
  - !ruby/object:Gem::Dependency
16
21
  name: crack
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
23
- version: 0.1.2
24
- version:
27
+ segments:
28
+ - 0
29
+ - 1
30
+ - 7
31
+ version: 0.1.7
32
+ type: :runtime
33
+ version_requirements: *id001
25
34
  - !ruby/object:Gem::Dependency
26
35
  name: oauth
27
- type: :runtime
28
- version_requirement:
29
- version_requirements: !ruby/object:Gem::Requirement
36
+ prerelease: false
37
+ requirement: &id002 !ruby/object:Gem::Requirement
30
38
  requirements:
31
39
  - - ">="
32
40
  - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ - 3
44
+ - 5
33
45
  version: 0.3.5
34
- version:
46
+ type: :runtime
47
+ version_requirements: *id002
35
48
  - !ruby/object:Gem::Dependency
36
- name: rspec
37
- type: :development
38
- version_requirement:
39
- version_requirements: !ruby/object:Gem::Requirement
49
+ name: bundler
50
+ prerelease: false
51
+ requirement: &id003 !ruby/object:Gem::Requirement
40
52
  requirements:
41
53
  - - ">="
42
54
  - !ruby/object:Gem::Version
43
- version: "0"
44
- version:
45
- - !ruby/object:Gem::Dependency
46
- name: fakeweb
55
+ segments:
56
+ - 0
57
+ - 9
58
+ - 7
59
+ version: 0.9.7
47
60
  type: :development
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
61
+ version_requirements: *id003
55
62
  description: A tiny DSL that makes the consumption of RESTful web services simple.
56
63
  email: mark@markwunsch.com
57
64
  executables: []
@@ -63,6 +70,8 @@ extra_rdoc_files:
63
70
  - README.md
64
71
  files:
65
72
  - .gitignore
73
+ - Gemfile
74
+ - Gemfile.lock
66
75
  - LICENSE
67
76
  - README.md
68
77
  - Rakefile
@@ -103,18 +112,20 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
112
  requirements:
104
113
  - - ">="
105
114
  - !ruby/object:Gem::Version
115
+ segments:
116
+ - 0
106
117
  version: "0"
107
- version:
108
118
  required_rubygems_version: !ruby/object:Gem::Requirement
109
119
  requirements:
110
120
  - - ">="
111
121
  - !ruby/object:Gem::Version
122
+ segments:
123
+ - 0
112
124
  version: "0"
113
- version:
114
125
  requirements: []
115
126
 
116
127
  rubyforge_project: weary
117
- rubygems_version: 1.3.5
128
+ rubygems_version: 1.3.6
118
129
  signing_key:
119
130
  specification_version: 3
120
131
  summary: A little DSL for consuming RESTful web services