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.
- data/{spec/spec.opts → .rspec} +0 -0
- data/CHANGELOG.markdown +5 -0
- data/Gemfile +2 -2
- data/Gemfile.lock +15 -8
- data/README.markdown +17 -0
- data/Rakefile +5 -6
- data/VERSION +1 -1
- data/lib/monster_mash/request.rb +11 -5
- data/monster_mash.gemspec +18 -19
- data/spec/monster_mash/request_spec.rb +33 -0
- data/spec/spec_helper.rb +3 -3
- metadata +36 -39
data/{spec/spec.opts → .rspec}
RENAMED
File without changes
|
data/CHANGELOG.markdown
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,19 +1,26 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
|
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 (
|
18
|
-
typhoeus (>= 0.
|
24
|
+
rspec (~> 2.6)
|
25
|
+
typhoeus (>= 0.3.3)
|
19
26
|
vcr (>= 1.3.0)
|
data/README.markdown
CHANGED
@@ -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.
|
14
|
-
gem.add_development_dependency "rspec", "
|
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 '
|
34
|
-
|
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.
|
1
|
+
0.3.0
|
data/lib/monster_mash/request.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
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)
|
data/monster_mash.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.
|
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 =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
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 =
|
42
|
+
s.homepage = "http://github.com/dbalatero/monster_mash"
|
43
43
|
s.require_paths = ["lib"]
|
44
|
-
s.rubygems_version =
|
45
|
-
s.summary =
|
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.
|
58
|
-
s.add_runtime_dependency(%q<typhoeus>, [">= 0.
|
59
|
-
s.add_development_dependency(%q<rspec>, ["
|
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.
|
63
|
-
s.add_dependency(%q<typhoeus>, [">= 0.
|
64
|
-
s.add_dependency(%q<rspec>, ["
|
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.
|
69
|
-
s.add_dependency(%q<typhoeus>, [">= 0.
|
70
|
-
s.add_dependency(%q<rspec>, ["
|
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
|
data/spec/spec_helper.rb
CHANGED
@@ -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 '
|
5
|
-
require '
|
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
|
-
|
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:
|
5
|
-
prerelease:
|
4
|
+
hash: 19
|
5
|
+
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
- 2
|
9
8
|
- 3
|
10
|
-
|
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-
|
19
|
-
default_executable:
|
18
|
+
date: 2011-11-18 00:00:00 Z
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
|
-
|
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:
|
26
|
+
hash: 21
|
30
27
|
segments:
|
31
28
|
- 0
|
32
|
-
-
|
33
|
-
-
|
34
|
-
version: 0.
|
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
|
-
|
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:
|
42
|
+
hash: 21
|
46
43
|
segments:
|
47
44
|
- 0
|
48
|
-
-
|
49
|
-
-
|
50
|
-
version: 0.
|
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
|
-
|
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:
|
58
|
+
hash: 15
|
62
59
|
segments:
|
63
|
-
-
|
64
|
-
-
|
65
|
-
|
66
|
-
|
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
|
-
|
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
|
-
|
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.
|
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!
|