rails_bridge 0.0.6 → 0.0.7
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +1 -1
- data/README.rdoc +2 -2
- data/VERSION +1 -1
- data/lib/rails_bridge/content_bridge.rb +9 -6
- data/lib/rails_bridge/content_request.rb +4 -1
- data/rails_bridge.gemspec +2 -2
- data/spec/unit/content_bridge_spec.rb +9 -0
- metadata +4 -4
data/Gemfile.lock
CHANGED
data/README.rdoc
CHANGED
@@ -152,7 +152,7 @@ Default values can be set for a group of requests by sub-classing RailsBridge::C
|
|
152
152
|
|
153
153
|
=== Setting global defaults
|
154
154
|
|
155
|
-
Global default values can be set directly on the RailsBridge::ContentBridge class. They are used by all inheriting sub-classes unless overridden by the sub-class.
|
155
|
+
Global default values can be set directly on the RailsBridge::ContentBridge class. They are used by all inheriting sub-classes unless overridden by the sub-class.
|
156
156
|
|
157
157
|
RailsBridge::ContentBridge.logger = Logger.new(STDOUT)
|
158
158
|
RailsBridge::ContentBridge.cache = ActiveSupport::Cache::MemCacheStore(:compress => true)
|
@@ -163,7 +163,7 @@ I recommend putting these declaration in an initializer file under config/initia
|
|
163
163
|
|
164
164
|
=== Overriding request values on execution
|
165
165
|
|
166
|
-
All defined values for a request can be
|
166
|
+
All defined values for a request can be specified at runtime by passing them in as options to the get method. All parameters passed this way will override existing values, with the exception of :params, which are merged with those defined at the request declaration and class level.
|
167
167
|
|
168
168
|
content = RailsBridge::ContentBridge.get_server_com( :params=>{:p1=>'p1'}, :request_timeout=>2000, :cache_timeout=>0 )
|
169
169
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.7
|
@@ -52,11 +52,8 @@ module RailsBridge
|
|
52
52
|
logger.debug "get key: #{key}"
|
53
53
|
content = self.cache.fetch(key, :race_condition_ttl=>5.seconds)
|
54
54
|
end
|
55
|
-
|
56
55
|
|
57
|
-
def
|
58
|
-
hydra = Typhoeus::Hydra.hydra # the singleton Hydra
|
59
|
-
hydra.disable_memoization
|
56
|
+
def process_remote_and_options( remote, options )
|
60
57
|
if remote.is_a? Symbol
|
61
58
|
raise "Undefined content_request :#{remote}" unless remote = @@content_requests[remote]
|
62
59
|
end
|
@@ -67,7 +64,7 @@ module RailsBridge
|
|
67
64
|
if remote.is_a? RailsBridge::ContentRequest
|
68
65
|
content_request = remote
|
69
66
|
remote_url = content_request.url
|
70
|
-
options[:params]
|
67
|
+
options[:params] = content_request.params.merge( options[:params] || {} )
|
71
68
|
options[:request_timeout] ||= content_request.request_timeout
|
72
69
|
options[:cache_timeout] ||= content_request.cache_timeout
|
73
70
|
options[:default_content] ||= content_request.default_content
|
@@ -79,9 +76,15 @@ module RailsBridge
|
|
79
76
|
options[:request_timeout] ||= self.request_timeout
|
80
77
|
options[:cache_timeout] ||= self.cache_timeout
|
81
78
|
options[:timeout] = options.delete(:request_timeout) # Rename the request timeout param for Typhoeus
|
79
|
+
[remote_url, options]
|
80
|
+
end
|
81
|
+
|
82
|
+
def get_remote_content( remote, options={} )
|
83
|
+
hydra = Typhoeus::Hydra.hydra # the singleton Hydra
|
84
|
+
hydra.disable_memoization
|
85
|
+
remote_url, options = process_remote_and_options( remote, options )
|
82
86
|
default_content = options.delete(:default_content) || self.default_content
|
83
87
|
# options[:verbose] = true # for debugging only
|
84
|
-
|
85
88
|
request = Typhoeus::Request.new(remote_url, options)
|
86
89
|
unless self.cache && request.cache_timeout && request.cache_timeout > 0 && result = cache_get( request.cache_key )
|
87
90
|
result = default_content
|
@@ -37,7 +37,10 @@ module RailsBridge
|
|
37
37
|
def host; @host || (self.content_bridge && self.content_bridge.host); end
|
38
38
|
def port; @port || (self.content_bridge && self.content_bridge.port) || 80; end
|
39
39
|
def path; @path || (self.content_bridge && self.content_bridge.path) || '/'; end
|
40
|
-
def params
|
40
|
+
def params
|
41
|
+
content_bridge_params = (self.content_bridge && self.content_bridge.params) || {}
|
42
|
+
content_bridge_params.merge( @params || {} )
|
43
|
+
end
|
41
44
|
|
42
45
|
def url= url
|
43
46
|
uri = URI.parse( url )
|
data/rails_bridge.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rails_bridge}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.7"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["shock"]
|
12
|
-
s.date = %q{2011-01-
|
12
|
+
s.date = %q{2011-01-05}
|
13
13
|
s.description = %q{Allows for easy embedding of content from a remote HTTP server and exporting of the Rails HTML layout into another template.}
|
14
14
|
s.email = %q{billdoughty@capitalthought.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -45,6 +45,15 @@ describe RailsBridge::ContentBridge do
|
|
45
45
|
ContentBridgeTest.get_chang(:default_content=>"YADA YADA").should == "YADA YADA"
|
46
46
|
end
|
47
47
|
|
48
|
+
it "adds :params specified at level to those already defined", :focus=>false do
|
49
|
+
class ContentBridgeTestA < ContentBridgeTest
|
50
|
+
self.params = {:p1=>'p1'}
|
51
|
+
content_request( :yang, :params=>{:p3=>'p3'} )
|
52
|
+
end
|
53
|
+
remote_url, options = ContentBridgeTestA.process_remote_and_options(ContentBridgeTestA.content_requests[:yang], :params=>{:p2=>'p2'})
|
54
|
+
options[:params].should == {:p1=>'p1', :p2=>'p2', :p3=>'p3'}
|
55
|
+
end
|
56
|
+
|
48
57
|
it "subclassing a ContentBridge does not change parent class' attributes", :focus=>false do
|
49
58
|
class ContentBridgeTest2 < ContentBridgeTest
|
50
59
|
self.default_content = "Some other content."
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 7
|
9
|
+
version: 0.0.7
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- shock
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-05 00:00:00 -06:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -331,7 +331,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
331
331
|
requirements:
|
332
332
|
- - ">="
|
333
333
|
- !ruby/object:Gem::Version
|
334
|
-
hash:
|
334
|
+
hash: 2020536357921793301
|
335
335
|
segments:
|
336
336
|
- 0
|
337
337
|
version: "0"
|