weary 0.7.0 → 0.7.1

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