putsreq 0.0.3 → 0.0.4

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.
Files changed (141) hide show
  1. checksums.yaml +5 -5
  2. data/.babelrc +26 -0
  3. data/.codeclimate.yml +29 -5
  4. data/.env.docker +6 -0
  5. data/.eslintignore +4 -0
  6. data/.eslintrc +22 -0
  7. data/.gitignore +8 -0
  8. data/.postcssrc.yml +3 -0
  9. data/.prettierrc +4 -0
  10. data/.reek +12 -0
  11. data/.rubocop.yml +47 -25
  12. data/.ruby-version +1 -1
  13. data/.simplecov +6 -0
  14. data/.travis.yml +38 -4
  15. data/Dockerfile +44 -0
  16. data/Gemfile +40 -61
  17. data/Gemfile.lock +294 -186
  18. data/Procfile +1 -1
  19. data/README.md +51 -46
  20. data/Rakefile +1 -1
  21. data/{public → app/assets}/images/logo.png +0 -0
  22. data/app/assets/javascripts/application.js +1 -1
  23. data/app/assets/javascripts/buckets.js.coffee +1 -21
  24. data/app/assets/stylesheets/{application.css → application.scss} +2 -1
  25. data/app/assets/stylesheets/buckets.css.scss +0 -2
  26. data/app/controllers/application_controller.rb +11 -9
  27. data/app/controllers/buckets_controller.rb +24 -18
  28. data/app/controllers/home_controller.rb +5 -5
  29. data/app/controllers/requests_controller.rb +13 -2
  30. data/app/helpers/application_helper.rb +6 -2
  31. data/app/interactors/create_or_retrieve_bucket.rb +17 -0
  32. data/app/interactors/create_request.rb +25 -7
  33. data/app/interactors/eval_response_builder.rb +9 -9
  34. data/app/interactors/filter_headers.rb +3 -3
  35. data/app/interactors/forward_request.rb +4 -4
  36. data/app/interactors/record_request.rb +1 -1
  37. data/app/interactors/track.rb +44 -0
  38. data/app/javascript/actionTypes.js +7 -0
  39. data/app/javascript/actions/index.js +64 -0
  40. data/app/javascript/components/Bucket.jsx +91 -0
  41. data/app/javascript/components/Pagination.jsx +67 -0
  42. data/app/javascript/components/RequestCount.jsx +21 -0
  43. data/app/javascript/components/request/Header.jsx +31 -0
  44. data/app/javascript/components/request/Response.jsx +28 -0
  45. data/app/javascript/components/request/index.jsx +47 -0
  46. data/app/javascript/packs/application.js +25 -0
  47. data/app/javascript/packs/hello_react.jsx +26 -0
  48. data/app/javascript/reducers/index.js +23 -0
  49. data/app/javascript/request_poller.js +19 -0
  50. data/app/javascript/store.js +9 -0
  51. data/app/models/bucket.rb +16 -10
  52. data/app/models/request.rb +2 -3
  53. data/app/models/user.rb +2 -2
  54. data/app/serializers/bucket_serializer.rb +11 -0
  55. data/app/serializers/request_serializer.rb +69 -0
  56. data/app/views/buckets/_buttons.html.erb +3 -3
  57. data/app/views/buckets/_form.html.erb +6 -6
  58. data/app/views/buckets/_readonly_buttons.html.erb +1 -1
  59. data/app/views/buckets/show.html.erb +12 -25
  60. data/app/views/home/index.html.erb +22 -16
  61. data/app/views/layouts/application.html.erb +21 -22
  62. data/app/views/layouts/devise.html.erb +16 -18
  63. data/app/views/shared/_flash.html.erb +3 -1
  64. data/bin/byebug +21 -0
  65. data/bin/cc-tddium-post-worker +21 -0
  66. data/bin/codeclimate-test-reporter +21 -0
  67. data/bin/coderay +21 -0
  68. data/bin/dotenv +21 -0
  69. data/bin/htmldiff +21 -0
  70. data/bin/httparty +21 -0
  71. data/bin/httpclient +21 -0
  72. data/bin/ldiff +21 -0
  73. data/bin/mongo_console +21 -0
  74. data/bin/nokogiri +21 -0
  75. data/bin/pry +21 -0
  76. data/bin/putsreq +18 -71
  77. data/bin/rackup +21 -0
  78. data/bin/rails +1 -1
  79. data/bin/ri +21 -0
  80. data/bin/rollbar-rails-runner +21 -0
  81. data/bin/rspec +10 -5
  82. data/bin/safe_yaml +21 -0
  83. data/bin/sass +21 -0
  84. data/bin/sass-convert +21 -0
  85. data/bin/scss +21 -0
  86. data/bin/sdoc +21 -0
  87. data/bin/sdoc-merge +21 -0
  88. data/bin/setup +38 -0
  89. data/bin/sprockets +21 -0
  90. data/bin/thor +21 -0
  91. data/bin/tilt +21 -0
  92. data/bin/unicorn +21 -0
  93. data/bin/unicorn_rails +21 -0
  94. data/bin/update +29 -0
  95. data/bin/webpack +15 -0
  96. data/bin/webpack-dev-server +15 -0
  97. data/bin/yarn +11 -0
  98. data/config/application.rb +6 -4
  99. data/config/boot.rb +1 -1
  100. data/config/environment.rb +1 -1
  101. data/config/environments/development.rb +7 -3
  102. data/config/environments/production.rb +5 -2
  103. data/config/environments/test.rb +3 -1
  104. data/config/initializers/devise.rb +2 -2
  105. data/config/initializers/rack_attack.rb +24 -0
  106. data/config/initializers/rollbar.rb +58 -0
  107. data/config/initializers/setup_email.rb +7 -7
  108. data/config/mongoid.yml +2 -2
  109. data/config/newrelic.yml +45 -0
  110. data/config/puma.rb +15 -0
  111. data/config/routes.rb +2 -0
  112. data/config/webpack/development.js +5 -0
  113. data/config/webpack/environment.js +3 -0
  114. data/config/webpack/production.js +5 -0
  115. data/config/webpack/test.js +5 -0
  116. data/config/webpacker.yml +70 -0
  117. data/docker-compose.yml +25 -0
  118. data/lib/putsreq/cli_helper.rb +114 -0
  119. data/lib/putsreq/version.rb +1 -1
  120. data/package.json +30 -0
  121. data/putsreq.gemspec +6 -7
  122. data/spec/controllers/buckets_controller_spec.rb +54 -46
  123. data/spec/interactors/create_or_retrieve_bucket_spec.rb +25 -0
  124. data/spec/interactors/create_request_spec.rb +11 -8
  125. data/spec/interactors/create_response_spec.rb +1 -1
  126. data/spec/interactors/eval_response_builder_spec.rb +14 -17
  127. data/spec/interactors/forward_request_spec.rb +4 -4
  128. data/spec/lib/putsreq/cli_helper_spec.rb +114 -0
  129. data/spec/models/bucket_spec.rb +3 -3
  130. data/spec/spec_helper.rb +25 -25
  131. data/yarn.lock +7043 -0
  132. metadata +85 -20
  133. data/.hound.yml +0 -14
  134. data/app/interactors/notify_count.rb +0 -15
  135. data/app/models/.keep +0 -0
  136. data/config/initializers/redis.rb +0 -17
  137. data/config/unicorn.rb +0 -16
  138. data/lib/assets/.keep +0 -0
  139. data/public/images/.keep +0 -0
  140. data/vendor/assets/javascripts/.keep +0 -0
  141. data/vendor/assets/stylesheets/.keep +0 -0
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'tilt' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
12
+ load(bundle_binstub) if File.file?(bundle_binstub)
13
+
14
+ require "pathname"
15
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
16
+ Pathname.new(__FILE__).realpath)
17
+
18
+ require "rubygems"
19
+ require "bundler/setup"
20
+
21
+ load Gem.bin_path("tilt", "tilt")
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'unicorn' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
12
+ load(bundle_binstub) if File.file?(bundle_binstub)
13
+
14
+ require "pathname"
15
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
16
+ Pathname.new(__FILE__).realpath)
17
+
18
+ require "rubygems"
19
+ require "bundler/setup"
20
+
21
+ load Gem.bin_path("unicorn", "unicorn")
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'unicorn_rails' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ bundle_binstub = File.expand_path("../bundle", __FILE__)
12
+ load(bundle_binstub) if File.file?(bundle_binstub)
13
+
14
+ require "pathname"
15
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
16
+ Pathname.new(__FILE__).realpath)
17
+
18
+ require "rubygems"
19
+ require "bundler/setup"
20
+
21
+ load Gem.bin_path("unicorn", "unicorn_rails")
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pathname'
3
+ require 'fileutils'
4
+ include FileUtils
5
+
6
+ # path to your application root.
7
+ APP_ROOT = Pathname.new File.expand_path('../../', __FILE__)
8
+
9
+ def system!(*args)
10
+ system(*args) || abort("\n== Command #{args} failed ==")
11
+ end
12
+
13
+ chdir APP_ROOT do
14
+ # This script is a way to update your development environment automatically.
15
+ # Add necessary update steps to this file.
16
+
17
+ puts '== Installing dependencies =='
18
+ system! 'gem install bundler --conservative'
19
+ system('bundle check') || system!('bundle install')
20
+
21
+ puts "\n== Updating database =="
22
+ system! 'bin/rails db:migrate'
23
+
24
+ puts "\n== Removing old logs and tempfiles =="
25
+ system! 'bin/rails log:clear tmp:clear'
26
+
27
+ puts "\n== Restarting application server =="
28
+ system! 'bin/rails restart'
29
+ end
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
4
+ ENV["NODE_ENV"] ||= "development"
5
+
6
+ require "pathname"
7
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
8
+ Pathname.new(__FILE__).realpath)
9
+
10
+ require "rubygems"
11
+ require "bundler/setup"
12
+
13
+ require "webpacker"
14
+ require "webpacker/webpack_runner"
15
+ Webpacker::WebpackRunner.run(ARGV)
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ENV["RAILS_ENV"] ||= ENV["RACK_ENV"] || "development"
4
+ ENV["NODE_ENV"] ||= "development"
5
+
6
+ require "pathname"
7
+ ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile",
8
+ Pathname.new(__FILE__).realpath)
9
+
10
+ require "rubygems"
11
+ require "bundler/setup"
12
+
13
+ require "webpacker"
14
+ require "webpacker/dev_server_runner"
15
+ Webpacker::DevServerRunner.run(ARGV)
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+ VENDOR_PATH = File.expand_path('..', __dir__)
3
+ Dir.chdir(VENDOR_PATH) do
4
+ begin
5
+ exec "yarnpkg #{ARGV.join(" ")}"
6
+ rescue Errno::ENOENT
7
+ $stderr.puts "Yarn executable was not detected in the system."
8
+ $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install"
9
+ exit 1
10
+ end
11
+ end
@@ -1,10 +1,10 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ require File.expand_path('boot', __dir__)
2
2
 
3
3
  # require 'rails/all'
4
4
 
5
- require "action_controller/railtie"
6
- require "action_mailer/railtie"
7
- require "sprockets/railtie"
5
+ require 'action_controller/railtie'
6
+ require 'action_mailer/railtie'
7
+ require 'sprockets/railtie'
8
8
  # require "rails/test_unit/railtie"
9
9
 
10
10
  # Require the gems listed in Gemfile, including any gems
@@ -38,5 +38,7 @@ module PutsReq
38
38
  config.to_prepare do
39
39
  Devise::SessionsController.layout 'devise'
40
40
  end
41
+
42
+ config.middleware.use Rack::Attack
41
43
  end
42
44
  end
@@ -1,4 +1,4 @@
1
1
  # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
2
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
3
 
4
4
  require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
@@ -1,5 +1,5 @@
1
1
  # Load the Rails application.
2
- require File.expand_path('../application', __FILE__)
2
+ require File.expand_path('application', __dir__)
3
3
 
4
4
  # Initialize the Rails application.
5
5
  PutsReq::Application.initialize!
@@ -1,5 +1,3 @@
1
- ENV['REDISTOGO_URL'] = 'redis://127.0.0.1:6379'
2
-
3
1
  PutsReq::Application.configure do
4
2
  # Settings specified here will take precedence over those in config/application.rb.
5
3
 
@@ -30,4 +28,10 @@ PutsReq::Application.configure do
30
28
  config.assets.debug = true
31
29
 
32
30
  config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
33
- end
31
+
32
+ config.allow_concurrency = true
33
+
34
+ config.assets.quiet = true
35
+
36
+ config.cache_store = :redis_store, ENV['REDIS_URL']
37
+ end
@@ -40,10 +40,10 @@ PutsReq::Application.configure do
40
40
  # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for nginx
41
41
 
42
42
  # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
43
- # config.force_ssl = true
43
+ config.force_ssl = true
44
44
 
45
45
  # Set to :debug to see everything in the log.
46
- config.log_level = :info
46
+ config.log_level = :error
47
47
 
48
48
  # Prepend all log lines with the following tags.
49
49
  # config.log_tags = [ :subdomain, :uuid ]
@@ -53,6 +53,7 @@ PutsReq::Application.configure do
53
53
 
54
54
  # Use a different cache store in production.
55
55
  # config.cache_store = :mem_cache_store
56
+ config.cache_store = :redis_store, ENV['REDIS_URL']
56
57
 
57
58
  # Enable serving of images, stylesheets, and JavaScripts from an asset server.
58
59
  # config.action_controller.asset_host = "http://assets.example.com"
@@ -79,4 +80,6 @@ PutsReq::Application.configure do
79
80
  config.log_formatter = ::Logger::Formatter.new
80
81
 
81
82
  config.action_mailer.default_url_options = { host: 'putsreq.com' }
83
+
84
+ config.allow_concurrency = true
82
85
  end
@@ -14,7 +14,7 @@ PutsReq::Application.configure do
14
14
 
15
15
  # Configure static asset server for tests with Cache-Control for performance.
16
16
  config.serve_static_assets = true
17
- config.static_cache_control = "public, max-age=3600"
17
+ config.static_cache_control = 'public, max-age=3600'
18
18
 
19
19
  # Show full error reports and disable caching.
20
20
  config.consider_all_requests_local = true
@@ -33,4 +33,6 @@ PutsReq::Application.configure do
33
33
 
34
34
  # Print deprecation notices to the stderr.
35
35
  config.active_support.deprecation = :stderr
36
+
37
+ config.public_file_server.enabled = true
36
38
  end
@@ -41,12 +41,12 @@ Devise.setup do |config|
41
41
  # Configure which authentication keys should be case-insensitive.
42
42
  # These keys will be downcased upon creating or modifying a user and when used
43
43
  # to authenticate or find a user. Default is :email.
44
- config.case_insensitive_keys = [ :email ]
44
+ config.case_insensitive_keys = [:email]
45
45
 
46
46
  # Configure which authentication keys should have whitespace stripped.
47
47
  # These keys will have whitespace before and after removed upon creating or
48
48
  # modifying a user and when used to authenticate or find a user. Default is :email.
49
- config.strip_whitespace_keys = [ :email ]
49
+ config.strip_whitespace_keys = [:email]
50
50
 
51
51
  # Tell if authentication through request.params is enabled. True by default.
52
52
  # It can be set to an array that will enable params authentication only for the
@@ -0,0 +1,24 @@
1
+ def requests_count_path?(path)
2
+ path.end_with?('/requests_count')
3
+ end
4
+
5
+ Rack::Attack.throttle('requests by bucket (path) ', limit: 45, period: 60) do |request|
6
+ request.path unless requests_count_path?(request.path)
7
+ end
8
+
9
+ Rack::Attack.throttle('requests by ip', limit: 45, period: 60) do |request|
10
+ request.ip unless requests_count_path?(request.path)
11
+ end
12
+
13
+ Rack::Attack.throttled_response = lambda do |env|
14
+ match_data = env['rack.attack.match_data']
15
+ now = match_data[:epoch_time]
16
+
17
+ headers = {
18
+ 'RateLimit-Limit' => match_data[:limit].to_s,
19
+ 'RateLimit-Remaining' => '0',
20
+ 'RateLimit-Reset' => (now + (match_data[:period] - now % match_data[:period])).to_s
21
+ }
22
+
23
+ [429, headers, ['Your are requests are being temporally throttled. Please contact for increasing limits.\n']]
24
+ end
@@ -0,0 +1,58 @@
1
+ Rollbar.configure do |config|
2
+ # Without configuration, Rollbar is enabled in all environments.
3
+ # To disable in specific environments, set config.enabled=false.
4
+
5
+ config.access_token = ENV['ROLLBAR_ACCESS_TOKEN']
6
+
7
+ config.enabled = Rails.env.production?
8
+
9
+ # By default, Rollbar will try to call the `current_user` controller method
10
+ # to fetch the logged-in user object, and then call that object's `id`,
11
+ # `username`, and `email` methods to fetch those properties. To customize:
12
+ # config.person_method = "my_current_user"
13
+ # config.person_id_method = "my_id"
14
+ # config.person_username_method = "my_username"
15
+ # config.person_email_method = "my_email"
16
+
17
+ # If you want to attach custom data to all exception and message reports,
18
+ # provide a lambda like the following. It should return a hash.
19
+ # config.custom_data_method = lambda { {:some_key => "some_value" } }
20
+
21
+ # Add exception class names to the exception_level_filters hash to
22
+ # change the level that exception is reported at. Note that if an exception
23
+ # has already been reported and logged the level will need to be changed
24
+ # via the rollbar interface.
25
+ # Valid levels: 'critical', 'error', 'warning', 'info', 'debug', 'ignore'
26
+ # 'ignore' will cause the exception to not be reported at all.
27
+ # config.exception_level_filters.merge!('MyCriticalException' => 'critical')
28
+ config.exception_level_filters['Mongoid::Errors::DocumentNotFound'] = 'ignore'
29
+ config.exception_level_filters['ActionController::RoutingError'] = 'ignore'
30
+ config.exception_level_filters['ActionDispatch::ParamsParser::ParseError'] = 'ignore'
31
+ config.exception_level_filters['ActionDispatch::Http::Parameters::ParseError'] = 'ignore'
32
+ #
33
+ # You can also specify a callable, which will be called with the exception instance.
34
+ # config.exception_level_filters.merge!('MyCriticalException' => lambda { |e| 'critical' })
35
+
36
+ # Enable asynchronous reporting (uses girl_friday or Threading if girl_friday
37
+ # is not installed)
38
+ # config.use_async = true
39
+ # Supply your own async handler:
40
+ # config.async_handler = Proc.new { |payload|
41
+ # Thread.new { Rollbar.process_from_async_handler(payload) }
42
+ # }
43
+
44
+ # Enable asynchronous reporting (using sucker_punch)
45
+ # config.use_sucker_punch
46
+
47
+ # Enable delayed reporting (using Sidekiq)
48
+ # config.use_sidekiq
49
+ # You can supply custom Sidekiq options:
50
+ # config.use_sidekiq 'queue' => 'default'
51
+
52
+ # If you run your staging application instance in production environment then
53
+ # you'll want to override the environment reported by `Rails.env` with an
54
+ # environment variable like this: `ROLLBAR_ENV=staging`. This is a recommended
55
+ # setup for Heroku. See:
56
+ # https://devcenter.heroku.com/articles/deploying-to-a-custom-rails-environment
57
+ config.environment = ENV['ROLLBAR_ENV'] || Rails.env
58
+ end
@@ -1,10 +1,10 @@
1
1
  ActionMailer::Base.smtp_settings = {
2
- :address => 'smtp.sendgrid.net',
3
- :port => '587',
4
- :authentication => :plain,
5
- :user_name => ENV['SENDGRID_USERNAME'],
6
- :password => ENV['SENDGRID_PASSWORD'],
7
- :domain => 'heroku.com',
8
- :enable_starttls_auto => true
2
+ address: 'smtp.sendgrid.net',
3
+ port: '587',
4
+ authentication: :plain,
5
+ user_name: ENV['SENDGRID_USERNAME'],
6
+ password: ENV['SENDGRID_PASSWORD'],
7
+ domain: 'heroku.com',
8
+ enable_starttls_auto: true
9
9
  }
10
10
  ActionMailer::Base.delivery_method = :smtp
@@ -3,13 +3,13 @@ development:
3
3
  default:
4
4
  database: puts_req
5
5
  hosts:
6
- - localhost:27017
6
+ - <%= ENV['MONGO_URI'] %>
7
7
  test:
8
8
  clients:
9
9
  default:
10
10
  database: puts_req_test
11
11
  hosts:
12
- - localhost:27017
12
+ - <%= ENV['MONGO_URI'] %>
13
13
  production:
14
14
  clients:
15
15
  default:
@@ -0,0 +1,45 @@
1
+ #
2
+ # This file configures the New Relic Agent. New Relic monitors Ruby, Java,
3
+ # .NET, PHP, Python, Node, and Go applications with deep visibility and low
4
+ # overhead. For more information, visit www.newrelic.com.
5
+ #
6
+ # Generated June 15, 2019
7
+ #
8
+ # This configuration file is custom generated for app24107725@heroku.com
9
+ #
10
+ # For full documentation of agent configuration options, please refer to
11
+ # https://docs.newrelic.com/docs/agents/ruby-agent/installation-configuration/ruby-agent-configuration
12
+
13
+ common: &default_settings
14
+ # Required license key associated with your New Relic account.
15
+ license_key: <%= ENV['NEW_RELIC_LICENSE_KEY'] %>
16
+
17
+ # Your application name. Renaming here affects where data displays in New
18
+ # Relic. For more details, see https://docs.newrelic.com/docs/apm/new-relic-apm/maintenance/renaming-applications
19
+ app_name: PutsReq
20
+
21
+ # To disable the agent regardless of other settings, uncomment the following:
22
+ # agent_enabled: false
23
+
24
+ # Logging level for log/newrelic_agent.log
25
+ log_level: info
26
+
27
+
28
+ # Environment-specific settings are in this section.
29
+ # RAILS_ENV or RACK_ENV (as appropriate) is used to determine the environment.
30
+ # If your application has other named environments, configure them here.
31
+ development:
32
+ <<: *default_settings
33
+ app_name: PutsReq (Development)
34
+
35
+ test:
36
+ <<: *default_settings
37
+ # It doesn't make sense to report to New Relic from automated test runs.
38
+ monitor_mode: false
39
+
40
+ staging:
41
+ <<: *default_settings
42
+ app_name: PutsReq (Staging)
43
+
44
+ production:
45
+ <<: *default_settings
@@ -0,0 +1,15 @@
1
+ workers Integer(ENV['WEB_CONCURRENCY'] || 2)
2
+ threads_count = Integer(ENV['RAILS_MAX_THREADS'] || 5)
3
+ threads threads_count, threads_count
4
+
5
+ preload_app!
6
+
7
+ rackup DefaultRackup
8
+ port ENV['PORT'] || 3000
9
+ environment ENV['RACK_ENV'] || 'development'
10
+
11
+ on_worker_boot do
12
+ # Worker specific setup for Rails 4.1+
13
+ # See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
14
+ # ActiveRecord::Base.establish_connection
15
+ end
@@ -3,10 +3,12 @@ PutsReq::Application.routes.draw do
3
3
 
4
4
  root to: 'home#index'
5
5
 
6
+ get ':token/requests_count' => 'buckets#requests_count'
6
7
  post 'buckets' => 'buckets#create', as: :buckets
7
8
  get ':token/inspect' => 'buckets#show', as: :bucket
8
9
  get ':token/last' => 'buckets#last', as: :bucket_last
9
10
  get ':token/requests/:id' => 'requests#show', as: :request
11
+ get ':token/requests' => 'requests#index', as: :requests
10
12
  get ':token/last_response' => 'buckets#last_response', as: :bucket_last_response
11
13
  put ':token/buckets' => 'buckets#update', as: :update_bucket
12
14
  match ':token' => 'buckets#record', via: :all, as: :bucket_record