monster_mash 0.2.3 → 0.3.0

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.
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!