tom 0.1.0 → 0.1.1

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/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm --create use ruby-1.9.2-p290@leonard
1
+ rvm --create use ruby-1.9.2-p290@tom
data/Gemfile CHANGED
@@ -4,9 +4,8 @@ group :default do
4
4
  gem "goliath"
5
5
  gem "em-synchrony"
6
6
  gem "em-http-request"
7
- gem "mp-deployment", "0.0.21"
8
7
  gem "json"
9
- gem "rake"
8
+ gem "rake", "~> 0.9.2"
10
9
  end
11
10
 
12
11
  # Add dependencies to develop your gem here.
@@ -20,4 +19,5 @@ group :development do
20
19
  gem "rspec"
21
20
  gem "webmock"
22
21
  gem "yard"
22
+ gem "rdiscount"
23
23
  end
@@ -5,14 +5,6 @@ GEM
5
5
  archive-tar-minitar (0.5.2)
6
6
  async-rack (0.5.1)
7
7
  rack (~> 1.1)
8
- capistrano (2.5.21)
9
- highline
10
- net-scp (>= 1.0.0)
11
- net-sftp (>= 2.0.0)
12
- net-ssh (>= 2.0.14)
13
- net-ssh-gateway (>= 1.0.0)
14
- capistrano-ext (1.2.1)
15
- capistrano (>= 1.0.0)
16
8
  columnize (0.3.5)
17
9
  crack (0.3.1)
18
10
  diff-lcs (1.1.3)
@@ -26,7 +18,6 @@ GEM
26
18
  em-synchrony (1.0.0)
27
19
  eventmachine (>= 1.0.0.beta.1)
28
20
  eventmachine (1.0.0.beta.4)
29
- facter (1.6.3)
30
21
  git (1.2.5)
31
22
  goliath (0.9.4)
32
23
  async-rack
@@ -39,8 +30,6 @@ GEM
39
30
  rack (>= 1.2.2)
40
31
  rack-contrib
41
32
  rack-respond_to
42
- hashie (1.0.0)
43
- highline (1.6.8)
44
33
  http_parser.rb (0.5.3)
45
34
  http_router (0.9.7)
46
35
  rack (>= 1.0.0)
@@ -53,23 +42,7 @@ GEM
53
42
  linecache19 (0.5.12)
54
43
  ruby_core_source (>= 0.1.4)
55
44
  log4r (1.1.9)
56
- mp-deployment (0.0.21)
57
- capistrano (~> 2.5.20)
58
- capistrano-ext (~> 1.2.1)
59
- facter (~> 1.6.0)
60
- hashie (~> 1.0.0)
61
- newrelic_rpm (~> 3.3.0)
62
- rpm_contrib (~> 2.1.3)
63
- rvm (~> 1.6.20)
64
45
  multi_json (1.0.3)
65
- net-scp (1.0.4)
66
- net-ssh (>= 1.99.1)
67
- net-sftp (2.0.5)
68
- net-ssh (>= 2.0.9)
69
- net-ssh (2.2.1)
70
- net-ssh-gateway (1.1.0)
71
- net-ssh (>= 1.99.1)
72
- newrelic_rpm (3.3.0)
73
46
  rack (1.3.5)
74
47
  rack-accept-media-types (0.9)
75
48
  rack-contrib (1.1.0)
@@ -78,9 +51,7 @@ GEM
78
51
  rack-accept-media-types (>= 0.6)
79
52
  rake (0.9.2.2)
80
53
  rcov (0.9.11)
81
- rpm_contrib (2.1.6)
82
- newrelic_rpm (>= 3.1.1)
83
- newrelic_rpm (>= 3.1.1)
54
+ rdiscount (1.6.8)
84
55
  rspec (2.7.0)
85
56
  rspec-core (~> 2.7.0)
86
57
  rspec-expectations (~> 2.7.0)
@@ -99,7 +70,6 @@ GEM
99
70
  ruby-debug-base19 (>= 0.11.19)
100
71
  ruby_core_source (0.1.5)
101
72
  archive-tar-minitar (>= 0.5.2)
102
- rvm (1.6.32)
103
73
  shoulda (2.11.3)
104
74
  url_mount (0.2.1)
105
75
  rack
@@ -118,9 +88,9 @@ DEPENDENCIES
118
88
  goliath
119
89
  jeweler (~> 1.6.4)
120
90
  json
