monster_mash 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
File without changes
@@ -1,3 +1,8 @@
1
+ Current master
2
+ ----------------------
3
+ * added more Typhoeus options [ezkl]
4
+ * Accidentally removed `params`, fixed. [darkel]
5
+
1
6
  0.2.3
2
7
  -----
3
8
  * bumped typhoeus to 0.2.4 to fix POST forms
data/Gemfile CHANGED
@@ -1,9 +1,9 @@
1
1
  source :rubygems
2
2
 
3
- gem 'typhoeus', '>= 0.2.4'
3
+ gem 'typhoeus', '>= 0.3.3'
4
4
 
5
5
  group :test do
6
- gem 'rspec', '1.3.1'
6
+ gem 'rspec', '~> 2.6'
7
7
  gem 'json'
8
8
  gem 'vcr', '>= 1.3.0'
9
9
  end
@@ -1,19 +1,26 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- json (1.4.6)
5
- mime-types (1.16)
6
- rspec (1.3.1)
7
- typhoeus (0.2.4)
4
+ diff-lcs (1.1.2)
5
+ json (1.5.3)
6
+ mime-types (1.17.2)
7
+ rspec (2.6.0)
8
+ rspec-core (~> 2.6.0)
9
+ rspec-expectations (~> 2.6.0)
10
+ rspec-mocks (~> 2.6.0)
11
+ rspec-core (2.6.4)
12
+ rspec-expectations (2.6.0)
13
+ diff-lcs (~> 1.1.2)
14
+ rspec-mocks (2.6.0)
15
+ typhoeus (0.3.3)
8
16
  mime-types
9
- mime-types
10
- vcr (1.3.0)
17
+ vcr (1.10.0)
11
18
 
12
19
  PLATFORMS
13
20
  ruby
14
21
 
15
22
  DEPENDENCIES
16
23
  json
17
- rspec (= 1.3.1)
18
- typhoeus (>= 0.2.4)
24
+ rspec (~> 2.6)
25
+ typhoeus (>= 0.3.3)
19
26
  vcr (>= 1.3.0)
@@ -126,6 +126,23 @@ If you have Typhoeus settings you want to happen for every request, you can set
126
126
  # ...
127
127
  end
128
128
 
129
+ If all of your requests share a common base URI, you can set that in your
130
+ defaults block:
131
+
132
+ class GoogleJson < MonsterMash::Base
133
+ defaults do
134
+ base_uri "http://google.com"
135
+ end
136
+
137
+ get(:search) do
138
+ uri "/search" # expands to http://google.com/search
139
+ end
140
+
141
+ post(:authenticate) do
142
+ uri "https://auth.google.com" # ignores the base_uri
143
+ end
144
+ end
145
+
129
146
  As well, if you set `params` or `headers` in the `defaults` block, any `params` or `headers` added later will be `merge`d into the hash.
130
147
 
131
148
  class GoogleJson < MonsterMash::Base
data/Rakefile CHANGED
@@ -10,8 +10,8 @@ begin
10
10
  gem.email = "dbalatero@gmail.com"
11
11
  gem.homepage = "http://github.com/dbalatero/monster_mash"
12
12
  gem.authors = ["David Balatero"]
13
- gem.add_dependency "typhoeus", ">= 0.2.4"
14
- gem.add_development_dependency "rspec", "1.3.1"
13
+ gem.add_dependency "typhoeus", ">= 0.3.3"
14
+ gem.add_development_dependency "rspec", "~> 2.6"
15
15
  gem.add_development_dependency "vcr", ">= 1.3.0"
16
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
17
17
  end
@@ -26,12 +26,11 @@ RSpec::Core::RakeTask.new do |t|
26
26
  t.pattern = 'spec/**/*_spec.rb'
27
27
  end
28
28
 
29
- task :spec => :check_dependencies
30
-
31
29
  task :default => :spec
32
30
 
33
- require 'rake/rdoctask'
34
- Rake::RDocTask.new do |rdoc|
31
+ require 'rdoc/task'
32
+
33
+ RDoc::Task.new do |rdoc|
35
34
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
36
35
 
37
36
  rdoc.rdoc_dir = 'rdoc'
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.3.0
@@ -61,9 +61,17 @@ module MonsterMash
61
61
 
62
62
  def uri(value = nil)
63
63
  if value
64
- @uri = value
64
+ @uri = base_uri ? URI.join(base_uri, value).to_s : value
65
65
  end
66
- @uri
66
+
67
+ @uri || base_uri
68
+ end
69
+
70
+ def base_uri(value = nil)
71
+ if value
72
+ @base_uri = value
73
+ end
74
+ @base_uri
67
75
  end
68
76
 
69
77
  def handler(&block)
@@ -74,9 +82,7 @@ module MonsterMash
74
82
  end
75
83
 
76
84
  # Typhoeus options.
77
- [:body, :headers, :timeout, :cache_timeout, :params,
78
- :user_agent, :follow_location, :max_redirects, :verbose,
79
- :proxy, :disable_ssl_peer_verification].each do |method|
85
+ Typhoeus::Request.options.each do |method|
80
86
  class_eval <<-EOF
