asyncapi-server 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +9 -0
  3. data/README.md +83 -0
  4. data/Rakefile +33 -0
  5. data/app/controllers/asyncapi/server/v1/jobs_controller.rb +34 -0
  6. data/app/models/asyncapi/server/job.rb +14 -0
  7. data/app/serializers/asyncapi/server/job_serializer.rb +10 -0
  8. data/app/workers/asyncapi/server/job_worker.rb +41 -0
  9. data/config/database.yml +25 -0
  10. data/config/routes.rb +7 -0
  11. data/db/migrate/20141112034324_create_asyncapi_server_jobs.rb +10 -0
  12. data/db/migrate/20141212064931_add_secret_to_asyncapi_server_job.rb +5 -0
  13. data/db/migrate/20150130062520_add_expired_at_to_asyncapi_server_job.rb +11 -0
  14. data/db/migrate/20150201231018_drop_expired_at_from_asyncapi_server_jobs.rb +9 -0
  15. data/lib/asyncapi-server.rb +1 -0
  16. data/lib/asyncapi/server.rb +16 -0
  17. data/lib/asyncapi/server/engine.rb +23 -0
  18. data/lib/asyncapi/server/rails_ext/controller.rb +32 -0
  19. data/lib/asyncapi/server/rspec.rb +19 -0
  20. data/lib/asyncapi/server/version.rb +5 -0
  21. data/lib/asyncapi_server/engine.rb +1 -0
  22. data/lib/generators/asyncapi/server/config_generator.rb +17 -0
  23. data/lib/tasks/asyncapi_server_tasks.rake +4 -0
  24. data/spec/controllers/asyncapi/server/v1/jobs_controller_spec.rb +51 -0
  25. data/spec/dummy/README.rdoc +28 -0
  26. data/spec/dummy/Rakefile +6 -0
  27. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  28. data/spec/dummy/app/assets/stylesheets/application.css +15 -0
  29. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  30. data/spec/dummy/app/controllers/tests_controller.rb +5 -0
  31. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  32. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  33. data/spec/dummy/bin/bundle +3 -0
  34. data/spec/dummy/bin/rails +4 -0
  35. data/spec/dummy/bin/rake +4 -0
  36. data/spec/dummy/config.ru +4 -0
  37. data/spec/dummy/config/application.rb +29 -0
  38. data/spec/dummy/config/boot.rb +5 -0
  39. data/spec/dummy/config/database.yml +25 -0
  40. data/spec/dummy/config/environment.rb +5 -0
  41. data/spec/dummy/config/environments/development.rb +37 -0
  42. data/spec/dummy/config/environments/production.rb +78 -0
  43. data/spec/dummy/config/environments/test.rb +39 -0
  44. data/spec/dummy/config/initializers/assets.rb +8 -0
  45. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  46. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  47. data/spec/dummy/config/initializers/default_url_options.rb +2 -0
  48. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  49. data/spec/dummy/config/initializers/inflections.rb +16 -0
  50. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  51. data/spec/dummy/config/initializers/session_store.rb +3 -0
  52. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  53. data/spec/dummy/config/locales/en.yml +23 -0
  54. data/spec/dummy/config/routes.rb +59 -0
  55. data/spec/dummy/config/secrets.yml +22 -0
  56. data/spec/dummy/db/migrate/20141212065005_create_asyncapi_server_jobs.asyncapi_server.rb +11 -0
  57. data/spec/dummy/db/migrate/20141212065006_add_secret_to_asyncapi_server_job.asyncapi_server.rb +6 -0
  58. data/spec/dummy/db/migrate/20150130062901_add_expired_at_to_asyncapi_server_job.asyncapi_server.rb +12 -0
  59. data/spec/dummy/db/migrate/20150201231329_drop_expired_at_from_asyncapi_server_jobs.asyncapi_server.rb +10 -0
  60. data/spec/dummy/db/schema.rb +24 -0
  61. data/spec/dummy/public/404.html +67 -0
  62. data/spec/dummy/public/422.html +67 -0
  63. data/spec/dummy/public/500.html +66 -0
  64. data/spec/dummy/public/favicon.ico +0 -0
  65. data/spec/factories/job.rb +7 -0
  66. data/spec/fixtures/runner.rb +6 -0
  67. data/spec/models/job_spec.rb +44 -0
  68. data/spec/requests/enqueueing_jobs_spec.rb +33 -0
  69. data/spec/serializers/job_serializer_spec.rb +18 -0
  70. data/spec/server_spec.rb +22 -0
  71. data/spec/spec_helper.rb +40 -0
  72. data/spec/support/factory_girl.rb +3 -0
  73. data/spec/support/indifferent_hash.rb +8 -0
  74. data/spec/workers/job_worker_spec.rb +80 -0
  75. metadata +354 -0