121
- mp-deployment (= 0.0.21)
122
- rake
91
+ rake (~> 0.9.2)
123
92
  rcov
93
+ rdiscount
124
94
  rspec
125
95
  ruby-debug19
126
96
  shoulda
File without changes
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -7,14 +7,18 @@ module Tom
7
7
  attr_accessor :host
8
8
  end
9
9
 
10
+ # Registers a route with the request dispatcher
11
+ # so that this classes subclass gets called when
12
+ # a request is made. One that matches the route.
10
13
  #
11
- # Registers a route with the request dispatcher
12
- # so that this classes subclass gets called when
13
- # a request is made. One that matches the route.
14
- #
15
- # The route can be a string, but it becomes a
16
- # regular expression in here, followed by methods.
14
+ # The route can be a string, but it becomes a
15
+ # regular expression in here, followed by methods.
17
16
  #
17
+ # @param route [String] The route this Adapter should
18
+ # respond to.
19
+ # @param methods [Array<Symbol>] Optional array of methods
20
+ # that this Adapter is listening to. It defaults to
21
+ # all (`:head`, `:get`, `:put`, `:post`, `:delete`)
18
22
  def self.register_route(*args)
19
23
  route = args[0]
20
24
  methods = args[1..-1]
@@ -25,11 +29,12 @@ module Tom
25
29
  @request = {}
26
30
  end
27
31
 
32
+ # Takes a request from rack and issues the same
33
+ # request again, just to a different host. This
34
+ # method is to be used by subclasses.
28
35
  #
29
- # Takes a request from rack and issues the same
30
- # request again, just to a different host. This
31
- # method is to be used by subclasses.
32
- #
36
+ # @param env [Array] The incoming (original request)
37
+ # rack env object
33
38
  def forward_request(env)
34
39
  rewrite_request(env)
35
40
  options = http_request_options(env)
@@ -41,14 +46,14 @@ module Tom
41
46
  [result.response_header.status, headers, result.response]
42
47
  end
43
48
 
49
+ # Takes a request and generates the options for calling
50
+ # HttpRequest.put (or whatever the the requested
51
+ # REQUEST_METHOD is).
44
52
  #
45
- # Takes a request and generates the options for calling
46
- # HttpRequest.put (or whatever the the requested
47
- # REQUEST_METHOD is).
48
- #
49
- # It's content depends on the request method, for PUTs
50
- # and POSTs this will add the request body
53
+ # It's content depends on the request method, for PUTs
54
+ # and POSTs this will add the request body
51
55
  #
56
+ # @param env [Array] A rack env object
52
57
  def http_request_options(env)
53
58
  opts = {}
54
59
  if [:put, :post].include? @request[:method]
@@ -57,35 +62,40 @@ module Tom
57
62
  opts
58
63
  end
59
64
 
65
+ # Extracts the given POT/PUST (hehe) body
60
66
  #
61
- # Extracts the given POT/PUST (hehe) body
62
- #
67
+ # @param env [Array] A rack env object
63
68
  def extract_request_body(env)
64
69
  Rack::Request.new(env).POST.keys.first rescue "{}"
65
70
  end
66
71
 
72
+ # Takes a request from rack and extracts the request
73
+ # method, uri and returns the host this adapter talks
74
+ # to. Can be overwritten if you want to change stuff
75
+ # before forwarding it.
67
76
  #
68
- # Takes a request from rack and extracts the request
69
- # method, uri and returns the host this adapter talks
70
- # to. Can be overwritten if you want to change stuff
71
- # before forwarding it.
72
- #
77
+ # @param env [Array] A rack env object
73
78
  def rewrite_request(env)
74
79
  rewritten = rewrite_host(env)
75
80
  @request = rewritten.merge(@request)
76
81
  end
77
82
 
83
+ # Subclasses must implement this method to handle incoming
84
+ # requests
85
+ #
86
+ # @param env [Array] The incoming (original request)
87
+ # rack env object
78
88
  def handle(env)
79
89
  raise "Subclass, implement #handle(env)!"
80
90
  end
81
91
 
82
92
  private
83
93
 
94
+ # Returns a hash that can be used as the @request variable,
95
+ # which is exactly like the given env except for a changed
96
+ # hostname.
84
97
  #
85
- # Returns a hash that can be used as the @request variable,
86
- # which is exactly like the given env except for a changed
87
- # hostname.
88
- #
98
+ # @param env [Array] A rack env object
89
99
  def rewrite_host(env)