81
87
  def #{method}(value = nil, &block)
82
88
  assign_or_return_option!(:#{method}, value, &block)
@@ -4,14 +4,14 @@
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
- s.name = %q{monster_mash}
8
- s.version = "0.2.3"
7
+ s.name = "monster_mash"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["David Balatero"]
12
- s.date = %q{2011-02-24}
13
- s.description = %q{Provides a fun HTTP interface on top of Typhoeus!}
14
- s.email = %q{dbalatero@gmail.com}
12
+ s.date = "2011-11-18"
13
+ s.description = "Provides a fun HTTP interface on top of Typhoeus!"
14
+ s.email = "dbalatero@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE",
17
17
  "README.markdown",
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".document",
22
+ ".rspec",
22
23
  "CHANGELOG.markdown",
23
24
  "Gemfile",
24
25
  "Gemfile.lock",
@@ -36,13 +37,12 @@ Gem::Specification.new do |s|
36
37
  "spec/fixtures/vcr_cassettes/google/valid.yml",
37
38
  "spec/monster_mash/base_spec.rb",
38
39
  "spec/monster_mash/request_spec.rb",
39
- "spec/spec.opts",
40
40
  "spec/spec_helper.rb"
41
41
  ]
42
- s.homepage = %q{http://github.com/dbalatero/monster_mash}
42
+ s.homepage = "http://github.com/dbalatero/monster_mash"
43
43
  s.require_paths = ["lib"]
44
- s.rubygems_version = %q{1.3.7}
45
- s.summary = %q{Provides a fun HTTP interface on top of Typhoeus!}
44
+ s.rubygems_version = "1.8.10"
45
+ s.summary = "Provides a fun HTTP interface on top of Typhoeus!"
46
46
  s.test_files = [
47
47
  "spec/monster_mash/base_spec.rb",
48
48
  "spec/monster_mash/request_spec.rb",
@@ -50,24 +50,23 @@ Gem::Specification.new do |s|
50
50
  ]
51
51
 
52
52
  if s.respond_to? :specification_version then
53
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
54
53
  s.specification_version = 3
55
54
 
56
55
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
- s.add_runtime_dependency(%q<typhoeus>, [">= 0.2.4"])
58
- s.add_runtime_dependency(%q<typhoeus>, [">= 0.2.4"])
59
- s.add_development_dependency(%q<rspec>, ["= 1.3.1"])
56
+ s.add_runtime_dependency(%q<typhoeus>, [">= 0.3.3"])
57
+ s.add_runtime_dependency(%q<typhoeus>, [">= 0.3.3"])
58
+ s.add_development_dependency(%q<rspec>, ["~> 2.6"])
60
59
  s.add_development_dependency(%q<vcr>, [">= 1.3.0"])
61
60
  else
62
- s.add_dependency(%q<typhoeus>, [">= 0.2.4"])
63
- s.add_dependency(%q<typhoeus>, [">= 0.2.4"])
64
- s.add_dependency(%q<rspec>, ["= 1.3.1"])
61
+ s.add_dependency(%q<typhoeus>, [">= 0.3.3"])
62
+ s.add_dependency(%q<typhoeus>, [">= 0.3.3"])
63
+ s.add_dependency(%q<rspec>, ["~> 2.6"])
65
64
  s.add_dependency(%q<vcr>, [">= 1.3.0"])
66
65
  end
67
66
  else
68
- s.add_dependency(%q<typhoeus>, [">= 0.2.4"])
69
- s.add_dependency(%q<typhoeus>, [">= 0.2.4"])
70
- s.add_dependency(%q<rspec>, ["= 1.3.1"])
67
+ s.add_dependency(%q<typhoeus>, [">= 0.3.3"])
68
+ s.add_dependency(%q<typhoeus>, [">= 0.3.3"])
69
+ s.add_dependency(%q<rspec>, ["~> 2.6"])
71
70
  s.add_dependency(%q<vcr>, [">= 1.3.0"])
72
71
  end
73
72
  end
@@ -113,6 +113,39 @@ describe MonsterMash::Request do
113
113
  @request.uri "http://google.com"
114
114
  @request.uri.should == "http://google.com"
115
115
  end
116
+
117
+ context "when a base uri is set" do
118
+ before do
119
+ @request.base_uri "http://google.com"
120
+ end
121
+
122
+ it "joins the two uris" do
123
+ @request.uri "/test"
124
+ @request.uri.should eq "http://google.com/test"
125
+ end
126
+
127
+ it "can be overridden" do
128
+ @request.uri "http://test.local"
129
+ @request.uri.should eq "http://test.local"
130
+ end
131
+
132
+ context "but no uri is specified" do
133
+ it "defaults to the base uri" do
134
+ @request.uri.should eq "http://google.com"
135
+ end
136
+ end
137
+ end
138
+ end
139
+
140
+ describe "#base_uri" do
141
+ before(:each) do
142
+ @request = MonsterMash::Request.new(:get)
143
+ end
144
+
145
+ it "should set the base uri, and return it" do
146
+ @request.base_uri "http://google.com"
147
+ @request.base_uri.should eq "http://google.com"
148
+ end
116
149
  end
117
150
 
118
151
  describe "method_missing methods" do
@@ -1,8 +1,8 @@
1
1
  $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
  require 'monster_mash'
4
- require 'spec'
5
- require 'spec/autorun'
4
+ require 'rspec'
5
+ require 'rspec/autorun'
6
6
  require 'json'
7
7
  require 'vcr'
8
8
 
@@ -11,6 +11,6 @@ VCR.config do |c|
11
11
  c.stub_with :typhoeus
12
12
  end
13
13
 
14
- Spec::Runner.configure do |config|
14
+ RSpec.configure do |config|
15
15
  config.extend VCR::RSpec::Macros
16
16
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: monster_mash
3
3
  version: !ruby/object:Gem::Version
4
- hash: 17
5
- prerelease: false
4
+ hash: 19
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 2
9
8
  - 3
10
- version: 0.2.3
9
+ - 0
10
+ version: 0.3.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - David Balatero
@@ -15,61 +15,57 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-24 00:00:00 -08:00
19
- default_executable:
18
+ date: 2011-11-18 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: &id001 !ruby/object:Gem::Requirement
21
+ requirement: &id001 !ruby/object:Gem::Requirement
25
22
  none: false
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- hash: 31
26
+ hash: 21
30
27
  segments:
31
28
  - 0
32
- - 2
33
- - 4
34
- version: 0.2.4
29
+ - 3
30
+ - 3
31
+ version: 0.3.3
32
+ version_requirements: *id001
35
33
  name: typhoeus
36
- requirement: *id001
37
- - !ruby/object:Gem::Dependency
38
- type: :runtime
39
34
  prerelease: false
40
- version_requirements: &id002 !ruby/object:Gem::Requirement
35
+ type: :runtime
36
+ - !ruby/object:Gem::Dependency
37
+ requirement: &id002 !ruby/object:Gem::Requirement
41
38
  none: false
42
39
  requirements:
43
40
  - - ">="
44
41
  - !ruby/object:Gem::Version
45
- hash: 31
42
+ hash: 21
46
43
  segments:
47
44
  - 0
48
- - 2
49
- - 4
50
- version: 0.2.4
45
+ - 3
46
+ - 3
47
+ version: 0.3.3
48
+ version_requirements: *id002
51
49
  name: typhoeus
52
- requirement: *id002
53
- - !ruby/object:Gem::Dependency
54
- type: :development
55
50
  prerelease: false
56
- version_requirements: &id003 !ruby/object:Gem::Requirement
51
+ type: :runtime
52
+ - !ruby/object:Gem::Dependency
53
+ requirement: &id003 !ruby/object:Gem::Requirement
57
54
  none: false
58
55
  requirements:
59
- - - "="
56
+ - - ~>
60
57
  - !ruby/object:Gem::Version
61
- hash: 25
58
+ hash: 15
62
59
  segments:
63
- - 1
64
- - 3
65
- - 1
66
- version: 1.3.1
60
+ - 2
61
+ - 6
62
+ version: "2.6"
63
+ version_requirements: *id003
67
64
  name: rspec
68
- requirement: *id003
69
- - !ruby/object:Gem::Dependency
70
- type: :development
71
65
  prerelease: false
72
- version_requirements: &id004 !ruby/object:Gem::Requirement
66
+ type: :development
67
+ - !ruby/object:Gem::Dependency
68
+ requirement: &id004 !ruby/object:Gem::Requirement
73
69
  none: false
74
70
  requirements:
75
71
  - - ">="
@@ -80,8 +76,10 @@ dependencies:
80
76
  - 3
81
77
  - 0
82
78
  version: 1.3.0
79
+ version_requirements: *id004
83
80
  name: vcr
84
- requirement: *id004
81
+ prerelease: false
82
+ type: :development
85
83
  description: Provides a fun HTTP interface on top of Typhoeus!
86
84
  email: dbalatero@gmail.com
87
85
  executables: []
@@ -94,6 +92,7 @@ extra_rdoc_files:
94
92
  - README.markdown.html
95
93
  files:
96
94
  - .document
95
+ - .rspec
97
96
  - CHANGELOG.markdown
98
97
  - Gemfile
99
98
  - Gemfile.lock
@@ -111,10 +110,8 @@ files:
111
110
  - spec/fixtures/vcr_cassettes/google/valid.yml
112
111
  - spec/monster_mash/base_spec.rb
113
112
  - spec/monster_mash/request_spec.rb
114
- - spec/spec.opts
115
113
  - spec/spec_helper.rb
116
114
  - README.markdown.html
117
- has_rdoc: true
118
115
  homepage: http://github.com/dbalatero/monster_mash
119
116
  licenses: []
120
117
 
@@ -144,7 +141,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
141
  requirements: []
145
142
 
146
143
  rubyforge_project:
147
- rubygems_version: 1.3.7
144
+ rubygems_version: 1.8.10
148
145
  signing_key:
149
146
  specification_version: 3
150
147
  summary: Provides a fun HTTP interface on top of Typhoeus!