rails_bridge 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.rspec +1 -0
- data/Gemfile +21 -0
- data/Gemfile.lock +154 -0
- data/LICENSE +13 -0
- data/README.rdoc +244 -0
- data/Rakefile +46 -0
- data/VERSION +1 -0
- data/app/controllers/rails_bridge/layout_bridge_controller.rb +43 -0
- data/app/views/content.html.erb +13 -0
- data/app/views/rails_bridge/layout_bridge/index.html.erb +6 -0
- data/config/routes.rb +11 -0
- data/lib/generators/content_bridge/USAGE +12 -0
- data/lib/generators/content_bridge/content_bridge_generator.rb +9 -0
- data/lib/generators/content_bridge/templates/content_bridge.rb +47 -0
- data/lib/rails_bridge.rb +16 -0
- data/lib/rails_bridge/content_bridge.rb +137 -0
- data/lib/rails_bridge/content_request.rb +100 -0
- data/lib/rails_bridge/engine.rb +34 -0
- data/rails_bridge.gemspec +186 -0
- data/script/console +2 -0
- data/spec/dummy/.rspec +1 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/rails_bridge/content_bridges/twitter_content_bridge.rb +26 -0
- data/spec/dummy/app/rails_bridge/layout_bridge/layouts/application/content.html.erb +1 -0
- data/spec/dummy/app/rails_bridge/layout_bridge/views/layouts/_partial.html.erb +1 -0
- data/spec/dummy/app/views/layouts/_partial.html.erb +1 -0
- data/spec/dummy/app/views/layouts/alternative.html.erb +0 -0
- data/spec/dummy/app/views/layouts/application.html.erb +17 -0
- data/spec/dummy/autotest/discover.rb +2 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +44 -0
- data/spec/dummy/config/boot.rb +10 -0
- data/spec/dummy/config/database.yml +22 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +26 -0
- data/spec/dummy/config/environments/production.rb +49 -0
- data/spec/dummy/config/environments/test.rb +35 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/inflections.rb +10 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +26 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/javascripts/application.js +2 -0
- data/spec/dummy/public/javascripts/controls.js +965 -0
- data/spec/dummy/public/javascripts/dragdrop.js +974 -0
- data/spec/dummy/public/javascripts/effects.js +1123 -0
- data/spec/dummy/public/javascripts/prototype.js +6001 -0
- data/spec/dummy/public/javascripts/rails.js +175 -0
- data/spec/dummy/public/stylesheets/.gitkeep +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/spec/spec_helper.rb +33 -0
- data/spec/integration/content_bridge_spec.rb +82 -0
- data/spec/integration/engine_spec.rb +25 -0
- data/spec/requests/layout_bridge_controller_spec.rb +16 -0
- data/spec/spec_helper.rb +62 -0
- data/spec/support/content_bridge_helper.rb +26 -0
- data/spec/support/layout_bridge_helper.rb +2 -0
- data/spec/support/rails_bridge_helper.rb +12 -0
- data/spec/support/test_server_helper.rb +125 -0
- data/spec/unit/content_bridge_spec.rb +59 -0
- data/spec/unit/content_request_spec.rb +84 -0
- data/spec/unit/rails_bridge_spec.rb +11 -0
- metadata +380 -0
@@ -0,0 +1,125 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'eventmachine'
|
3
|
+
require 'cgi'
|
4
|
+
require 'pp'
|
5
|
+
require 'logger'
|
6
|
+
|
7
|
+
module HTTPHandler
|
8
|
+
def extract_query_params( query )
|
9
|
+
query = CGI::unescape( query )
|
10
|
+
pairs = query.split("&")
|
11
|
+
pairs.inject({}){|hash, pair| k,v=pair.split('='); v.nil? ? hash : (hash[k.to_sym]=v;hash)}
|
12
|
+
end
|
13
|
+
|
14
|
+
def http_request? data
|
15
|
+
http_request = nil
|
16
|
+
matches = data.split("\n").first.match(/(\w*) ([^\?]*)\??([^#]*)#?(.*) HTTP\/1\.1/)
|
17
|
+
if matches
|
18
|
+
http_request = {}
|
19
|
+
http_request[:request] = matches[0]
|
20
|
+
captures = matches.captures
|
21
|
+
http_request[:command] = captures.shift
|
22
|
+
http_request[:path] = captures.shift
|
23
|
+
http_request[:query_params] = extract_query_params(captures.shift)
|
24
|
+
http_request[:anchor] = captures.shift
|
25
|
+
end
|
26
|
+
# pp http_request
|
27
|
+
http_request
|
28
|
+
end
|
29
|
+
|
30
|
+
def process_http_request( http_request )
|
31
|
+
if sleep_time = http_request[:query_params][:sleep]
|
32
|
+
sleep( sleep_time.to_i )
|
33
|
+
end
|
34
|
+
unless return_data = http_request[:query_params][:return_data]
|
35
|
+
return_data = "Your HTTP Request(#{http_request[:request]}) was processed by the TestServer."
|
36
|
+
end
|
37
|
+
http_response(return_data)
|
38
|
+
end
|
39
|
+
|
40
|
+
def http_response( return_data, code=200 )
|
41
|
+
headers = <<-TXT
|
42
|
+
HTTP/1.1 #{ code } OK
|
43
|
+
Connection: Keep-Alive
|
44
|
+
Content-Type: text/html; charset=utf-8
|
45
|
+
|
46
|
+
TXT
|
47
|
+
headers + return_data
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
module TestServerModule
|
52
|
+
|
53
|
+
def self.included(base)
|
54
|
+
base.send(:include, HTTPHandler) unless base.include?( HTTPHandler )
|
55
|
+
end
|
56
|
+
|
57
|
+
def post_init
|
58
|
+
puts 'got connection'
|
59
|
+
end
|
60
|
+
|
61
|
+
def receive_data(data)
|
62
|
+
puts "Got data:\n#{data}"
|
63
|
+
if http_request = http_request?( data )
|
64
|
+
return_data = process_http_request( http_request )
|
65
|
+
else
|
66
|
+
return_data = "Your request was processed by the TestServer."
|
67
|
+
end
|
68
|
+
send_data(return_data)
|
69
|
+
puts "Sent: #{return_data}"
|
70
|
+
close_connection_after_writing
|
71
|
+
end
|
72
|
+
|
73
|
+
def puts string
|
74
|
+
TestServer.logger.debug( string )
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
class TestServer
|
81
|
+
@@logger = Logger.new(STDOUT)
|
82
|
+
@@thread = nil
|
83
|
+
PORT = 1234
|
84
|
+
|
85
|
+
def self.puts string
|
86
|
+
self.logger.debug( string )
|
87
|
+
end
|
88
|
+
|
89
|
+
def self.logger
|
90
|
+
@@logger
|
91
|
+
end
|
92
|
+
|
93
|
+
def self.logger= logger
|
94
|
+
@@logger = logger
|
95
|
+
end
|
96
|
+
|
97
|
+
def self.startup( port=PORT )
|
98
|
+
return if @@thread
|
99
|
+
@@thread = Thread.new do
|
100
|
+
begin
|
101
|
+
EM.run do
|
102
|
+
EM.start_server "0.0.0.0", port, TestServerModule
|
103
|
+
end
|
104
|
+
rescue Interrupt
|
105
|
+
end
|
106
|
+
end
|
107
|
+
puts "TestServer listening on port #{port}."
|
108
|
+
end
|
109
|
+
|
110
|
+
def self.shutdown
|
111
|
+
return unless @@thread
|
112
|
+
@@thread.kill
|
113
|
+
@@thread.join
|
114
|
+
puts "TestServer stopped."
|
115
|
+
@@thread = nil
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
if __FILE__ == $0
|
120
|
+
require 'typhoeus'
|
121
|
+
TestServer.startup
|
122
|
+
response = Typhoeus::Request.get("http://localhost:1234/hi?sleep=1&return_data=verified")
|
123
|
+
puts "response: #{response.inspect}"
|
124
|
+
TestServer.shutdown
|
125
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'..','spec_helper')
|
2
|
+
|
3
|
+
describe RailsBridge::ContentBridge do
|
4
|
+
|
5
|
+
include ContentBridgeSpecHelper
|
6
|
+
|
7
|
+
before(:all) do
|
8
|
+
ContentBridgeTest.request_timeout = 1
|
9
|
+
end
|
10
|
+
|
11
|
+
after(:all) do
|
12
|
+
ContentBridgeTest.request_timeout = 1000
|
13
|
+
end
|
14
|
+
|
15
|
+
it "requires content_bridge name to be a symbol", :focus=>false do
|
16
|
+
lambda {
|
17
|
+
ContentBridgeTest.content_request 'name'
|
18
|
+
}.should raise_error RuntimeError
|
19
|
+
end
|
20
|
+
|
21
|
+
it "allows block level setting of defined content request's attributes ", :focus=>false do
|
22
|
+
request = ContentBridgeTest.content_requests[:chang]
|
23
|
+
request.protocol.should == DEFAULT_REQUEST_VALUES[:protocol]
|
24
|
+
request.host.should == DEFAULT_REQUEST_VALUES[:host]
|
25
|
+
request.port.should == DEFAULT_REQUEST_VALUES[:port]
|
26
|
+
request.params.should == DEFAULT_REQUEST_VALUES[:params]
|
27
|
+
request.default_content.should == DEFAULT_REQUEST_VALUES[:default_content]
|
28
|
+
end
|
29
|
+
|
30
|
+
it "automatically defines method for content_request", :focus=>false do
|
31
|
+
lambda{ContentBridgeTest.get_chang}.should_not raise_error Exception
|
32
|
+
end
|
33
|
+
|
34
|
+
it "returns request's default content when defined", :focus=>false do
|
35
|
+
ContentBridgeTest.get_chang.should == DEFAULT_REQUEST_VALUES[:default_content]
|
36
|
+
end
|
37
|
+
|
38
|
+
it "returns bridge's default content when request's is undefined", :focus=>false do
|
39
|
+
ContentBridgeTest.content_requests[:chang].default_content = nil
|
40
|
+
ContentBridgeTest.get_chang.should == ContentBridgeTest.default_content
|
41
|
+
ContentBridgeTest.content_requests[:chang].default_content = DEFAULT_REQUEST_VALUES[:default_content]
|
42
|
+
end
|
43
|
+
|
44
|
+
it "request options can be overriden at request time", :focus=>false do
|
45
|
+
ContentBridgeTest.get_chang(:default_content=>"YADA YADA").should == "YADA YADA"
|
46
|
+
end
|
47
|
+
|
48
|
+
it "subclassing a ContentBridge does not change parent class' attributes", :focus=>false do
|
49
|
+
class ContentBridgeTest2 < ContentBridgeTest
|
50
|
+
self.default_content = "Some other content."
|
51
|
+
end
|
52
|
+
ContentBridgeTest2.default_content.should == "Some other content."
|
53
|
+
ContentBridgeTest.content_requests[:chang].default_content = nil
|
54
|
+
ContentBridgeTest.get_chang.should == ContentBridgeTest.default_content
|
55
|
+
ContentBridgeTest2.get_chang.should == "Some other content."
|
56
|
+
ContentBridgeTest.content_requests[:chang].default_content = DEFAULT_REQUEST_VALUES[:default_content]
|
57
|
+
end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,84 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__),'..','spec_helper')
|
2
|
+
|
3
|
+
describe RailsBridge::ContentRequest do
|
4
|
+
|
5
|
+
DEFAULT_OPTIONS = {
|
6
|
+
:protocol => 'httpq',
|
7
|
+
:host => 'localhosty',
|
8
|
+
:port => 5678,
|
9
|
+
:path => '/path',
|
10
|
+
:params => {:p1=>'p1'},
|
11
|
+
:default_content => 'Default Content'
|
12
|
+
}
|
13
|
+
|
14
|
+
def default_options; DEFAULT_OPTIONS; end
|
15
|
+
|
16
|
+
it "initializes with options", :focus=>false do
|
17
|
+
request = RailsBridge::ContentRequest.new( default_options )
|
18
|
+
request.protocol.should == default_options[:protocol]
|
19
|
+
request.host.should == default_options[:host]
|
20
|
+
request.port.should == default_options[:port]
|
21
|
+
request.params.should == default_options[:params]
|
22
|
+
request.default_content.should == default_options[:default_content]
|
23
|
+
end
|
24
|
+
|
25
|
+
it "the accessors work", :focus=>false do
|
26
|
+
request = RailsBridge::ContentRequest.new
|
27
|
+
default_options.each do |k,v|
|
28
|
+
request.send("#{k}=".to_sym, v)
|
29
|
+
end
|
30
|
+
request.protocol.should == default_options[:protocol]
|
31
|
+
request.host.should == default_options[:host]
|
32
|
+
request.port.should == default_options[:port]
|
33
|
+
request.params.should == default_options[:params]
|
34
|
+
request.default_content.should == default_options[:default_content]
|
35
|
+
end
|
36
|
+
|
37
|
+
it "initializes its URL attributes components from :url when specified", :focus=>false do
|
38
|
+
request = RailsBridge::ContentRequest.new( {:url=>'http://localhost:5678/path?p1=p1'} )
|
39
|
+
request.url.should == 'http://localhost:5678/path'
|
40
|
+
request.params.should == {:p1=>'p1'}
|
41
|
+
|
42
|
+
request = RailsBridge::ContentRequest.new
|
43
|
+
request.url = "http://server.com:8080/some/path"
|
44
|
+
request.params = {:param1=>'a value', :param2=>'another value'}
|
45
|
+
request.url.should == 'http://server.com:8080/some/path'
|
46
|
+
request.params.should == {:param1=>'a value', :param2=>'another value'}
|
47
|
+
|
48
|
+
end
|
49
|
+
|
50
|
+
it "returns a properly formed URL without params", :focus=>false do
|
51
|
+
request = RailsBridge::ContentRequest.new( default_options )
|
52
|
+
request.url.should == 'httpq://localhosty:5678/path'
|
53
|
+
end
|
54
|
+
|
55
|
+
it ":on_success stores a block when passed and returns it when no block is passed", :focus=>false do
|
56
|
+
request = RailsBridge::ContentRequest.new( default_options )
|
57
|
+
executed = "concat"
|
58
|
+
request.on_success do |response|
|
59
|
+
response + "enated"
|
60
|
+
end
|
61
|
+
executed = request.on_success.call( executed )
|
62
|
+
executed.should == "concatenated"
|
63
|
+
end
|
64
|
+
|
65
|
+
it "uses the bridges attributes when none are specified on the request" do
|
66
|
+
class ContentBridgeTest3 < RailsBridge::ContentBridge
|
67
|
+
self.protocol = DEFAULT_OPTIONS[:protocol]
|
68
|
+
self.host = DEFAULT_OPTIONS[:host]
|
69
|
+
self.port = DEFAULT_OPTIONS[:port]
|
70
|
+
self.path = DEFAULT_OPTIONS[:path]
|
71
|
+
self.params = DEFAULT_OPTIONS[:params]
|
72
|
+
self.default_content = DEFAULT_OPTIONS[:default_content]
|
73
|
+
content_request :test
|
74
|
+
end
|
75
|
+
test_request = ContentBridgeTest3.content_requests[:test]
|
76
|
+
test_request.protocol.should == DEFAULT_OPTIONS[:protocol]
|
77
|
+
test_request.host.should == DEFAULT_OPTIONS[:host]
|
78
|
+
test_request.port.should == DEFAULT_OPTIONS[:port]
|
79
|
+
test_request.path.should == DEFAULT_OPTIONS[:path]
|
80
|
+
test_request.params.should == DEFAULT_OPTIONS[:params]
|
81
|
+
test_request.url.should == "httpq://localhosty:5678/path"
|
82
|
+
end
|
83
|
+
|
84
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RailsBridge do
|
4
|
+
it "exists" do
|
5
|
+
RailsBridge.kind_of?( Module ).should == true
|
6
|
+
end
|
7
|
+
|
8
|
+
it "loads necessary classes", :focus=>false do
|
9
|
+
RailsBridge::ContentBridge.new.is_a?( RailsBridge::ContentBridge ).should == true
|
10
|
+
end
|
11
|
+
end
|
metadata
ADDED
@@ -0,0 +1,380 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rails_bridge
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 0
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- shock
|
13
|
+
autorequire:
|
14
|
+
bindir: bin
|
15
|
+
cert_chain: []
|
16
|
+
|
17
|
+
date: 2011-01-04 00:00:00 -06:00
|
18
|
+
default_executable:
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: activesupport
|
22
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
23
|
+
none: false
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
prerelease: false
|
32
|
+
version_requirements: *id001
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: typhoeus
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
none: false
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
segments:
|
41
|
+
- 0
|
42
|
+
- 2
|
43
|
+
- 0
|
44
|
+
version: 0.2.0
|
45
|
+
type: :runtime
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rails_bridge
|
50
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
51
|
+
none: false
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
segments:
|
56
|
+
- 0
|
57
|
+
version: "0"
|
58
|
+
type: :runtime
|
59
|
+
prerelease: false
|
60
|
+
version_requirements: *id003
|
61
|
+
- !ruby/object:Gem::Dependency
|
62
|
+
name: wdd-ruby-ext
|
63
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
64
|
+
none: false
|
65
|
+
requirements:
|
66
|
+
- - ~>
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
segments:
|
69
|
+
- 0
|
70
|
+
- 2
|
71
|
+
- 3
|
72
|
+
version: 0.2.3
|
73
|
+
type: :runtime
|
74
|
+
prerelease: false
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: rails
|
78
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
segments:
|
84
|
+
- 3
|
85
|
+
- 0
|
86
|
+
version: "3.0"
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: jeweler
|
92
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
93
|
+
none: false
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
segments:
|
98
|
+
- 0
|
99
|
+
version: "0"
|
100
|
+
type: :development
|
101
|
+
prerelease: false
|
102
|
+
version_requirements: *id006
|
103
|
+
- !ruby/object:Gem::Dependency
|
104
|
+
name: sqlite3-ruby
|
105
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
106
|
+
none: false
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
segments:
|
111
|
+
- 0
|
112
|
+
version: "0"
|
113
|
+
type: :development
|
114
|
+
prerelease: false
|
115
|
+
version_requirements: *id007
|
116
|
+
- !ruby/object:Gem::Dependency
|
117
|
+
name: capybara
|
118
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
119
|
+
none: false
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
segments:
|
124
|
+
- 0
|
125
|
+
version: "0"
|
126
|
+
type: :development
|
127
|
+
prerelease: false
|
128
|
+
version_requirements: *id008
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rspec
|
131
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
133
|
+
requirements:
|
134
|
+
- - ">="
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
segments:
|
137
|
+
- 0
|
138
|
+
version: "0"
|
139
|
+
type: :development
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: *id009
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: rspec-rails
|
144
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ">="
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
segments:
|
150
|
+
- 0
|
151
|
+
version: "0"
|
152
|
+
type: :development
|
153
|
+
prerelease: false
|
154
|
+
version_requirements: *id010
|
155
|
+
- !ruby/object:Gem::Dependency
|
156
|
+
name: eventmachine
|
157
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
158
|
+
none: false
|
159
|
+
requirements:
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
segments:
|
163
|
+
- 0
|
164
|
+
version: "0"
|
165
|
+
type: :development
|
166
|
+
prerelease: false
|
167
|
+
version_requirements: *id011
|
168
|
+
- !ruby/object:Gem::Dependency
|
169
|
+
name: dalli
|
170
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
171
|
+
none: false
|
172
|
+
requirements:
|
173
|
+
- - ">="
|
174
|
+
- !ruby/object:Gem::Version
|
175
|
+
segments:
|
176
|
+
- 0
|
177
|
+
version: "0"
|
178
|
+
type: :development
|
179
|
+
prerelease: false
|
180
|
+
version_requirements: *id012
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: syntax
|
183
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
184
|
+
none: false
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
segments:
|
189
|
+
- 0
|
190
|
+
version: "0"
|
191
|
+
type: :development
|
192
|
+
prerelease: false
|
193
|
+
version_requirements: *id013
|
194
|
+
- !ruby/object:Gem::Dependency
|
195
|
+
name: tm_helper
|
196
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
197
|
+
none: false
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
segments:
|
202
|
+
- 0
|
203
|
+
version: "0"
|
204
|
+
type: :development
|
205
|
+
prerelease: false
|
206
|
+
version_requirements: *id014
|
207
|
+
- !ruby/object:Gem::Dependency
|
208
|
+
name: typhoeus
|
209
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
210
|
+
none: false
|
211
|
+
requirements:
|
212
|
+
- - ~>
|
213
|
+
- !ruby/object:Gem::Version
|
214
|
+
segments:
|
215
|
+
- 0
|
216
|
+
- 2
|
217
|
+
- 0
|
218
|
+
version: 0.2.0
|
219
|
+
type: :development
|
220
|
+
prerelease: false
|
221
|
+
version_requirements: *id015
|
222
|
+
- !ruby/object:Gem::Dependency
|
223
|
+
name: activesupport
|
224
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
225
|
+
none: false
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
segments:
|
230
|
+
- 2
|
231
|
+
- 3
|
232
|
+
- 8
|
233
|
+
version: 2.3.8
|
234
|
+
type: :development
|
235
|
+
prerelease: false
|
236
|
+
version_requirements: *id016
|
237
|
+
description: Allows for easy embedding of content from a remote HTTP server and exporting of the Rails HTML layout into another template.
|
238
|
+
email: billdoughty@capitalthought.com
|
239
|
+
executables: []
|
240
|
+
|
241
|
+
extensions: []
|
242
|
+
|
243
|
+
extra_rdoc_files:
|
244
|
+
- LICENSE
|
245
|
+
- README.rdoc
|
246
|
+
files:
|
247
|
+
- .rspec
|
248
|
+
- Gemfile
|
249
|
+
- Gemfile.lock
|
250
|
+
- LICENSE
|
251
|
+
- README.rdoc
|
252
|
+
- Rakefile
|
253
|
+
- VERSION
|
254
|
+
- app/controllers/rails_bridge/layout_bridge_controller.rb
|
255
|
+
- app/views/content.html.erb
|
256
|
+
- app/views/rails_bridge/layout_bridge/index.html.erb
|
257
|
+
- config/routes.rb
|
258
|
+
- lib/generators/content_bridge/USAGE
|
259
|
+
- lib/generators/content_bridge/content_bridge_generator.rb
|
260
|
+
- lib/generators/content_bridge/templates/content_bridge.rb
|
261
|
+
- lib/rails_bridge.rb
|
262
|
+
- lib/rails_bridge/content_bridge.rb
|
263
|
+
- lib/rails_bridge/content_request.rb
|
264
|
+
- lib/rails_bridge/engine.rb
|
265
|
+
- rails_bridge.gemspec
|
266
|
+
- script/console
|
267
|
+
- spec/dummy/.rspec
|
268
|
+
- spec/dummy/Rakefile
|
269
|
+
- spec/dummy/app/controllers/application_controller.rb
|
270
|
+
- spec/dummy/app/helpers/application_helper.rb
|
271
|
+
- spec/dummy/app/rails_bridge/content_bridges/twitter_content_bridge.rb
|
272
|
+
- spec/dummy/app/rails_bridge/layout_bridge/layouts/application/content.html.erb
|
273
|
+
- spec/dummy/app/rails_bridge/layout_bridge/views/layouts/_partial.html.erb
|
274
|
+
- spec/dummy/app/views/layouts/_partial.html.erb
|
275
|
+
- spec/dummy/app/views/layouts/alternative.html.erb
|
276
|
+
- spec/dummy/app/views/layouts/application.html.erb
|
277
|
+
- spec/dummy/autotest/discover.rb
|
278
|
+
- spec/dummy/config.ru
|
279
|
+
- spec/dummy/config/application.rb
|
280
|
+
- spec/dummy/config/boot.rb
|
281
|
+
- spec/dummy/config/database.yml
|
282
|
+
- spec/dummy/config/environment.rb
|
283
|
+
- spec/dummy/config/environments/development.rb
|
284
|
+
- spec/dummy/config/environments/production.rb
|
285
|
+
- spec/dummy/config/environments/test.rb
|
286
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
287
|
+
- spec/dummy/config/initializers/inflections.rb
|
288
|
+
- spec/dummy/config/initializers/mime_types.rb
|
289
|
+
- spec/dummy/config/initializers/secret_token.rb
|
290
|
+
- spec/dummy/config/initializers/session_store.rb
|
291
|
+
- spec/dummy/config/locales/en.yml
|
292
|
+
- spec/dummy/config/routes.rb
|
293
|
+
- spec/dummy/db/development.sqlite3
|
294
|
+
- spec/dummy/db/test.sqlite3
|
295
|
+
- spec/dummy/public/404.html
|
296
|
+
- spec/dummy/public/422.html
|
297
|
+
- spec/dummy/public/500.html
|
298
|
+
- spec/dummy/public/favicon.ico
|
299
|
+
- spec/dummy/public/javascripts/application.js
|
300
|
+
- spec/dummy/public/javascripts/controls.js
|
301
|
+
- spec/dummy/public/javascripts/dragdrop.js
|
302
|
+
- spec/dummy/public/javascripts/effects.js
|
303
|
+
- spec/dummy/public/javascripts/prototype.js
|
304
|
+
- spec/dummy/public/javascripts/rails.js
|
305
|
+
- spec/dummy/public/stylesheets/.gitkeep
|
306
|
+
- spec/dummy/script/rails
|
307
|
+
- spec/dummy/spec/spec_helper.rb
|
308
|
+
- spec/integration/content_bridge_spec.rb
|
309
|
+
- spec/integration/engine_spec.rb
|
310
|
+
- spec/requests/layout_bridge_controller_spec.rb
|
311
|
+
- spec/spec_helper.rb
|
312
|
+
- spec/support/content_bridge_helper.rb
|
313
|
+
- spec/support/layout_bridge_helper.rb
|
314
|
+
- spec/support/rails_bridge_helper.rb
|
315
|
+
- spec/support/test_server_helper.rb
|
316
|
+
- spec/unit/content_bridge_spec.rb
|
317
|
+
- spec/unit/content_request_spec.rb
|
318
|
+
- spec/unit/rails_bridge_spec.rb
|
319
|
+
has_rdoc: true
|
320
|
+
homepage: http://github.com/capitalthought/rails_bridge
|
321
|
+
licenses: []
|
322
|
+
|
323
|
+
post_install_message:
|
324
|
+
rdoc_options: []
|
325
|
+
|
326
|
+
require_paths:
|
327
|
+
- lib
|
328
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
329
|
+
none: false
|
330
|
+
requirements:
|
331
|
+
- - ">="
|
332
|
+
- !ruby/object:Gem::Version
|
333
|
+
hash: -3052608585109228459
|
334
|
+
segments:
|
335
|
+
- 0
|
336
|
+
version: "0"
|
337
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
338
|
+
none: false
|
339
|
+
requirements:
|
340
|
+
- - ">="
|
341
|
+
- !ruby/object:Gem::Version
|
342
|
+
segments:
|
343
|
+
- 0
|
344
|
+
version: "0"
|
345
|
+
requirements: []
|
346
|
+
|
347
|
+
rubyforge_project:
|
348
|
+
rubygems_version: 1.3.7
|
349
|
+
signing_key:
|
350
|
+
specification_version: 3
|
351
|
+
summary: Bridges Rails with an external application.
|
352
|
+
test_files:
|
353
|
+
- spec/dummy/app/controllers/application_controller.rb
|
354
|
+
- spec/dummy/app/helpers/application_helper.rb
|
355
|
+
- spec/dummy/app/rails_bridge/content_bridges/twitter_content_bridge.rb
|
356
|
+
- spec/dummy/autotest/discover.rb
|
357
|
+
- spec/dummy/config/application.rb
|
358
|
+
- spec/dummy/config/boot.rb
|
359
|
+
- spec/dummy/config/environment.rb
|
360
|
+
- spec/dummy/config/environments/development.rb
|
361
|
+
- spec/dummy/config/environments/production.rb
|
362
|
+
- spec/dummy/config/environments/test.rb
|
363
|
+
- spec/dummy/config/initializers/backtrace_silencers.rb
|
364
|
+
- spec/dummy/config/initializers/inflections.rb
|
365
|
+
- spec/dummy/config/initializers/mime_types.rb
|
366
|
+
- spec/dummy/config/initializers/secret_token.rb
|
367
|
+
- spec/dummy/config/initializers/session_store.rb
|
368
|
+
- spec/dummy/config/routes.rb
|
369
|
+
- spec/dummy/spec/spec_helper.rb
|
370
|
+
- spec/integration/content_bridge_spec.rb
|
371
|
+
- spec/integration/engine_spec.rb
|
372
|
+
- spec/requests/layout_bridge_controller_spec.rb
|
373
|
+
- spec/spec_helper.rb
|
374
|
+
- spec/support/content_bridge_helper.rb
|
375
|
+
- spec/support/layout_bridge_helper.rb
|
376
|
+
- spec/support/rails_bridge_helper.rb
|
377
|
+
- spec/support/test_server_helper.rb
|
378
|
+
- spec/unit/content_bridge_spec.rb
|
379
|
+
- spec/unit/content_request_spec.rb
|
380
|
+
- spec/unit/rails_bridge_spec.rb
|