90
100
  { host: self.class.host,
91
101
  uri: env["REQUEST_URI"],
@@ -13,11 +13,12 @@ module Tom
13
13
 
14
14
  class Dispatcher
15
15
 
16
+ # Dispatches this request to all adapters that registered
17
+ # for the route and then calls the merger for this route
18
+ # to compose a response
16
19
  #
17
- # Dispatches this request to all adapters that registered
18
- # for the route and then calls the merger for this route
19
- # to compose a response
20
- #
20
+ # @param env [Array] A rack env object
21
+ # @return (see #merge)
21
22
  def self.dispatch(env)
22
23
  adapters = adapters_for_route(env)
23
24
  return [404, {}, '{reason: "No adapters for this route"}'] if adapters.empty?
@@ -36,13 +37,16 @@ module Tom
36
37
  merged
37
38
  end
38
39
 
40
+ # Takes a request (rack env) and a couple of responses
41
+ # generated by api adapters and composes a response for the
42
+ # client.
39
43
  #
40
- # Takes a request (rack env) and a couple of responses
41
- # generated by api adapters and composes a response for the
42
- # client.
43
- #
44
- # The merger used depends on the route.
44
+ # The merger used depends on the route.
45
45
  #
46
+ # @param env [Array] A rack env object
47
+ # @return [Array] The merged result of all requests
48
+ # made as an array of status code, headers and body, e.g.
49
+ # `[200, {}, "Hi!"]`
46
50
  def self.merge(env, responses)
47
51
  merger = merger_for_route(env)
48
52
  Tom::LOG.info "Merging with:"
@@ -50,13 +54,17 @@ module Tom
50
54
  merger.new.merge env, responses
51
55
  end
52
56
 
57
+ # Registers a opts[:adapter] or opts[:merger] for the
58
+ # given opts[:route].
53
59
  #
54
- # Registers a opts[:adapter] or opts[:merger] for the
55
- # given opts[:route].
56
- #
57
- # This method should not be called directly, use register_route
58
- # in Tom::Adapter or Tom::Merger instead.
60
+ # This method should not be called directly, use register_route
61
+ # in Tom::Adapter or Tom::Merger instead.
59
62
  #
63
+ # @param opts [Hash] Needs to have at least `:route` and
64
+ # either `:adapter` or `:merger` set, depending on what you
65
+ # are registering. But you don't need to use this method
66
+ # directly, Adapter and Merger provide convenience methods
67
+ # for you.
60
68
  def self.register(opts)
61
69
  return register_adapter(opts) if opts[:adapter]
62
70
  return register_merger(opts) if opts[:merger]
@@ -1,12 +1,16 @@
1
1
  module Tom
2
2
  module Http
3
3
 
4
+ # Makes a http request of the given method to the given url.
5
+ # Passes the options on to EM::HttpRequest.put (or whatever
6
+ # method has to be called) and does some error handling and
7
+ # works around some EM:HttpRequest oddities (see handle_errors).
4
8
  #
5
- # Makes a http request of the given method to the given url.
6
- # Passes the options on to EM::HttpRequest.put (or whatever
7
- # method has to be called) and does some error handling and
8
- # works around some EM:HttpRequest oddities (see handle_errors).
9
- #
9
+ # @param method [Symbol] Request method, lowercase, you know
10
+ # the deal
11
+ # @param url [String] Full url (e.g. host + path)
12
+ # @param options [Hash] Options to pass to EM::HttpRequest's
13
+ # get/put/post/delete method
10
14
  def self.make_request(method, url, options = {})
11
15
  Tom::LOG.info " curl -X#{method.upcase} -d '#{options[:body]}' #{url}"
12
16
 
@@ -1,32 +1,37 @@
1
1
  module Tom
2
2
  class Merger
3
3
 
4
+ # Registers a route with the request dispatcher
5
+ # so that this classes subclass gets called when
6
+ # a request is made. One that matches the route.
4
7
  #
5
- # Registers a route with the request dispatcher
6
- # so that this classes subclass gets called when
7
- # a request is made. One that matches the route.
8
- #
9
- # The route can be a string, but it becomes a
10
- # regular expression in here. When matching in
11
- # order to find a merger for a request, the first
12
- # one matching wins.
8
+ # The route can be a string, but it becomes a
9
+ # regular expression in here. When matching in
10
+ # order to find a merger for a request, the first
11
+ # one matching wins.
13
12
  #
13
+ # @param route [String] The route this Merger should
14
+ # respond to.
15
+ # @param methods [Array<Symbol>] Optional array of methods
16
+ # that this Merger is listening to. It defaults to
17
+ # all (`:head`, `:get`, `:put`, `:post`, `:delete`)
14
18
  def self.register_route(*args)
15
19
  route = args[0]
16
20
  methods = args[1..-1]
17
21
  Dispatcher.register(route: /#{route}/, merger: self, methods: methods)
18
22
  end
19
23
 
24
+ # When the request dispatcher made all the requests,
25
+ # it will call the merge method of the subclass with
26
+ # the responses as a hash in the form
20
27
  #
21
- # When the request dispatcher made all the requests,
22
- # it will call the merge method of the subclass with
23
- # the responses as a hash in the form
24
- #
25
- # {MyAdapter: rack_env, MyOtherAdapter: other_env}
26
- #
27
- # Has to return a rack response (for example, something
28
- # like [200, {}, "body"])
29
- #
28
+ # @param env [Array] The incoming (original request)
29
+ # rack env object
30
+ # @param responses [Hash] Replies from all Adapters that
31
+ # got triggered by route and method, e.g.
32
+ # `{MyAdapter: rack_env, MyOtherAdapter: other_env}`
33
+ # @return [Array] A rack response (for example, something
34
+ # like [200, {}, "body"])
30
35
  def merge(env, responses)
31
36
  raise "Subclass, implement #merge(env, responses)!"
32
37
  end
@@ -5,16 +5,16 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "tom"
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jannis Hermanns"]
12
- s.date = "2011-12-02"
12
+ s.date = "2011-12-03"
13
13
  s.description = " Tom uses Goliath to dispatch HTTP requests to multiple other APIs (via Adapters) in parallel. In a next step, a Merger merges the result and responds to the clients request."
14
14
  s.email = "jannis@gmail.com"
15
15
  s.extra_rdoc_files = [
16
16
  "LICENSE.txt",
17
- "README.markdown"
17
+ "README.md"
18
18
  ]
19
19
  s.files = [
20
20
  ".document",
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
22
22
  "Gemfile",
23
23
  "Gemfile.lock",
24
24
  "LICENSE.txt",
25
- "README.markdown",
25
+ "README.md",
26
26
  "Rakefile",
27
27
  "VERSION",
28
28
  "lib/adapter.rb",
@@ -49,9 +49,8 @@ Gem::Specification.new do |s|
49
49
  s.add_runtime_dependency(%q<goliath>, [">= 0"])
50
50
  s.add_runtime_dependency(%q<em-synchrony>, [">= 0"])
51
51
  s.add_runtime_dependency(%q<em-http-request>, [">= 0"])
52
- s.add_runtime_dependency(%q<mp-deployment>, ["= 0.0.21"])
53
52
  s.add_runtime_dependency(%q<json>, [">= 0"])
54
- s.add_runtime_dependency(%q<rake>, [">= 0"])
53
+ s.add_runtime_dependency(%q<rake>, ["~> 0.9.2"])
55
54
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
56
55
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
57
56
  s.add_development_dependency(%q<shoulda>, [">= 0"])
@@ -60,13 +59,13 @@ Gem::Specification.new do |s|
60
59
  s.add_development_dependency(%q<rspec>, [">= 0"])
61
60
  s.add_development_dependency(%q<webmock>, [">= 0"])
62
61
  s.add_development_dependency(%q<yard>, [">= 0"])
62
+ s.add_development_dependency(%q<rdiscount>, [">= 0"])
63
63
  else
64
64
  s.add_dependency(%q<goliath>, [">= 0"])
65
65
  s.add_dependency(%q<em-synchrony>, [">= 0"])
66
66
  s.add_dependency(%q<em-http-request>, [">= 0"])
67
- s.add_dependency(%q<mp-deployment>, ["= 0.0.21"])
68
67
  s.add_dependency(%q<json>, [">= 0"])
69
- s.add_dependency(%q<rake>, [">= 0"])
68
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
70
69
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
71
70
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
72
71
  s.add_dependency(%q<shoulda>, [">= 0"])
@@ -75,14 +74,14 @@ Gem::Specification.new do |s|
75
74
  s.add_dependency(%q<rspec>, [">= 0"])
76
75
  s.add_dependency(%q<webmock>, [">= 0"])
77
76
  s.add_dependency(%q<yard>, [">= 0"])
77
+ s.add_dependency(%q<rdiscount>, [">= 0"])
78
78
  end
79
79
  else
80
80
  s.add_dependency(%q<goliath>, [">= 0"])
81
81
  s.add_dependency(%q<em-synchrony>, [">= 0"])
82
82
  s.add_dependency(%q<em-http-request>, [">= 0"])
83
- s.add_dependency(%q<mp-deployment>, ["= 0.0.21"])
84
83
  s.add_dependency(%q<json>, [">= 0"])
85
- s.add_dependency(%q<rake>, [">= 0"])
84
+ s.add_dependency(%q<rake>, ["~> 0.9.2"])
86
85
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
87
86
  s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
88
87
  s.add_dependency(%q<shoulda>, [">= 0"])
@@ -91,6 +90,7 @@ Gem::Specification.new do |s|
91
90
  s.add_dependency(%q<rspec>, [">= 0"])
92
91
  s.add_dependency(%q<webmock>, [">= 0"])
93
92
  s.add_dependency(%q<yard>, [">= 0"])
93
+ s.add_dependency(%q<rdiscount>, [">= 0"])
94
94
  end
95
95
  end
96
96
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-02 00:00:00.000000000Z
12
+ date: 2011-12-03 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: goliath
16
- requirement: &70256849153920 !ruby/object:Gem::Requirement
16
+ requirement: &70331478259800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70256849153920
24
+ version_requirements: *70331478259800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: em-synchrony
27
- requirement: &70256849153340 !ruby/object:Gem::Requirement
27
+ requirement: &70331478259160 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70256849153340
35
+ version_requirements: *70331478259160
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: em-http-request
38
- requirement: &70256849152840 !ruby/object:Gem::Requirement
38
+ requirement: &70331478258580 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,21 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70256849152840
47
- - !ruby/object:Gem::Dependency
48
- name: mp-deployment
49
- requirement: &70256849152280 !ruby/object:Gem::Requirement
50
- none: false
51
- requirements:
52
- - - =
53
- - !ruby/object:Gem::Version
54
- version: 0.0.21
55
- type: :runtime
56
- prerelease: false
57
- version_requirements: *70256849152280
46
+ version_requirements: *70331478258580
58
47
  - !ruby/object:Gem::Dependency
59
48
  name: json
60
- requirement: &70256849151680 !ruby/object:Gem::Requirement
49
+ requirement: &70331478258020 !ruby/object:Gem::Requirement
61
50
  none: false
62
51
  requirements:
63
52
  - - ! '>='
@@ -65,21 +54,21 @@ dependencies:
65
54
  version: '0'
66
55
  type: :runtime
67
56
  prerelease: false
68
- version_requirements: *70256849151680
57
+ version_requirements: *70331478258020
69
58
  - !ruby/object:Gem::Dependency
70
59
  name: rake
71
- requirement: &70256849151080 !ruby/object:Gem::Requirement
60
+ requirement: &70331478257520 !ruby/object:Gem::Requirement
72
61
  none: false
73
62
  requirements:
74
- - - ! '>='
63
+ - - ~>
75
64
  - !ruby/object:Gem::Version
76
- version: '0'
65
+ version: 0.9.2
77
66
  type: :runtime
78
67
  prerelease: false
79
- version_requirements: *70256849151080
68
+ version_requirements: *70331478257520
80
69
  - !ruby/object:Gem::Dependency
81
70
  name: bundler
82
- requirement: &70256849150560 !ruby/object:Gem::Requirement
71
+ requirement: &70331478257040 !ruby/object:Gem::Requirement
83
72
  none: false
84
73
  requirements:
85
74
  - - ~>
@@ -87,10 +76,10 @@ dependencies:
87
76
  version: 1.0.0
88
77
  type: :development
89
78
  prerelease: false
90
- version_requirements: *70256849150560
79
+ version_requirements: *70331478257040
91
80
  - !ruby/object:Gem::Dependency
92
81
  name: jeweler
93
- requirement: &70256849150000 !ruby/object:Gem::Requirement
82
+ requirement: &70331478256480 !ruby/object:Gem::Requirement
94
83
  none: false
95
84
  requirements:
96
85
  - - ~>
@@ -98,10 +87,10 @@ dependencies:
98
87
  version: 1.6.4
99
88
  type: :development
100
89
  prerelease: false
101
- version_requirements: *70256849150000
90
+ version_requirements: *70331478256480
102
91
  - !ruby/object:Gem::Dependency
103
92
  name: shoulda
104
- requirement: &70256849149420 !ruby/object:Gem::Requirement
93
+ requirement: &70331478255940 !ruby/object:Gem::Requirement
105
94
  none: false
106
95
  requirements:
107
96
  - - ! '>='
@@ -109,10 +98,10 @@ dependencies:
109
98
  version: '0'
110
99
  type: :development
111
100
  prerelease: false
112
- version_requirements: *70256849149420
101
+ version_requirements: *70331478255940
113
102
  - !ruby/object:Gem::Dependency
114
103
  name: rcov
115
- requirement: &70256849148740 !ruby/object:Gem::Requirement
104
+ requirement: &70331478255420 !ruby/object:Gem::Requirement
116
105
  none: false
117
106
  requirements:
118
107
  - - ! '>='
@@ -120,10 +109,10 @@ dependencies:
120
109
  version: '0'
121
110
  type: :development
122
111
  prerelease: false
123
- version_requirements: *70256849148740
112
+ version_requirements: *70331478255420
124
113
  - !ruby/object:Gem::Dependency
125
114
  name: ruby-debug19
126
- requirement: &70256849148120 !ruby/object:Gem::Requirement
115
+ requirement: &70331478254880 !ruby/object:Gem::Requirement
127
116
  none: false
128
117
  requirements:
129
118
  - - ! '>='
@@ -131,10 +120,10 @@ dependencies:
131
120
  version: '0'
132
121
  type: :development
133
122
  prerelease: false
134
- version_requirements: *70256849148120
123
+ version_requirements: *70331478254880
135
124
  - !ruby/object:Gem::Dependency
136
125
  name: rspec
137
- requirement: &70256849147600 !ruby/object:Gem::Requirement
126
+ requirement: &70331478254360 !ruby/object:Gem::Requirement
138
127
  none: false
139
128
  requirements:
140
129
  - - ! '>='
@@ -142,10 +131,10 @@ dependencies:
142
131
  version: '0'
143
132
  type: :development
144
133
  prerelease: false
145
- version_requirements: *70256849147600
134
+ version_requirements: *70331478254360
146
135
  - !ruby/object:Gem::Dependency
147
136
  name: webmock
148
- requirement: &70256849147020 !ruby/object:Gem::Requirement
137
+ requirement: &70331478253820 !ruby/object:Gem::Requirement
149
138
  none: false
150
139
  requirements:
151
140
  - - ! '>='
@@ -153,10 +142,21 @@ dependencies:
153
142
  version: '0'
154
143
  type: :development
155
144
  prerelease: false
156
- version_requirements: *70256849147020
145
+ version_requirements: *70331478253820
157
146
  - !ruby/object:Gem::Dependency
158
147
  name: yard
159
- requirement: &70256849146400 !ruby/object:Gem::Requirement
148
+ requirement: &70331478253300 !ruby/object:Gem::Requirement
149
+ none: false
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: *70331478253300
157
+ - !ruby/object:Gem::Dependency
158
+ name: rdiscount
159
+ requirement: &70331478252780 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ! '>='
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: '0'
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *70256849146400
167
+ version_requirements: *70331478252780
168
168
  description: ! ' Tom uses Goliath to dispatch HTTP requests to multiple other APIs
169
169
  (via Adapters) in parallel. In a next step, a Merger merges the result and responds
170
170
  to the clients request.'
@@ -173,14 +173,14 @@ executables: []
173
173
  extensions: []
174
174
  extra_rdoc_files:
175
175
  - LICENSE.txt
176
- - README.markdown
176
+ - README.md
177
177
  files:
178
178
  - .document
179
179
  - .rvmrc
180
180
  - Gemfile
181
181
  - Gemfile.lock
182
182
  - LICENSE.txt
183
- - README.markdown
183
+ - README.md
184
184
  - Rakefile
185
185
  - VERSION
186
186
  - lib/adapter.rb
@@ -208,7 +208,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
208
  version: '0'
209
209
  segments:
210
210
  - 0
211
- hash: -4016356889838983520
211
+ hash: 480202980293159198
212
212
  required_rubygems_version: !ruby/object:Gem::Requirement
213
213
  none: false
214
214
  requirements: