alephant-publisher-request 0.0.3 → 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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c15f852464713d472f48b82c990ed703a58b37cf
4
- data.tar.gz: 781ed1fa26682f45f50a8c96da5dd97f2b16bbb6
3
+ metadata.gz: 636d57a2d11137dff5db768d01ca82ecb182d16b
4
+ data.tar.gz: 967fcecc92c5208f88247ee5b9ea3f32c23336b4
5
5
  SHA512:
6
- metadata.gz: 5eb6b6d1ce675cf2cd999d0735a5a10c751a5ee278443b7d9cf8faaf4f4c886983c4eaede287bb072ec452690f878467ddbf196a63383a763e226b98c3716a35
7
- data.tar.gz: b5e0d38a65c58422ef4c7c4c610ce82ed4dea283900da790f2b4073499a97ffd66a487ed5bdee1fee248ab92c474940eb86c0b6de47ce2a8ac7193cbc8c60ba4
6
+ metadata.gz: 39927e50459406de2270cac19444387d5964d19f51f075268a0cadb8dde2341a1d1dad1656a00d7f444a996b08ed724de89f498a30750a93da83b9d04f1de7e8
7
+ data.tar.gz: c56b87f5bbe539d9f3beac9284ba9eb524a02fcec128ce89bb1a2d4ec7f594bccf3e9fb3dee561298230d4f401d21a06492f8b5c01c7f9cb792f322d35b8a88e
data/.gitignore CHANGED
@@ -16,7 +16,6 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  .rspec
19
- .ruby-version
20
19
  /config/*.yaml
21
20
  /config/*.yml
22
21
  /components
@@ -0,0 +1 @@
1
+ jruby-1.7
data/README.md CHANGED
@@ -10,10 +10,20 @@ Dynamic publishing based on data from an API.
10
10
 
11
11
  ## Migrating from [Alephant::Publisher](https://github.com/BBC-News/alephant-publisher)
12
12
 
13
- 1. Add the new gem in your Gemfile (`gem 'alephant-publisher-request'`).
14
- 2. Run `bundle install`.
15
- 3. Require the new gem in your app (`require 'alephant/publisher/queue'`).
16
- 4. Note that the namespace has changed from `Alephant::Publisher` to `Alephant::Publisher::Request`.
13
+ Add the new gem to your Gemfile:
14
+
15
+ gem 'alephant-publisher-request'
16
+
17
+ Run:
18
+
19
+ bundle install
20
+
21
+ Require the new gem in your app:
22
+
23
+ require 'alephant/publisher/request'
24
+
25
+
26
+ **Note** - the namespace has changed from `Alephant::Publisher` to `Alephant::Publisher::Request`.
17
27
 
18
28
  ## Installation
19
29
 
@@ -31,7 +41,7 @@ Or install it yourself as:
31
41
 
32
42
  ## Setup
33
43
 
34
- You need to run the gem as a rack application, and pass it the nessasary dependencies. Below is a simple example of the minimum needed to run the server:
44
+ You need to run the gem as a rack application, and pass it the necessary dependencies. Below is a simple example of the minimum needed to run the server:
35
45
 
36
46
  ### Folder structure
37
47
 
@@ -56,7 +66,7 @@ The model must extend either the JSON or HTML base from the [alephant-renderer](
56
66
  require 'alephant/renderer/views/html'
57
67
 
58
68
  module SomeNameSpace
59
- class MyTestComponent Alephant::Renderer::Views::Html
69
+ class MyTestComponent < Alephant::Renderer::Views::Html
60
70
 
61
71
  def some_method
62
72
  @body.some_method
@@ -127,7 +137,7 @@ end
127
137
  The server is a simple rack server, so you just need to run:
128
138
 
129
139
  ```bash
130
- $: rackup
140
+ rackup
131
141
  ```
132
142
 
133
143
  in the `src` directory where the `config.ru` file is.
@@ -187,4 +197,6 @@ PREVIEW_TEMPLATE_URL="http://yourapp.com/template"
187
197
  2. Create your feature branch (`git checkout -b my-new-feature`)
188
198
  3. Commit your changes (`git commit -am 'Add some feature'`)
189
199
  4. Push to the branch (`git push origin my-new-feature`)
190
- 5. Create new Pull Request
200
+ 5. Create new [Pull Request](https://github.com/BBC-News/alephant-publisher-request/pulls).
201
+
202
+ Feel free to create an [issue](https://github.com/BBC-News/alephant-publisher-request/issues/new) if you find a bug.
@@ -8,13 +8,14 @@ require 'alephant/publisher/request/error'
8
8
  module Alephant
9
9
  module Publisher
10
10
  module Request
11
- include Logger
12
11
 
13
12
  def self.create(processor, data_mapper_factory, opts = {})
14
13
  Request.new(processor, data_mapper_factory, opts)
15
14
  end
16
15
 
17
16
  class Request
17
+ include Logger
18
+
18
19
  attr_reader :processor, :data_mapper_factory, :opts
19
20
 
20
21
  DEFAULT_CONTENT_TYPE = { "Content-Type" => "text/html" }
@@ -65,6 +66,7 @@ module Alephant
65
66
  end
66
67
 
67
68
  def error_response(e = '', code = 500)
69
+ logger.metric(:name => "PublisherRequestErrorResponseStatus#{code}", :unit => "Count", :value => 1)
68
70
  message = opts.fetch(:debug, false) ? e.message : ''
69
71
  Rack::Response.new(message, code, DEFAULT_CONTENT_TYPE).finish
70
72
  end
@@ -1,9 +1,12 @@
1
+ require 'alephant/logger'
1
2
  require 'json'
2
3
 
3
4
  module Alephant
4
5
  module Publisher
5
6
  module Request
6
7
  class DataMapper
8
+ include Logger
9
+
7
10
  attr_reader :connection, :context
8
11
 
9
12
  def initialize(connection, context = {})
@@ -18,14 +21,19 @@ module Alephant
18
21
  protected
19
22
 
20
23
  def get(uri)
24
+ before = Time.new
21
25
  response = connection.get(uri)
22
26
  raise InvalidApiResponse, "Status: #{response.status}" unless response.status == 200
27
+ logger.metric(:name => "PublisherRequestDataMapperRequestHTTPTime", :unit => 'Seconds', :value => Time.new - before)
23
28
  JSON::parse(response.body, :symbolize_names => true)
24
29
  rescue Faraday::ConnectionFailed
30
+ logger.metric(:name => "PublisherRequestDataMapperConnectionFailed", :unit => "Count", :value => 1)
25
31
  raise ConnectionFailed
26
32
  rescue JSON::ParserError
33
+ logger.metric(:name => "PublisherRequestDataMapperInvalidApiResponse", :unit => "Count", :value => 1)
27
34
  raise InvalidApiResponse, "JSON parsing error: #{response.body}"
28
35
  rescue StandardError => e
36
+ logger.metric(:name => "PublisherRequestDataMapperApiError", :unit => "Count", :value => 1)
29
37
  raise ApiError, e.message
30
38
  end
31
39
 
@@ -1,7 +1,11 @@
1
+ require 'alephant/logger'
2
+
1
3
  module Alephant
2
4
  module Publisher
3
5
  module Request
4
6
  class DataMapperFactory
7
+ include Logger
8
+
5
9
  attr_reader :connection, :base_path
6
10
 
7
11
  def initialize(connection, base_path)
@@ -16,10 +20,13 @@ module Alephant
16
20
  klass = mapper_class_for(component_id)
17
21
  klass.new(connection, context)
18
22
  rescue LoadError
23
+ logger.metric(:name => "PublisherRequestDataMapperFactoryInvalidComponentName", :unit => "Count", :value => 1)
19
24
  raise InvalidComponentName, "Invalid component name: #{component_id}"
20
25
  rescue NameError
26
+ logger.metric(:name => "PublisherRequestDataMapperFactoryInvalidComponentClassName", :unit => "Count", :value => 1)
21
27
  raise InvalidComponentClassName, "Invalid class name #{klass}"
22
28
  rescue
29
+ logger.metric(:name => "PublisherRequestDataMapperFactoryInvalidComponent", :unit => "Count", :value => 1)
23
30
  raise InvalidComponent, "Name: #{component_id}, Class: #{klass}"
24
31
  end
25
32
 
@@ -1,4 +1,5 @@
1
1
  require 'alephant/publisher/request/processor/base'
2
+ require 'alephant/renderer'
2
3
 
3
4
  module Alephant
4
5
  module Publisher
@@ -1,7 +1,7 @@
1
1
  module Alephant
2
2
  module Publisher
3
3
  module Request
4
- VERSION = "0.0.3"
4
+ VERSION = "0.1.1"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,239 +1,239 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alephant-publisher-request
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Integralist
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-13 00:00:00.000000000 Z
11
+ date: 2014-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
- requirement: !ruby/object:Gem::Requirement
15
+ version_requirements: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.5'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
20
+ requirement: !ruby/object:Gem::Requirement
23
21
  requirements:
24
22
  - - ~>
25
23
  - !ruby/object:Gem::Version
26
24
  version: '1.5'
25
+ prerelease: false
26
+ type: :development
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
29
34
  requirement: !ruby/object:Gem::Requirement
30
35
  requirements:
31
36
  - - '>='
32
37
  - !ruby/object:Gem::Version
33
38
  version: '0'
34
- type: :development
35
39
  prerelease: false
40
+ type: :development
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec-nc
36
43
  version_requirements: !ruby/object:Gem::Requirement
37
44
  requirements:
38
45
  - - '>='
39
46
  - !ruby/object:Gem::Version
40
47
  version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec-nc
43
48
  requirement: !ruby/object:Gem::Requirement
44
49
  requirements:
45
50
  - - '>='
46
51
  - !ruby/object:Gem::Version
47
52
  version: '0'
48
- type: :development
49
53
  prerelease: false
54
+ type: :development
55
+ - !ruby/object:Gem::Dependency
56
+ name: guard
50
57
  version_requirements: !ruby/object:Gem::Requirement
51
58
  requirements:
52
59
  - - '>='
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: guard
57
62
  requirement: !ruby/object:Gem::Requirement
58
63
  requirements:
59
64
  - - '>='
60
65
  - !ruby/object:Gem::Version
61
66
  version: '0'
62
- type: :development
63
67
  prerelease: false
68
+ type: :development
69
+ - !ruby/object:Gem::Dependency
70
+ name: guard-rake
64
71
  version_requirements: !ruby/object:Gem::Requirement
65
72
  requirements:
66
73
  - - '>='
67
74
  - !ruby/object:Gem::Version
68
75
  version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: guard-rake
71
76
  requirement: !ruby/object:Gem::Requirement
72
77
  requirements:
73
78
  - - '>='
74
79
  - !ruby/object:Gem::Version
75
80
  version: '0'
76
- type: :development
77
81
  prerelease: false
82
+ type: :development
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
78
85
  version_requirements: !ruby/object:Gem::Requirement
79
86
  requirements:
80
87
  - - '>='
81
88
  - !ruby/object:Gem::Version
82
89
  version: '0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
90
  requirement: !ruby/object:Gem::Requirement
86
91
  requirements:
87
92
  - - '>='
88
93
  - !ruby/object:Gem::Version
89
94
  version: '0'
90
- type: :development
91
95
  prerelease: false
96
+ type: :development
97
+ - !ruby/object:Gem::Dependency
98
+ name: rack-test
92
99
  version_requirements: !ruby/object:Gem::Requirement
93
100
  requirements:
94
101
  - - '>='
95
102
  - !ruby/object:Gem::Version
96
103
  version: '0'
97
- - !ruby/object:Gem::Dependency
98
- name: rack-test
99
104
  requirement: !ruby/object:Gem::Requirement
100
105
  requirements:
101
106
  - - '>='
102
107
  - !ruby/object:Gem::Version
103
108
  version: '0'
104
- type: :development
105
109
  prerelease: false
110
+ type: :development
111
+ - !ruby/object:Gem::Dependency
112
+ name: spurious-ruby-awssdk-helper
106
113
  version_requirements: !ruby/object:Gem::Requirement
107
114
  requirements:
108
115
  - - '>='
109
116
  - !ruby/object:Gem::Version
110
117
  version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: spurious-ruby-awssdk-helper
113
118
  requirement: !ruby/object:Gem::Requirement
114
119
  requirements:
115
120
  - - '>='
116
121
  - !ruby/object:Gem::Version
117
122
  version: '0'
118
- type: :development
119
123
  prerelease: false
124
+ type: :development
125
+ - !ruby/object:Gem::Dependency
126
+ name: rake-rspec
120
127
  version_requirements: !ruby/object:Gem::Requirement
121
128
  requirements:
122
129
  - - '>='
123
130
  - !ruby/object:Gem::Version
124
131
  version: '0'
125
- - !ruby/object:Gem::Dependency
126
- name: rake-rspec
127
132
  requirement: !ruby/object:Gem::Requirement
128
133
  requirements:
129
134
  - - '>='
130
135
  - !ruby/object:Gem::Version
131
136
  version: '0'
132
- type: :development
133
137
  prerelease: false
138
+ type: :development
139
+ - !ruby/object:Gem::Dependency
140
+ name: rack
134
141
  version_requirements: !ruby/object:Gem::Requirement
135
142
  requirements:
136
143
  - - '>='
137
144
  - !ruby/object:Gem::Version
138
145
  version: '0'
139
- - !ruby/object:Gem::Dependency
140
- name: rack
141
146
  requirement: !ruby/object:Gem::Requirement
142
147
  requirements:
143
148
  - - '>='
144
149
  - !ruby/object:Gem::Version
145
150
  version: '0'
146
- type: :runtime
147
151
  prerelease: false
152
+ type: :runtime
153
+ - !ruby/object:Gem::Dependency
154
+ name: rake
148
155
  version_requirements: !ruby/object:Gem::Requirement
149
156
  requirements:
150
157
  - - '>='
151
158
  - !ruby/object:Gem::Version
152
159
  version: '0'
153
- - !ruby/object:Gem::Dependency
154
- name: rake
155
160
  requirement: !ruby/object:Gem::Requirement
156
161
  requirements:
157
162
  - - '>='
158
163
  - !ruby/object:Gem::Version
159
164
  version: '0'
160
- type: :runtime
161
165
  prerelease: false
166
+ type: :runtime
167
+ - !ruby/object:Gem::Dependency
168
+ name: faraday
162
169
  version_requirements: !ruby/object:Gem::Requirement
163
170
  requirements:
164
171
  - - '>='
165
172
  - !ruby/object:Gem::Version
166
173
  version: '0'
167
- - !ruby/object:Gem::Dependency
168
- name: faraday
169
174
  requirement: !ruby/object:Gem::Requirement
170
175
  requirements:
171
176
  - - '>='
172
177
  - !ruby/object:Gem::Version
173
178
  version: '0'
174
- type: :runtime
175
179
  prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - '>='
179
- - !ruby/object:Gem::Version
180
- version: '0'
180
+ type: :runtime
181
181
  - !ruby/object:Gem::Dependency
182
182
  name: aws-sdk
183
- requirement: !ruby/object:Gem::Requirement
183
+ version_requirements: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - ~>
186
186
  - !ruby/object:Gem::Version
187
187
  version: '1.0'
188
- type: :runtime
189
- prerelease: false
190
- version_requirements: !ruby/object:Gem::Requirement
188
+ requirement: !ruby/object:Gem::Requirement
191
189
  requirements:
192
190
  - - ~>
193
191
  - !ruby/object:Gem::Version
194
192
  version: '1.0'
193
+ prerelease: false
194
+ type: :runtime
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: mustache
197
- requirement: !ruby/object:Gem::Requirement
197
+ version_requirements: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - '>='
200
200
  - !ruby/object:Gem::Version
201
201
  version: 0.99.5
202
- type: :runtime
203
- prerelease: false
204
- version_requirements: !ruby/object:Gem::Requirement
202
+ requirement: !ruby/object:Gem::Requirement
205
203
  requirements:
206
204
  - - '>='
207
205
  - !ruby/object:Gem::Version
208
206
  version: 0.99.5
207
+ prerelease: false
208
+ type: :runtime
209
209
  - !ruby/object:Gem::Dependency
210
210
  name: alephant-logger
211
- requirement: !ruby/object:Gem::Requirement
211
+ version_requirements: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - '>='
214
214
  - !ruby/object:Gem::Version
215
215
  version: '0'
216
- type: :runtime
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
216
+ requirement: !ruby/object:Gem::Requirement
219
217
  requirements:
220
218
  - - '>='
221
219
  - !ruby/object:Gem::Version
222
220
  version: '0'
221
+ prerelease: false
222
+ type: :runtime
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: alephant-renderer
225
- requirement: !ruby/object:Gem::Requirement
225
+ version_requirements: !ruby/object:Gem::Requirement
226
226
  requirements:
227
227
  - - '>='
228
228
  - !ruby/object:Gem::Version
229
229
  version: '0'
230
- type: :runtime
231
- prerelease: false
232
- version_requirements: !ruby/object:Gem::Requirement
230
+ requirement: !ruby/object:Gem::Requirement
233
231
  requirements:
234
232
  - - '>='
235
233
  - !ruby/object:Gem::Version
236
234
  version: '0'
235
+ prerelease: false
236
+ type: :runtime
237
237
  description: '...'
238
238
  email:
239
239
  - mark.mcdx@gmail.com
@@ -242,6 +242,7 @@ extensions: []
242
242
  extra_rdoc_files: []
243
243
  files:
244
244
  - .gitignore
245
+ - .ruby-version
245
246
  - .travis.yml
246
247
  - Gemfile
247
248
  - Guardfile
@@ -272,7 +273,7 @@ homepage: https://github.com/BBC-News/alephant-publisher-request
272
273
  licenses:
273
274
  - MIT
274
275
  metadata: {}
275
- post_install_message:
276
+ post_install_message:
276
277
  rdoc_options: []
277
278
  require_paths:
278
279
  - lib
@@ -287,9 +288,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
287
288
  - !ruby/object:Gem::Version
288
289
  version: '0'
289
290
  requirements: []
290
- rubyforge_project:
291
- rubygems_version: 2.2.2
292
- signing_key:
291
+ rubyforge_project:
292
+ rubygems_version: 2.1.9
293
+ signing_key:
293
294
  specification_version: 4
294
295
  summary: '...'
295
296
  test_files: