httparty 0.1.6 → 0.1.7
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of httparty might be problematic. Click here for more details.
- data/History.txt +4 -0
- data/httparty.gemspec +2 -2
- data/lib/httparty.rb +32 -3
- data/lib/httparty/version.rb +1 -1
- data/spec/httparty_spec.rb +16 -2
- metadata +2 -2
data/History.txt
CHANGED
data/httparty.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{httparty}
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.7"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["John Nunemaker"]
|
9
|
-
s.date = %q{2008-11-
|
9
|
+
s.date = %q{2008-11-30}
|
10
10
|
s.description = %q{Makes http fun! Also, makes consuming restful web services dead easy.}
|
11
11
|
s.email = ["nunemaker@gmail.com"]
|
12
12
|
s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "PostInstall.txt", "README.txt"]
|
data/lib/httparty.rb
CHANGED
@@ -10,19 +10,48 @@ $:.unshift(directory) unless $:.include?(directory) || $:.include?(File.expand_p
|
|
10
10
|
|
11
11
|
require 'httparty/request'
|
12
12
|
|
13
|
+
module ModuleLevelInheritableAttributes
|
14
|
+
def self.included(base)
|
15
|
+
base.extend(ClassMethods)
|
16
|
+
end
|
17
|
+
|
18
|
+
module ClassMethods
|
19
|
+
def mattr_inheritable(*args)
|
20
|
+
@mattr_inheritable_attrs ||= [:mattr_inheritable_attrs]
|
21
|
+
@mattr_inheritable_attrs += args
|
22
|
+
args.each do |arg|
|
23
|
+
module_eval %(
|
24
|
+
class << self; attr_accessor :#{arg} end
|
25
|
+
)
|
26
|
+
end
|
27
|
+
@mattr_inheritable_attrs
|
28
|
+
end
|
29
|
+
|
30
|
+
def inherited(subclass)
|
31
|
+
@mattr_inheritable_attrs.each do |inheritable_attribute|
|
32
|
+
instance_var = "@#{inheritable_attribute}"
|
33
|
+
subclass.instance_variable_set(instance_var, instance_variable_get(instance_var))
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
13
39
|
module HTTParty
|
14
40
|
class UnsupportedFormat < StandardError; end
|
15
41
|
class RedirectionTooDeep < StandardError; end
|
16
|
-
|
42
|
+
|
17
43
|
AllowedFormats = {:xml => 'text/xml', :json => 'application/json', :html => 'text/html'}
|
18
44
|
|
19
45
|
def self.included(base)
|
20
46
|
base.extend ClassMethods
|
47
|
+
base.send :include, ModuleLevelInheritableAttributes
|
48
|
+
base.send(:mattr_inheritable, :default_options)
|
49
|
+
base.instance_variable_set("@default_options", {})
|
21
50
|
end
|
22
51
|
|
23
|
-
module ClassMethods
|
52
|
+
module ClassMethods
|
24
53
|
def default_options
|
25
|
-
|
54
|
+
@default_options
|
26
55
|
end
|
27
56
|
|
28
57
|
#
|
data/lib/httparty/version.rb
CHANGED
data/spec/httparty_spec.rb
CHANGED
@@ -5,9 +5,16 @@ class Foo
|
|
5
5
|
base_uri 'api.foo.com/v1'
|
6
6
|
end
|
7
7
|
|
8
|
-
class
|
8
|
+
class GRest
|
9
9
|
include HTTParty
|
10
|
-
base_uri
|
10
|
+
base_uri "grest.com"
|
11
|
+
default_params :one => 'two'
|
12
|
+
end
|
13
|
+
|
14
|
+
class HRest
|
15
|
+
include HTTParty
|
16
|
+
base_uri "hrest.com"
|
17
|
+
default_params :two => 'three'
|
11
18
|
end
|
12
19
|
|
13
20
|
describe HTTParty do
|
@@ -117,4 +124,11 @@ describe HTTParty do
|
|
117
124
|
end.should raise_error(HTTParty::RedirectionTooDeep)
|
118
125
|
end
|
119
126
|
end
|
127
|
+
|
128
|
+
describe "with multiple class definitions" do
|
129
|
+
it "should not run over each others options" do
|
130
|
+
HRest.default_options.should == {:base_uri => 'http://hrest.com', :default_params => {:two => 'three'}}
|
131
|
+
GRest.default_options.should == {:base_uri => 'http://grest.com', :default_params => {:one => 'two'}}
|
132
|
+
end
|
133
|
+
end
|
120
134
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: httparty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Nunemaker
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2008-
|
12
|
+
date: 2008-12-01 00:00:00 -05:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|