@@ -0,0 +1,6 @@
1
+ class Runner
2
+
3
+ def self.call(params)
4
+ end
5
+
6
+ end
@@ -0,0 +1,44 @@
1
+ require "spec_helper"
2
+
3
+ module Asyncapi
4
+ module Server
5
+ describe Job do
6
+ it "has a table name of `asyncapi_server_jobs`" do
7
+ expect(described_class.table_name).to eq "asyncapi_server_jobs"
8
+ end
9
+
10
+ describe "initialization" do
11
+ subject do
12
+ described_class.new(
13
+ status: :queued,
14
+ callback_url: 'http://callback_url.com',
15
+ class_name: 'CreateStorageFacility',
16
+ params: {param: 'values'}.to_json,
17
+ )
18
+ end
19
+
20
+ its(:status) { is_expected.to eq "queued" }
21
+ its(:callback_url) { is_expected.to eq "http://callback_url.com" }
22
+ its(:class_name) { is_expected.to eq "CreateStorageFacility" }
23
+ its(:params) { is_expected.to eq({param: "values"}.to_json) }
24
+
25
+ context "status" do
26
+ it "can also be assigned other values" do
27
+ subject.status = :success
28
+ subject.status = :error
29
+ expect(subject.save).to eq(true)
30
+ end
31
+ end
32
+ end
33
+
34
+ describe "#url" do
35
+ let(:job) { build_stubbed(:asyncapi_server_job) }
36
+ it "is a url to the job" do
37
+ expected_url = "http://test.com/asyncapi/server/v1/jobs/#{job.id}"
38
+ expect(job.url).to eq expected_url
39
+ end
40
+ end
41
+
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe "Enqueueing jobs", type: :request do
4
+
5
+ let(:job) { build_stubbed(:asyncapi_server_job, secret: "secret") }
6
+
7
+ before do
8
+ allow(Asyncapi::Server::Job).to receive(:create).with(
9
+ class_name: "Runner",
10
+ callback_url: "callback_url",
11
+ params: {client: "params"}.to_json,
12
+ secret: "secret",
13
+ ).and_return(job)
14
+
15
+ allow(job).to receive(:url).and_return("server_job_url")
16
+ end
17
+
18
+ it "allows asynchronous handing of http requests and cleans up old jobs" do
19
+ expect(Asyncapi::Server::JobWorker).to receive(:perform_async).with(job.id)
20
+
21
+ post("tests", job: {
22
+ callback_url: "callback_url",
23
+ params: {client: "params"}.to_json,
24
+ secret: "secret",
25
+ })
26
+
27
+ expect(response).to be_successful
28
+ parsed_response = indifferent_hash(response.body)[:job]
29
+ expect(parsed_response[:url]).to eq "server_job_url"
30
+ expect(parsed_response[:secret]).to eq "secret"
31
+ end
32
+
33
+ end
@@ -0,0 +1,18 @@
1
+ require "spec_helper"
2
+
3
+ module Asyncapi::Server
4
+ describe JobSerializer do
5
+
6
+ let(:job) { build_stubbed(:asyncapi_server_job) }
7
+ let(:serializer) { described_class.new(job) }
8
+ subject(:serialized_hash) { serializer.attributes }
9
+
10
+ its([:id]) { is_expected.to eq job.id }
11
+
12
+ it "has a url" do
13
+ allow(job).to receive(:url).and_return("url")
14
+ expect(serialized_hash[:url]).to eq "url"
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ module Asyncapi
4
+ describe Server do
5
+
6
+ describe ".expiry_threshold=" do
7
+ let!(:original_expiry_threshold) { described_class.expiry_threshold }
8
+ after { described_class.expiry_threshold = original_expiry_threshold }
9
+ it "sets the threshold for expiring old jobs" do
10
+ described_class.expiry_threshold = 2.days
11
+ expect(described_class.expiry_threshold).to eq 2.days
12
+ end
13
+ end
14
+
15
+ describe ".expiry_threshold" do
16
+ it "defaults to 10 days" do
17
+ expect(described_class.expiry_threshold).to eq 10.days
18
+ end
19
+ end
20
+
21
+ end
22
+ end
@@ -0,0 +1,40 @@
1
+ ENV['RAILS_ENV'] ||= 'test'
2
+ SPEC_DIR = File.dirname(__FILE__)
3
+ DUMMY_DIR = File.join(SPEC_DIR, "dummy")
4
+
5
+ require File.join(DUMMY_DIR, "config", "environment")
6
+ require "rspec/rails"
7
+ require "rspec/its"
8
+ require "factory_girl_rails"
9
+ require "pry"
10
+ require "database_cleaner"
11
+ require "timecop"
12
+
13
+ Rails.backtrace_cleaner.remove_silencers!
14
+
15
+ # Load other files in spec directory
16
+
17
+ Dir[
18
+ File.join(SPEC_DIR, "support", "*.rb"),
19
+ File.join(SPEC_DIR, "fixtures", "*.rb"),
20
+ ].each { |f| require f }
21
+
22
+ RSpec.configure do |config|
23
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
24
+ config.use_transactional_fixtures = false
25
+ config.infer_base_class_for_anonymous_controllers = false
26
+ config.order = "random"
27
+
28
+ config.before(:suite) do
29
+ DatabaseCleaner.clean_with :truncation
30
+ end
31
+
32
+ config.before do
33
+ DatabaseCleaner.strategy = :transaction
34
+ DatabaseCleaner.start
35
+ end
36
+
37
+ config.after do
38
+ DatabaseCleaner.clean
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ RSpec.configure do |config|
2
+ config.include FactoryGirl::Syntax::Methods
3
+ end
@@ -0,0 +1,8 @@
1
+ def indifferent_hash(json)
2
+ parsed_json = JSON.parse(json)
3
+ if parsed_json.respond_to?(:with_indifferent_access)
4
+ parsed_json.with_indifferent_access
5
+ elsif parsed_json.respond_to?(:map)
6
+ parsed_json.map(&:with_indifferent_access)
7
+ end
8
+ end
@@ -0,0 +1,80 @@
1
+ require "spec_helper"
2
+
3
+ module Asyncapi
4
+ module Server
5
+ describe JobWorker do
6
+
7
+ it "does not retry" do
8
+ expect(described_class.sidekiq_options_hash['retry']).to be false
9
+ end
10
+
11
+ describe "#perform" do
12
+ it "sends :call to the job's runner class and reports with successful status" do
13
+ job = create(:asyncapi_server_job, {
14
+ class_name: "Runner",
15
+ params: {some: "params"}.to_json,
16
+ callback_url: "client_job_url",
17
+ secret: "sekret",
18
+ })
19
+
20
+ expect(Runner).to receive(:call).
21
+ with(job.params) { "message" }
22
+ expect(Typhoeus).to receive(:put).with(
23
+ "client_job_url",
24
+ body: {
25
+ job: {
26
+ status: :success,
27
+ message: "message",
28
+ secret: "sekret",
29
+ }
30
+ }.to_json,
31
+ headers: {
32
+ "Content-Type" => "application/json",
33
+ Accept: "application/json"
34
+ }
35
+ )
36
+
37
+ described_class.new.perform(job.id)
38
+ job.reload
39
+ expect(job.status).to eq "success"
40
+ end
41
+
42
+ context "an error occurred" do
43
+ it "reports the error to the callback url" do
44
+ job = create(:asyncapi_server_job, {
45
+ class_name: "Runner",
46
+ callback_url: "client_job_url",
47
+ secret: "sekret",
48
+ })
49
+
50
+ error = ArgumentError.new("my error")
51
+ error.set_backtrace(["back", "trace"])
52
+
53
+ allow(Runner).to receive(:call).
54
+ and_raise(error)
55
+
56
+ expect(Typhoeus).to receive(:put).with(
57
+ "client_job_url",
58
+ body: {
59
+ job: {
60
+ status: :error,
61
+ message: ["my error", "back", "trace"].join("\n"),
62
+ secret: "sekret",
63
+ }
64
+ }.to_json,
65
+ headers: {
66
+ "Content-Type" => "application/json",
67
+ Accept: "application/json"
68
+ }
69
+ )
70
+
71
+ described_class.new.perform(job.id)
72
+ job.reload
73
+ expect(job.status).to eq "error"
74
+ end
75
+ end
76
+ end
77
+
78
+ end
79
+ end
80
+ end
metadata ADDED
@@ -0,0 +1,354 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: asyncapi-server
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - G5
8
+ - Marc Ignacio
9
+ - Ramon Tayag
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2015-04-17 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: kaminari
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ">="
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: api-pagination
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: rails
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
57
+ - !ruby/object:Gem::Dependency
58
+ name: active_model_serializers
59
+ requirement: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
64
+ type: :runtime
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ - !ruby/object:Gem::Dependency
72
+ name: typhoeus
73
+ requirement: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ type: :runtime
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
81
+ requirements:
82
+ - - ">="
83
+ - !ruby/object:Gem::Version
84
+ version: '0'
85
+ - !ruby/object:Gem::Dependency
86
+ name: sidekiq
87
+ requirement: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: '0'
92
+ type: :runtime
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '0'
99
+ - !ruby/object:Gem::Dependency
100
+ name: sqlite3
101
+ requirement: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: 1.3.10
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
109
+ requirements:
110
+ - - "~>"
111
+ - !ruby/object:Gem::Version
112
+ version: 1.3.10
113
+ - !ruby/object:Gem::Dependency
114
+ name: rspec-rails
115
+ requirement: !ruby/object:Gem::Requirement
116
+ requirements:
117
+ - - "~>"
118
+ - !ruby/object:Gem::Version
119
+ version: 3.1.0
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ requirements:
124
+ - - "~>"
125
+ - !ruby/object:Gem::Version
126
+ version: 3.1.0
127
+ - !ruby/object:Gem::Dependency
128
+ name: rspec-its
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: 1.1.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: 1.1.0
141
+ - !ruby/object:Gem::Dependency
142
+ name: pry
143
+ requirement: !ruby/object:Gem::Requirement
144
+ requirements:
145
+ - - "~>"
146
+ - !ruby/object:Gem::Version
147
+ version: 0.10.1
148
+ type: :development
149
+ prerelease: false
150
+ version_requirements: !ruby/object:Gem::Requirement
151
+ requirements:
152
+ - - "~>"
153
+ - !ruby/object:Gem::Version
154
+ version: 0.10.1
155
+ - !ruby/object:Gem::Dependency
156
+ name: factory_girl_rails
157
+ requirement: !ruby/object:Gem::Requirement
158
+ requirements:
159
+ - - "~>"
160
+ - !ruby/object:Gem::Version
161
+ version: 4.4.0
162
+ type: :development
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - "~>"
167
+ - !ruby/object:Gem::Version
168
+ version: 4.4.0
169
+ - !ruby/object:Gem::Dependency
170
+ name: database_cleaner
171
+ requirement: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - "~>"
174
+ - !ruby/object:Gem::Version
175
+ version: 1.3.0
176
+ type: :development
177
+ prerelease: false
178
+ version_requirements: !ruby/object:Gem::Requirement
179
+ requirements:
180
+ - - "~>"
181
+ - !ruby/object:Gem::Version
182
+ version: 1.3.0
183
+ - !ruby/object:Gem::Dependency
184
+ name: timecop
185
+ requirement: !ruby/object:Gem::Requirement
186
+ requirements:
187
+ - - ">="
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ type: :development
191
+ prerelease: false
192
+ version_requirements: !ruby/object:Gem::Requirement
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ version: '0'
197
+ description: Asynchronous API communication - Server
198
+ email:
199
+ - lateam@getg5.com
200
+ - marcrendlignacio@gmail.com
201
+ - ramon.tayag@gmail.com
202
+ executables: []
203
+ extensions: []
204
+ extra_rdoc_files: []
205
+ files:
206
+ - MIT-LICENSE
207
+ - README.md
208
+ - Rakefile
209
+ - app/controllers/asyncapi/server/v1/jobs_controller.rb
210
+ - app/models/asyncapi/server/job.rb
211
+ - app/serializers/asyncapi/server/job_serializer.rb
212
+ - app/workers/asyncapi/server/job_worker.rb
213
+ - config/database.yml
214
+ - config/routes.rb
215
+ - db/migrate/20141112034324_create_asyncapi_server_jobs.rb
216
+ - db/migrate/20141212064931_add_secret_to_asyncapi_server_job.rb
217
+ - db/migrate/20150130062520_add_expired_at_to_asyncapi_server_job.rb
218
+ - db/migrate/20150201231018_drop_expired_at_from_asyncapi_server_jobs.rb
219
+ - lib/asyncapi-server.rb
220
+ - lib/asyncapi/server.rb
221
+ - lib/asyncapi/server/engine.rb
222
+ - lib/asyncapi/server/rails_ext/controller.rb
223
+ - lib/asyncapi/server/rspec.rb
224
+ - lib/asyncapi/server/version.rb
225
+ - lib/asyncapi_server/engine.rb
226
+ - lib/generators/asyncapi/server/config_generator.rb
227
+ - lib/tasks/asyncapi_server_tasks.rake
228
+ - spec/controllers/asyncapi/server/v1/jobs_controller_spec.rb
229
+ - spec/dummy/README.rdoc
230
+ - spec/dummy/Rakefile
231
+ - spec/dummy/app/assets/javascripts/application.js
232
+ - spec/dummy/app/assets/stylesheets/application.css
233
+ - spec/dummy/app/controllers/application_controller.rb
234
+ - spec/dummy/app/controllers/tests_controller.rb
235
+ - spec/dummy/app/helpers/application_helper.rb
236
+ - spec/dummy/app/views/layouts/application.html.erb
237
+ - spec/dummy/bin/bundle
238
+ - spec/dummy/bin/rails
239
+ - spec/dummy/bin/rake
240
+ - spec/dummy/config.ru
241
+ - spec/dummy/config/application.rb
242
+ - spec/dummy/config/boot.rb
243
+ - spec/dummy/config/database.yml
244
+ - spec/dummy/config/environment.rb
245
+ - spec/dummy/config/environments/development.rb
246
+ - spec/dummy/config/environments/production.rb
247
+ - spec/dummy/config/environments/test.rb
248
+ - spec/dummy/config/initializers/assets.rb
249
+ - spec/dummy/config/initializers/backtrace_silencers.rb
250
+ - spec/dummy/config/initializers/cookies_serializer.rb
251
+ - spec/dummy/config/initializers/default_url_options.rb
252
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
253
+ - spec/dummy/config/initializers/inflections.rb
254
+ - spec/dummy/config/initializers/mime_types.rb
255
+ - spec/dummy/config/initializers/session_store.rb
256
+ - spec/dummy/config/initializers/wrap_parameters.rb
257
+ - spec/dummy/config/locales/en.yml
258
+ - spec/dummy/config/routes.rb
259
+ - spec/dummy/config/secrets.yml
260
+ - spec/dummy/db/migrate/20141212065005_create_asyncapi_server_jobs.asyncapi_server.rb
261
+ - spec/dummy/db/migrate/20141212065006_add_secret_to_asyncapi_server_job.asyncapi_server.rb
262
+ - spec/dummy/db/migrate/20150130062901_add_expired_at_to_asyncapi_server_job.asyncapi_server.rb
263
+ - spec/dummy/db/migrate/20150201231329_drop_expired_at_from_asyncapi_server_jobs.asyncapi_server.rb
264
+ - spec/dummy/db/schema.rb
265
+ - spec/dummy/public/404.html
266
+ - spec/dummy/public/422.html
267
+ - spec/dummy/public/500.html
268
+ - spec/dummy/public/favicon.ico
269
+ - spec/factories/job.rb
270
+ - spec/fixtures/runner.rb
271
+ - spec/models/job_spec.rb
272
+ - spec/requests/enqueueing_jobs_spec.rb
273
+ - spec/serializers/job_serializer_spec.rb
274
+ - spec/server_spec.rb
275
+ - spec/spec_helper.rb
276
+ - spec/support/factory_girl.rb
277
+ - spec/support/indifferent_hash.rb
278
+ - spec/workers/job_worker_spec.rb
279
+ homepage: https://github.com/G5/asyncapi-server
280
+ licenses:
281
+ - MIT
282
+ metadata: {}
283
+ post_install_message:
284
+ rdoc_options: []
285
+ require_paths:
286
+ - lib
287
+ required_ruby_version: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ required_rubygems_version: !ruby/object:Gem::Requirement
293
+ requirements:
294
+ - - ">="
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ requirements: []
298
+ rubyforge_project:
299
+ rubygems_version: 2.4.5
300
+ signing_key:
301
+ specification_version: 4
302
+ summary: Asynchronous API communication - Server
303
+ test_files:
304
+ - spec/controllers/asyncapi/server/v1/jobs_controller_spec.rb
305
+ - spec/dummy/app/assets/javascripts/application.js
306
+ - spec/dummy/app/assets/stylesheets/application.css
307
+ - spec/dummy/app/controllers/application_controller.rb
308
+ - spec/dummy/app/controllers/tests_controller.rb
309
+ - spec/dummy/app/helpers/application_helper.rb
310
+ - spec/dummy/app/views/layouts/application.html.erb
311
+ - spec/dummy/bin/bundle
312
+ - spec/dummy/bin/rails
313
+ - spec/dummy/bin/rake
314
+ - spec/dummy/config/application.rb
315
+ - spec/dummy/config/boot.rb
316
+ - spec/dummy/config/database.yml
317
+ - spec/dummy/config/environment.rb
318
+ - spec/dummy/config/environments/development.rb
319
+ - spec/dummy/config/environments/production.rb
320
+ - spec/dummy/config/environments/test.rb
321
+ - spec/dummy/config/initializers/assets.rb
322
+ - spec/dummy/config/initializers/backtrace_silencers.rb
323
+ - spec/dummy/config/initializers/cookies_serializer.rb
324
+ - spec/dummy/config/initializers/default_url_options.rb
325
+ - spec/dummy/config/initializers/filter_parameter_logging.rb
326
+ - spec/dummy/config/initializers/inflections.rb
327
+ - spec/dummy/config/initializers/mime_types.rb
328
+ - spec/dummy/config/initializers/session_store.rb
329
+ - spec/dummy/config/initializers/wrap_parameters.rb
330
+ - spec/dummy/config/locales/en.yml
331
+ - spec/dummy/config/routes.rb
332
+ - spec/dummy/config/secrets.yml
333
+ - spec/dummy/config.ru
334
+ - spec/dummy/db/migrate/20141212065005_create_asyncapi_server_jobs.asyncapi_server.rb
335
+ - spec/dummy/db/migrate/20141212065006_add_secret_to_asyncapi_server_job.asyncapi_server.rb
336
+ - spec/dummy/db/migrate/20150130062901_add_expired_at_to_asyncapi_server_job.asyncapi_server.rb
337
+ - spec/dummy/db/migrate/20150201231329_drop_expired_at_from_asyncapi_server_jobs.asyncapi_server.rb
338
+ - spec/dummy/db/schema.rb
339
+ - spec/dummy/public/404.html
340
+ - spec/dummy/public/422.html
341
+ - spec/dummy/public/500.html
342
+ - spec/dummy/public/favicon.ico
343
+ - spec/dummy/Rakefile
344
+ - spec/dummy/README.rdoc
345
+ - spec/factories/job.rb
346
+ - spec/fixtures/runner.rb
347
+ - spec/models/job_spec.rb
348
+ - spec/requests/enqueueing_jobs_spec.rb
349
+ - spec/serializers/job_serializer_spec.rb
350
+ - spec/server_spec.rb
351
+ - spec/spec_helper.rb
352
+ - spec/support/factory_girl.rb
353
+ - spec/support/indifferent_hash.rb
354
+ - spec/workers/job_worker_spec.rb