raygun4ruby 3.0.0 → 3.2.3.pre
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +1 -0
- data/.rspec +1 -0
- data/.travis.yml +11 -5
- data/CHANGELOG.md +26 -0
- data/Gemfile +0 -0
- data/LICENSE.txt +0 -0
- data/README.md +3 -3
- data/Rakefile +9 -2
- data/examples/sinatras_raygun.rb +0 -0
- data/lib/generators/raygun/install_generator.rb +0 -0
- data/lib/raygun.rb +4 -5
- data/lib/raygun/affected_user.rb +0 -0
- data/lib/raygun/breadcrumbs.rb +0 -0
- data/lib/raygun/breadcrumbs/breadcrumb.rb +4 -0
- data/lib/raygun/breadcrumbs/store.rb +10 -0
- data/lib/raygun/client.rb +4 -1
- data/lib/raygun/configuration.rb +6 -0
- data/lib/raygun/error.rb +0 -0
- data/lib/raygun/javascript_tracker.rb +42 -0
- data/lib/raygun/middleware/breadcrumbs_store_initializer.rb +0 -0
- data/lib/raygun/middleware/javascript_exception_tracking.rb +32 -0
- data/lib/raygun/middleware/rack_exception_interceptor.rb +0 -0
- data/lib/raygun/middleware/rails_insert_affected_user.rb +0 -0
- data/lib/raygun/railtie.rb +2 -1
- data/lib/raygun/services/apply_whitelist_filter_to_payload.rb +0 -0
- data/lib/raygun/sidekiq.rb +3 -0
- data/lib/raygun/testable.rb +0 -0
- data/lib/raygun/version.rb +1 -1
- data/lib/raygun4ruby.rb +0 -0
- data/lib/resque/failure/raygun.rb +0 -0
- data/lib/tasks/raygun.tasks +0 -0
- data/raygun4ruby.gemspec +9 -2
- data/spec/dummy/.gitignore +17 -0
- data/spec/dummy/Gemfile +47 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/config/manifest.js +3 -0
- data/spec/dummy/app/assets/images/.keep +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +15 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/controllers/concerns/.keep +0 -0
- data/spec/dummy/app/controllers/home_controller.rb +4 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.keep +0 -0
- data/spec/dummy/app/models/.keep +0 -0
- data/spec/dummy/app/models/concerns/.keep +0 -0
- data/spec/dummy/app/views/home/index.html.erb +3 -0
- data/spec/dummy/app/views/home/index.json.erb +1 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +9 -0
- data/spec/dummy/bin/rake +9 -0
- data/spec/dummy/bin/setup +29 -0
- data/spec/dummy/bin/spring +17 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +26 -0
- data/spec/dummy/config/boot.rb +3 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +41 -0
- data/spec/dummy/config/environments/production.rb +79 -0
- data/spec/dummy/config/environments/test.rb +42 -0
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/to_time_preserves_timezone.rb +10 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +58 -0
- data/spec/dummy/config/secrets.yml +22 -0
- data/spec/dummy/db/seeds.rb +7 -0
- data/spec/dummy/lib/assets/.keep +0 -0
- data/spec/dummy/lib/tasks/.keep +0 -0
- data/spec/dummy/public/404.html +67 -0
- data/spec/dummy/public/422.html +67 -0
- data/spec/dummy/public/500.html +66 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/dummy/test/controllers/.keep +0 -0
- data/spec/dummy/test/fixtures/.keep +0 -0
- data/spec/dummy/test/helpers/.keep +0 -0
- data/spec/dummy/test/integration/.keep +0 -0
- data/spec/dummy/test/mailers/.keep +0 -0
- data/spec/dummy/test/models/.keep +0 -0
- data/spec/dummy/test/test_helper.rb +10 -0
- data/spec/dummy/vendor/assets/javascripts/.keep +0 -0
- data/spec/dummy/vendor/assets/stylesheets/.keep +0 -0
- data/spec/features/javascript_spec.rb +48 -0
- data/spec/rails_helper.rb +4 -0
- data/{specs → spec}/raygun/breadcrumbs/breadcrumb_spec.rb +56 -19
- data/{specs → spec}/raygun/breadcrumbs/store_spec.rb +45 -23
- data/{specs → spec}/raygun/raygun_spec.rb +5 -8
- data/{specs → spec}/services/apply_whitelist_filter_to_payload_spec.rb +9 -9
- data/spec/spec_helper.rb +24 -0
- data/spec/support/fake_logger.rb +17 -0
- data/test/integration/client_test.rb +0 -0
- data/test/test_helper.rb +2 -1
- data/test/unit/affected_user_test.rb +0 -0
- data/test/unit/client_test.rb +3 -1
- data/test/unit/configuration_test.rb +12 -0
- data/test/unit/raygun_test.rb +0 -0
- data/test/unit/resque_failure_test.rb +0 -0
- data/test/unit/sidekiq_failure_test.rb +0 -0
- metadata +168 -17
- data/specs/spec_helper.rb +0 -29
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 84452b508afb10629e9422d50d1ad50d50d39fa55b02b6b5f8acb8a4ae90dc5d
|
4
|
+
data.tar.gz: 9467456b70b0f9bade783999435f146547de3620f2921766bc43df4ece319558
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d54eaf8070ed7fe63f3d1fbc65453c036bba550762f28ce7279a055fd692faeb03081c91b2d60f371136df413e97c175bbef143b5f22c8e63a518ed4be5ec515
|
7
|
+
data.tar.gz: c51ab8b3f6e4743d2d95600c5325c485ecad3fce332e87adf61ed93a051939963e8d09f8064fccb126e536ce76c44144057c9012ba6cf97ef67ec4249633fe58
|
data/.gitignore
CHANGED
data/.rspec
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--require spec_helper
|
data/.travis.yml
CHANGED
@@ -1,14 +1,20 @@
|
|
1
|
+
language: ruby
|
2
|
+
|
1
3
|
before_install:
|
2
|
-
- gem
|
4
|
+
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
5
|
+
- gem install bundler -v '< 2'
|
3
6
|
|
4
7
|
script:
|
5
8
|
- bundle exec rake
|
6
9
|
|
7
10
|
rvm:
|
8
|
-
- 2.0.0
|
9
|
-
- 2.
|
10
|
-
- 2.
|
11
|
-
- 2.
|
11
|
+
- 2.0.0-p648
|
12
|
+
- 2.1.0
|
13
|
+
- 2.2.10
|
14
|
+
- 2.3.8
|
15
|
+
- 2.4.5
|
16
|
+
- 2.5.3
|
17
|
+
- 2.6.1
|
12
18
|
|
13
19
|
gemfile:
|
14
20
|
- Gemfile
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,29 @@
|
|
1
|
+
## 3.2.2 (10/06/2020):
|
2
|
+
- Introduce support for Raygun APM exceptions correlation ([#154](https://github.com/MindscapeHQ/raygun4ruby/pull/154))
|
3
|
+
|
4
|
+
## 3.2.1 (25/02/2019):
|
5
|
+
Bugfix:
|
6
|
+
- Remove Ruby 2.3 syntax to retain support for Ruby >= 2.0 ([#148](https://github.com/MindscapeHQ/raygun4ruby/pull/148))
|
7
|
+
|
8
|
+
## 3.2.0 (21/02/2019):
|
9
|
+
Bugfix:
|
10
|
+
- Fix NoMethodError Exception: undefined method `include?' for nil:NilClass in `JavascriptExceptionTracking` class. Thanks @yamanaltereh for this ([#141](https://github.com/MindscapeHQ/raygun4ruby/pull/141))
|
11
|
+
- Fix ([#145](https://github.com/MindscapeHQ/raygun4ruby/issues/145)), "raygun4ruby will load pry if it is in the gem bundle". Thanks to @eoinkelly for reporting this
|
12
|
+
|
13
|
+
Feature:
|
14
|
+
- If you have recorded a large number of Breadcrumbs, or just very large ones, Raygun4Ruby will now only send up to 100KB of them instead of all of them, potentially going over the 128KB payload limit Raygun accepts ([#147](https://github.com/MindscapeHQ/raygun4ruby/pull/147))
|
15
|
+
|
16
|
+
## 3.1.1 (16/01/2019):
|
17
|
+
Bugfix:
|
18
|
+
- Don't attempt to modify response unless JS api key is present
|
19
|
+
- Don't attempt to modify response unless it responds to indexing ([])
|
20
|
+
- See PR ([#140](https://github.com/MindscapeHQ/raygun4ruby/pull/140))
|
21
|
+
|
22
|
+
## 3.1.0 (15/01/2019):
|
23
|
+
|
24
|
+
Feature:
|
25
|
+
- Ability to automatically configure Raygun4JS on the client side by injecting it into outbound HTML pages. Thanks @MikeRogers0 for this ([#138](https://github.com/MindscapeHQ/raygun4ruby/pull/138))
|
26
|
+
|
1
27
|
## 3.0.0 (18/12/2018):
|
2
28
|
Breaking changes:
|
3
29
|
Parameter filters are now applied if you are using the `filter_payload_with_whitelist` functionality. Previously if this was set to true the parameter filtering was bailed out of ([#136](https://github.com/MindscapeHQ/raygun4ruby/pull/136/files))
|
data/Gemfile
CHANGED
File without changes
|
data/LICENSE.txt
CHANGED
File without changes
|
data/README.md
CHANGED
@@ -19,7 +19,7 @@ Or install it yourself as:
|
|
19
19
|
|
20
20
|
## Usage
|
21
21
|
|
22
|
-
### Rails 3/4
|
22
|
+
### Rails 3/4/5
|
23
23
|
|
24
24
|
Run:
|
25
25
|
|
@@ -83,7 +83,7 @@ rescue => e
|
|
83
83
|
end
|
84
84
|
```
|
85
85
|
|
86
|
-
You can also pass a Hash as the second parameter to `track_exception`. It should look like a [Rack Env Hash](
|
86
|
+
You can also pass a Hash as the second parameter to `track_exception`. It should look like a [Rack Env Hash](https://www.rubydoc.info/github/rack/rack/master/file/SPEC)
|
87
87
|
|
88
88
|
### Customizing The Parameter Filtering
|
89
89
|
|
@@ -182,7 +182,7 @@ Raygun.setup do |config|
|
|
182
182
|
config.api_key = "YOUR_RAYGUN_API_KEY"
|
183
183
|
config.filter_payload_with_whitelist = true
|
184
184
|
|
185
|
-
config.
|
185
|
+
config.whitelist_payload_shape do |payload|
|
186
186
|
# Return the payload mutated into your desired form
|
187
187
|
payload
|
188
188
|
end
|
data/Rakefile
CHANGED
@@ -7,7 +7,7 @@ namespace :test do
|
|
7
7
|
|
8
8
|
desc "Test the basics of the adapter"
|
9
9
|
Rake::TestTask.new(:units) do |t|
|
10
|
-
t.test_files = FileList["test/unit/*_test.rb"
|
10
|
+
t.test_files = FileList["test/unit/*_test.rb"]
|
11
11
|
end
|
12
12
|
|
13
13
|
desc "Run a test against the live API"
|
@@ -15,6 +15,13 @@ namespace :test do
|
|
15
15
|
t.test_files = FileList["test/integration/*_test.rb"]
|
16
16
|
end
|
17
17
|
|
18
|
+
begin
|
19
|
+
require 'rspec/core/rake_task'
|
20
|
+
|
21
|
+
RSpec::Core::RakeTask.new(:spec)
|
22
|
+
|
23
|
+
rescue LoadError
|
24
|
+
end
|
18
25
|
end
|
19
26
|
|
20
|
-
task default: "test:units"
|
27
|
+
task default: ["test:units", "test:spec"]
|
data/examples/sinatras_raygun.rb
CHANGED
File without changes
|
File without changes
|
data/lib/raygun.rb
CHANGED
@@ -6,16 +6,13 @@ require "socket"
|
|
6
6
|
require "rack"
|
7
7
|
require "ostruct"
|
8
8
|
|
9
|
-
begin
|
10
|
-
require "pry"
|
11
|
-
rescue LoadError
|
12
|
-
end
|
13
|
-
|
14
9
|
require "raygun/version"
|
15
10
|
require "raygun/configuration"
|
16
11
|
require "raygun/client"
|
12
|
+
require "raygun/javascript_tracker"
|
17
13
|
require "raygun/middleware/rack_exception_interceptor"
|
18
14
|
require "raygun/middleware/breadcrumbs_store_initializer"
|
15
|
+
require "raygun/middleware/javascript_exception_tracking"
|
19
16
|
require "raygun/testable"
|
20
17
|
require "raygun/error"
|
21
18
|
require "raygun/affected_user"
|
@@ -150,6 +147,8 @@ module Raygun
|
|
150
147
|
env[:custom_data] ||= {}
|
151
148
|
env[:custom_data].merge!(original_stacktrace: exception_instance.backtrace)
|
152
149
|
|
150
|
+
::Raygun::Breadcrumbs::Store.clear
|
151
|
+
|
153
152
|
track_exception(new_exception, env, user, retry_count - 1)
|
154
153
|
else
|
155
154
|
raise e
|
data/lib/raygun/affected_user.rb
CHANGED
File without changes
|
data/lib/raygun/breadcrumbs.rb
CHANGED
File without changes
|
@@ -47,6 +47,16 @@ module Raygun
|
|
47
47
|
stored != nil && stored.length > 0
|
48
48
|
end
|
49
49
|
|
50
|
+
def self.take_until_size(size)
|
51
|
+
breadcrumb_size = 0
|
52
|
+
|
53
|
+
stored.reverse.take_while do |crumb|
|
54
|
+
breadcrumb_size += crumb.size
|
55
|
+
|
56
|
+
breadcrumb_size < size
|
57
|
+
end.reverse
|
58
|
+
end
|
59
|
+
|
50
60
|
private
|
51
61
|
|
52
62
|
def self.should_record?(crumb)
|
data/lib/raygun/client.rb
CHANGED
@@ -5,6 +5,7 @@ module Raygun
|
|
5
5
|
|
6
6
|
ENV_IP_ADDRESS_KEYS = %w(action_dispatch.remote_ip raygun.remote_ip REMOTE_ADDR)
|
7
7
|
NO_API_KEY_MESSAGE = "[RAYGUN] Just a note, you've got no API Key configured, which means we can't report exceptions. Specify your Raygun API key using Raygun#setup (find yours at https://app.raygun.io)"
|
8
|
+
MAX_BREADCRUMBS_SIZE = 100_000
|
8
9
|
|
9
10
|
include HTTParty
|
10
11
|
|
@@ -191,6 +192,7 @@ module Raygun
|
|
191
192
|
Raygun.log('set tags')
|
192
193
|
|
193
194
|
grouping_key = env.delete(:grouping_key)
|
195
|
+
correlation_id = env.delete(:correlation_id)
|
194
196
|
|
195
197
|
configuration_custom_data = Raygun.configuration.custom_data
|
196
198
|
configured_custom_data = if configuration_custom_data.is_a?(Proc)
|
@@ -214,11 +216,12 @@ module Raygun
|
|
214
216
|
}
|
215
217
|
}
|
216
218
|
store = ::Raygun::Breadcrumbs::Store
|
217
|
-
error_details[:breadcrumbs] = store.
|
219
|
+
error_details[:breadcrumbs] = store.take_until_size(MAX_BREADCRUMBS_SIZE).map(&:build_payload) if store.any?
|
218
220
|
|
219
221
|
Raygun.log('set details and breadcrumbs')
|
220
222
|
|
221
223
|
error_details.merge!(groupingKey: grouping_key) if grouping_key
|
224
|
+
error_details.merge!(correlationId: correlation_id) if correlation_id
|
222
225
|
|
223
226
|
user_details = if affected_user_present?(env)
|
224
227
|
user_information(env)
|
data/lib/raygun/configuration.rb
CHANGED
@@ -25,6 +25,12 @@ module Raygun
|
|
25
25
|
# Your Raygun API Key - this can be found on your dashboard at Raygun.io
|
26
26
|
config_option :api_key
|
27
27
|
|
28
|
+
# Your JS Raygun API Key - Should be different to your api_key, it's best practice to separate your errors between front end and back end.
|
29
|
+
config_option :js_api_key
|
30
|
+
|
31
|
+
# Your JS Raygun API Version, defaults to latest as found on https://raygun.com/raygun-providers/javascript
|
32
|
+
config_option :js_api_version
|
33
|
+
|
28
34
|
# Array of exception classes to ignore
|
29
35
|
config_option :ignore
|
30
36
|
|
data/lib/raygun/error.rb
CHANGED
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
# Client for injecting JavaScript code for tracking front end exceptions
|
2
|
+
# https://raygun.com/docs/languages/javascript
|
3
|
+
module Raygun
|
4
|
+
class JavaScriptTracker
|
5
|
+
def head_html
|
6
|
+
return unless js_api_key?
|
7
|
+
[
|
8
|
+
'<script type="text/javascript">',
|
9
|
+
'!function(a,b,c,d,e,f,g,h){a.RaygunObject=e,a[e]=a[e]||function(){',
|
10
|
+
'(a[e].o=a[e].o||[]).push(arguments)},f=b.createElement(c),g=b.getElementsByTagName(c)[0],',
|
11
|
+
'f.async=1,f.src=d,g.parentNode.insertBefore(f,g),h=a.onerror,a.onerror=function(b,c,d,f,g){',
|
12
|
+
'h&&h(b,c,d,f,g),g||(g=new Error(b)),a[e].q=a[e].q||[],a[e].q.push({',
|
13
|
+
'e:g})}}(window,document,"script","//cdn.raygun.io/raygun4js/' + js_api_version + 'raygun.min.js","rg4js");',
|
14
|
+
'</script>'
|
15
|
+
].join('').html_safe
|
16
|
+
end
|
17
|
+
|
18
|
+
def body_html
|
19
|
+
return unless js_api_key?
|
20
|
+
[
|
21
|
+
'<script type="text/javascript">',
|
22
|
+
"rg4js('apiKey', '#{js_api_key}');",
|
23
|
+
"rg4js('enableCrashReporting', true);",
|
24
|
+
'</script>'
|
25
|
+
].join('').html_safe
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def js_api_key
|
31
|
+
@js_api_key ||= Raygun.configuration.js_api_key
|
32
|
+
end
|
33
|
+
|
34
|
+
def js_api_version
|
35
|
+
@js_api_version ||= Raygun.configuration.js_api_version ? "#{Raygun.configuration.js_api_version}/" : ''
|
36
|
+
end
|
37
|
+
|
38
|
+
def js_api_key?
|
39
|
+
js_api_key.present?
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
module Raygun::Middleware
|
2
|
+
class JavascriptExceptionTracking
|
3
|
+
def initialize(app)
|
4
|
+
@app = app
|
5
|
+
end
|
6
|
+
|
7
|
+
def call(env)
|
8
|
+
status, headers, response = @app.call(env)
|
9
|
+
|
10
|
+
# It's a html file, inject our JS
|
11
|
+
if headers['Content-Type'] && headers['Content-Type'].include?('text/html')
|
12
|
+
response = inject_javascript_to_response(response)
|
13
|
+
end
|
14
|
+
|
15
|
+
[status, headers, response]
|
16
|
+
end
|
17
|
+
|
18
|
+
def inject_javascript_to_response(response)
|
19
|
+
if Raygun.configuration.js_api_key.present? && response.respond_to?('[]')
|
20
|
+
response[0].gsub!('</head>', "#{js_tracker.head_html}</head>")
|
21
|
+
response[0].gsub!('</body>', "#{js_tracker.body_html}</body>")
|
22
|
+
end
|
23
|
+
|
24
|
+
response
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
def js_tracker
|
29
|
+
@js_tracker = Raygun::JavaScriptTracker.new
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
File without changes
|
File without changes
|
data/lib/raygun/railtie.rb
CHANGED
@@ -19,7 +19,8 @@ class Raygun::Railtie < Rails::Railtie
|
|
19
19
|
raygun_middleware = [
|
20
20
|
Raygun::Middleware::RailsInsertAffectedUser,
|
21
21
|
Raygun::Middleware::RackExceptionInterceptor,
|
22
|
-
Raygun::Middleware::BreadcrumbsStoreInitializer
|
22
|
+
Raygun::Middleware::BreadcrumbsStoreInitializer,
|
23
|
+
Raygun::Middleware::JavascriptExceptionTracking
|
23
24
|
]
|
24
25
|
raygun_middleware = raygun_middleware.map(&:to_s) unless Rails::VERSION::STRING >= "5"
|
25
26
|
raygun_middleware.each do |m|
|
File without changes
|
data/lib/raygun/sidekiq.rb
CHANGED
data/lib/raygun/testable.rb
CHANGED
File without changes
|
data/lib/raygun/version.rb
CHANGED
data/lib/raygun4ruby.rb
CHANGED
File without changes
|
File without changes
|
data/lib/tasks/raygun.tasks
CHANGED
File without changes
|
data/raygun4ruby.gemspec
CHANGED
@@ -26,13 +26,20 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_runtime_dependency "concurrent-ruby"
|
27
27
|
|
28
28
|
spec.add_development_dependency "bundler", ">= 1.1"
|
29
|
-
spec.add_development_dependency "rake", "
|
29
|
+
spec.add_development_dependency "rake", ">= 12.3.3"
|
30
30
|
spec.add_development_dependency "timecop"
|
31
|
-
spec.add_development_dependency "minitest", "~>
|
31
|
+
spec.add_development_dependency "minitest", "~> 5.11"
|
32
32
|
spec.add_development_dependency "redis-namespace", ">= 1.3.1"
|
33
33
|
spec.add_development_dependency "resque"
|
34
34
|
spec.add_development_dependency "sidekiq", [">= 3", "< 3.2.2"]
|
35
35
|
spec.add_development_dependency "mocha"
|
36
36
|
spec.add_development_dependency "pry"
|
37
37
|
spec.add_development_dependency "webmock"
|
38
|
+
|
39
|
+
spec.add_development_dependency 'rails', "= 4.2.11"
|
40
|
+
spec.add_development_dependency 'sqlite3', '~> 1.3.6'
|
41
|
+
spec.add_development_dependency 'capybara'
|
42
|
+
spec.add_development_dependency "rspec-rails", '~> 3.9'
|
43
|
+
spec.add_development_dependency "launchy"
|
44
|
+
spec.add_development_dependency "simplecov"
|
38
45
|
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
+
#
|
3
|
+
# If you find yourself ignoring temporary files generated by your text editor
|
4
|
+
# or operating system, you probably want to add a global ignore instead:
|
5
|
+
# git config --global core.excludesfile '~/.gitignore_global'
|
6
|
+
|
7
|
+
# Ignore bundler config.
|
8
|
+
/.bundle
|
9
|
+
|
10
|
+
# Ignore the default SQLite database.
|
11
|
+
/db/*.sqlite3
|
12
|
+
/db/*.sqlite3-journal
|
13
|
+
|
14
|
+
# Ignore all logfiles and tempfiles.
|
15
|
+
/log/*
|
16
|
+
!/log/.keep
|
17
|
+
/tmp
|
data/spec/dummy/Gemfile
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
|
4
|
+
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
5
|
+
gem 'rails', '4.2.11'
|
6
|
+
# Use sqlite3 as the database for Active Record
|
7
|
+
gem 'sqlite3'
|
8
|
+
# Use SCSS for stylesheets
|
9
|
+
gem 'sass-rails', '~> 5.0'
|
10
|
+
# Use Uglifier as compressor for JavaScript assets
|
11
|
+
gem 'uglifier', '>= 1.3.0'
|
12
|
+
# Use CoffeeScript for .coffee assets and views
|
13
|
+
gem 'coffee-rails', '~> 4.1.0'
|
14
|
+
# See https://github.com/rails/execjs#readme for more supported runtimes
|
15
|
+
# gem 'therubyracer', platforms: :ruby
|
16
|
+
|
17
|
+
# Use jquery as the JavaScript library
|
18
|
+
gem 'jquery-rails'
|
19
|
+
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
20
|
+
gem 'turbolinks'
|
21
|
+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
22
|
+
gem 'jbuilder', '~> 2.0'
|
23
|
+
# bundle exec rake doc:rails generates the API under doc/api.
|
24
|
+
gem 'sdoc', '~> 0.4.0', group: :doc
|
25
|
+
|
26
|
+
# Use ActiveModel has_secure_password
|
27
|
+
# gem 'bcrypt', '~> 3.1.7'
|
28
|
+
|
29
|
+
# Use Unicorn as the app server
|
30
|
+
# gem 'unicorn'
|
31
|
+
|
32
|
+
# Use Capistrano for deployment
|
33
|
+
# gem 'capistrano-rails', group: :development
|
34
|
+
|
35
|
+
group :development, :test do
|
36
|
+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
37
|
+
gem 'byebug'
|
38
|
+
end
|
39
|
+
|
40
|
+
group :development do
|
41
|
+
# Access an IRB console on exception pages or by using <%= console %> in views
|
42
|
+
gem 'web-console', '~> 2.0'
|
43
|
+
|
44
|
+
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
45
|
+
gem 'spring'
|
46
|
+
end
|
47
|
+
|