bnb_blazer 0.3.0 → 0.8.0

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 (99) hide show
  1. checksums.yaml +4 -4
  2. data/app/overrides/controllers/blazer/base_controller_override.rb +133 -0
  3. data/app/views/{blazer → bnb_blazer}/_variables.html.haml +0 -0
  4. data/app/views/{blazer → bnb_blazer}/checks/_form.html.haml +0 -0
  5. data/app/views/{blazer → bnb_blazer}/checks/edit.html.haml +0 -0
  6. data/app/views/{blazer → bnb_blazer}/checks/index.html.haml +0 -0
  7. data/app/views/{blazer → bnb_blazer}/checks/new.html.haml +0 -0
  8. data/app/views/{blazer → bnb_blazer}/dashboards/_form.html.haml +0 -0
  9. data/app/views/{blazer → bnb_blazer}/dashboards/edit.html.haml +0 -0
  10. data/app/views/{blazer → bnb_blazer}/dashboards/new.html.haml +0 -0
  11. data/app/views/{blazer → bnb_blazer}/dashboards/show.html.haml +2 -2
  12. data/app/views/{blazer → bnb_blazer}/queries/_form.html.haml +0 -0
  13. data/app/views/{blazer → bnb_blazer}/queries/edit.html.haml +0 -0
  14. data/app/views/{blazer → bnb_blazer}/queries/home.html.haml +0 -0
  15. data/app/views/{blazer → bnb_blazer}/queries/new.html.haml +0 -0
  16. data/app/views/{blazer → bnb_blazer}/queries/run.html.haml +0 -0
  17. data/app/views/{blazer → bnb_blazer}/queries/show.html.haml +2 -2
  18. data/app/views/layouts/{blazer → bnb_blazer}/_footer.html.haml +0 -0
  19. data/app/views/layouts/{blazer → bnb_blazer}/_navbar.html.haml +0 -0
  20. data/app/views/layouts/{blazer → bnb_blazer}/application.html.haml +0 -0
  21. data/lib/{bnb_blazer/bnb_blazer.rb → bnb_blazer.rb} +5 -1
  22. data/lib/bnb_blazer/engine.rb +5 -0
  23. data/lib/bnb_blazer/version.rb +1 -1
  24. metadata +23 -96
  25. data/.docker-development-vars +0 -1
  26. data/.gitignore +0 -31
  27. data/.rspec +0 -3
  28. data/.ruby-version +0 -1
  29. data/.travis.yml +0 -6
  30. data/Gemfile +0 -54
  31. data/Gemfile.lock +0 -233
  32. data/LICENSE.txt +0 -21
  33. data/README.md +0 -35
  34. data/app/assets/config/manifest.js +0 -3
  35. data/app/assets/images/.keep +0 -0
  36. data/app/assets/images/bnb_intel_logo.png +0 -0
  37. data/app/assets/stylesheets/application.css +0 -83
  38. data/app/channels/application_cable/channel.rb +0 -4
  39. data/app/channels/application_cable/connection.rb +0 -4
  40. data/app/controllers/application_controller.rb +0 -2
  41. data/app/controllers/concerns/.keep +0 -0
  42. data/app/helpers/application_helper.rb +0 -2
  43. data/app/jobs/application_job.rb +0 -2
  44. data/app/mailers/application_mailer.rb +0 -4
  45. data/app/models/application_record.rb +0 -3
  46. data/app/models/concerns/.keep +0 -0
  47. data/app/models/user.rb +0 -2
  48. data/bin/bundle +0 -3
  49. data/bin/console +0 -14
  50. data/bin/rails +0 -9
  51. data/bin/rake +0 -9
  52. data/bin/setup +0 -36
  53. data/bin/spring +0 -17
  54. data/bin/update +0 -31
  55. data/bin/yarn +0 -11
  56. data/bnb_blazer.gemspec +0 -28
  57. data/config.ru +0 -5
  58. data/config/application.rb +0 -19
  59. data/config/blazer.yml +0 -79
  60. data/config/boot.rb +0 -4
  61. data/config/cable.yml +0 -10
  62. data/config/credentials.yml.enc +0 -1
  63. data/config/database.yml +0 -19
  64. data/config/environment.rb +0 -5
  65. data/config/environments/development.rb +0 -61
  66. data/config/environments/production.rb +0 -94
  67. data/config/environments/test.rb +0 -46
  68. data/config/initializers/application_controller_renderer.rb +0 -8
  69. data/config/initializers/assets.rb +0 -14
  70. data/config/initializers/backtrace_silencers.rb +0 -7
  71. data/config/initializers/content_security_policy.rb +0 -25
  72. data/config/initializers/cookies_serializer.rb +0 -5
  73. data/config/initializers/filter_parameter_logging.rb +0 -4
  74. data/config/initializers/inflections.rb +0 -16
  75. data/config/initializers/mime_types.rb +0 -4
  76. data/config/initializers/wrap_parameters.rb +0 -14
  77. data/config/locales/en.yml +0 -33
  78. data/config/puma.rb +0 -37
  79. data/config/routes.rb +0 -3
  80. data/config/spring.rb +0 -6
  81. data/config/storage.yml +0 -34
  82. data/db/migrate/20210309231658_install_blazer.rb +0 -47
  83. data/db/migrate/20210309231908_create_users.rb +0 -13
  84. data/db/schema.rb +0 -85
  85. data/db/seeds.rb +0 -45
  86. data/docker-compose.yml +0 -22
  87. data/lib/assets/.keep +0 -0
  88. data/lib/tasks/.keep +0 -0
  89. data/log/.keep +0 -0
  90. data/package.json +0 -5
  91. data/public/404.html +0 -67
  92. data/public/422.html +0 -67
  93. data/public/500.html +0 -66
  94. data/public/apple-touch-icon-precomposed.png +0 -0
  95. data/public/apple-touch-icon.png +0 -0
  96. data/public/favicon.ico +0 -0
  97. data/public/robots.txt +0 -1
  98. data/tmp/.keep +0 -0
  99. data/vendor/.keep +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f5ec492e2355b6268bc876d16e58ab99c928f7661cf9fedd57736ff04d82f179
4
- data.tar.gz: f5a97253255cd8770936dd1c82483fbd03917c78b16925a52cc58918531f887c
3
+ metadata.gz: 9dfd9dcc54ad8fc13934d9de74792a7c1be24d2449fb4c868490692302086341
4
+ data.tar.gz: ce3a925a2fc273a2d79873ba3c3c3e3f60581cad6cd8ec0f93a23711597ba833
5
5
  SHA512:
6
- metadata.gz: 2e2d92429c5d970c18414360dffeda3041e4254155969a300b16e3c2e222b1fafa4fef8ec1e84f59cc9741f84c76c8e8e386dcb9d682293d5b1d508b757f34e7
7
- data.tar.gz: 48e33a5017fc22fdffea15836fe95a8cc0695162103fa964674bfade3282a877fd65e08c219c7946667226dcb92ec8b0bf86dfc947cf877ab9bd05f201295039
6
+ metadata.gz: e73e24bd82ede29b8fe9b4e4e7b66d6ff15797d7704c8586ebb7acace5312ecbecf158372470790c95559d19267995e62cf3a1aa463a94e7a9d1021a9654f468
7
+ data.tar.gz: 608fcfcc41142cc28c697740f03eee11c3471b289e491db051527e13c5ca4310f253c875478c8d7fe15fbc6ebb77b7c5e19cb7c49d4956430772e7b0139d894c
@@ -0,0 +1,133 @@
1
+ Blazer::BaseController.class_eval do
2
+ # skip filters
3
+ filters = _process_action_callbacks.map(&:filter) - [:activate_authlogic]
4
+ skip_before_action(*filters, raise: false)
5
+ skip_after_action(*filters, raise: false)
6
+ skip_around_action(*filters, raise: false)
7
+
8
+ clear_helpers
9
+
10
+ protect_from_forgery with: :exception
11
+
12
+ if ENV["BLAZER_PASSWORD"]
13
+ http_basic_authenticate_with name: ENV["BLAZER_USERNAME"], password: ENV["BLAZER_PASSWORD"]
14
+ end
15
+
16
+ if Blazer.settings["before_action"]
17
+ raise Blazer::Error, "The docs for protecting Blazer with a custom before_action had an incorrect example from August 2017 to June 2018. The example method had a boolean return value. However, you must render or redirect if a user is unauthorized rather than return a falsy value. Double check that your before_action works correctly for unauthorized users (if it worked when added, there should be no issue). Then, change before_action to before_action_method in config/blazer.yml."
18
+ end
19
+
20
+ if Blazer.before_action
21
+ before_action Blazer.before_action.to_sym
22
+ end
23
+
24
+ if Blazer.override_csp
25
+ after_action do
26
+ response.headers['Content-Security-Policy'] = "default-src 'self' https: 'unsafe-inline' 'unsafe-eval' data:"
27
+ end
28
+ end
29
+
30
+ layout "bnb_blazer/application"
31
+ append_view_path(["views/blazer", "views/bnb_blazer", "views/blazer"])
32
+
33
+ private
34
+
35
+ def process_vars(statement, data_source)
36
+ (@bind_vars ||= []).concat(Blazer.extract_vars(statement)).uniq!
37
+ @bind_vars.each do |var|
38
+ params[var] ||= Blazer.data_sources[data_source].variable_defaults[var]
39
+ end
40
+ @success = @bind_vars.all? { |v| params[v] }
41
+
42
+ if @success
43
+ @bind_vars.each do |var|
44
+ value = params[var].presence
45
+ if value
46
+ if ["start_time", "end_time"].include?(var)
47
+ value = value.to_s.gsub(" ", "+") # fix for Quip bug
48
+ end
49
+
50
+ if var.end_with?("_at")
51
+ begin
52
+ value = Blazer.time_zone.parse(value)
53
+ rescue
54
+ # do nothing
55
+ end
56
+ end
57
+
58
+ if value =~ /\A\d+\z/
59
+ value = value.to_i
60
+ elsif value =~ /\A\d+\.\d+\z/
61
+ value = value.to_f
62
+ end
63
+ end
64
+ value = Blazer.transform_variable.call(var, value) if Blazer.transform_variable
65
+ statement.gsub!("{#{var}}", ActiveRecord::Base.connection.quote(value))
66
+ end
67
+ end
68
+ end
69
+
70
+ def add_cohort_analysis_vars
71
+ @bind_vars << "cohort_period" unless @bind_vars.include?("cohort_period")
72
+ @smart_vars["cohort_period"] = ["day", "week", "month"]
73
+ params[:cohort_period] ||= "week"
74
+ end
75
+
76
+ def parse_smart_variables(var, data_source)
77
+ smart_var_data_source =
78
+ ([data_source] + Array(data_source.settings["inherit_smart_settings"]).map { |ds| Blazer.data_sources[ds] }).find { |ds| ds.smart_variables[var] }
79
+
80
+ if smart_var_data_source
81
+ query = smart_var_data_source.smart_variables[var]
82
+
83
+ if query.is_a? Hash
84
+ smart_var = query.map { |k,v| [v, k] }
85
+ elsif query.is_a? Array
86
+ smart_var = query.map { |v| [v, v] }
87
+ elsif query
88
+ result = smart_var_data_source.run_statement(query)
89
+ smart_var = result.rows.map { |v| v.reverse }
90
+ error = result.error if result.error
91
+ end
92
+ end
93
+
94
+ [smart_var, error]
95
+ end
96
+
97
+ # don't pass to url helpers
98
+ #
99
+ # some are dangerous when passed as symbols
100
+ # root_url({host: "evilsite.com"})
101
+ #
102
+ # certain ones (like host) only affect *_url and not *_path
103
+ #
104
+ # when permitted parameters are passed in Rails 6,
105
+ # they appear to be added as GET parameters
106
+ # root_url(params.permit(:host))
107
+ UNPERMITTED_KEYS = [:controller, :action, :id, :host, :query, :dashboard, :query_id, :query_ids, :table_names, :authenticity_token, :utf8, :_method, :commit, :statement, :data_source, :name, :fork_query_id, :blazer, :run_id, :script_name, :original_script_name]
108
+
109
+ # remove unpermitted keys from both params and permitted keys for better sleep
110
+ def variable_params(resource)
111
+ permitted_keys = resource.variables - UNPERMITTED_KEYS.map(&:to_s)
112
+ params.except(*UNPERMITTED_KEYS).slice(*permitted_keys).permit!
113
+ end
114
+ helper_method :variable_params
115
+
116
+ def blazer_user
117
+ send(Blazer.user_method) if Blazer.user_method && respond_to?(Blazer.user_method, true)
118
+ end
119
+ helper_method :blazer_user
120
+
121
+ def render_errors(resource)
122
+ @errors = resource.errors
123
+ action = resource.persisted? ? :edit : :new
124
+ render action, status: :unprocessable_entity
125
+ end
126
+
127
+ # do not inherit from ApplicationController - #120
128
+ def default_url_options
129
+ {}
130
+ end
131
+ end
132
+
133
+ end
@@ -1,7 +1,7 @@
1
1
  - blazer_title @dashboard.name
2
2
  %nav.navbar.navbar-default.navbar-fixed-top
3
3
  .container
4
- = render layout: "layouts/blazer/navbar" do
4
+ = render layout: "layouts/bnb_blazer/navbar" do
5
5
  %li= link_to "Edit", edit_dashboard_path(@dashboard, variable_params(@dashboard))
6
6
 
7
7
  %div{:style => "margin-bottom: 70px;"}
@@ -11,7 +11,7 @@
11
11
  Some queries may be cached
12
12
  \#{link_to "Refresh", refresh_dashboard_path(@dashboard, variable_params(@dashboard)), method: :post}
13
13
  - if @bind_vars.any?
14
- = render partial: "blazer/variables", locals: {action: dashboard_path(@dashboard)}
14
+ = render partial: "bnb_blazer/variables", locals: {action: dashboard_path(@dashboard)}
15
15
  - else
16
16
  %div{:style => "padding-bottom: 15px;"}
17
17
  - @queries.each_with_index do |query, i|
@@ -1,7 +1,7 @@
1
1
  - blazer_title @query.name
2
2
  %nav.navbar.navbar-default.navbar-fixed-top
3
3
  .container
4
- = render layout: "layouts/blazer/navbar" do
4
+ = render layout: "layouts/bnb_blazer/navbar" do
5
5
  %li= link_to "Edit", edit_query_path(@query, variable_params(@query)), class: "text-muted font-weight-bold px-1", disabled: !@query.editable?(blazer_user)
6
6
  %li= link_to "Fork", new_query_path(variable_params(@query).merge(fork_query_id: @query.id, data_source: @query.data_source, name: @query.name)), class: "text-muted font-weight-bold px-1"
7
7
  - if !@error && @success
@@ -17,7 +17,7 @@
17
17
  %h3.text-center=@query.name
18
18
  - if @query.description.present?
19
19
  %p= @query.description
20
- = render partial: "blazer/variables", locals: {action: query_path(@query)}
20
+ = render partial: "bnb_blazer/variables", locals: {action: query_path(@query)}
21
21
  %pre#code
22
22
  %code= @statement
23
23
  - if @success
@@ -1,6 +1,10 @@
1
- require "bnb_blazer/version"
1
+ # dependency
2
2
  require "blazer"
3
3
 
4
+ # modules
5
+ require "bnb_blazer/engine"
6
+ require "bnb_blazer/version"
7
+
4
8
  module BnbBlazer
5
9
  class Error < StandardError; end
6
10
  # Your code goes here...
@@ -0,0 +1,5 @@
1
+ module BnbBlazer
2
+ class Enginer < ::Rails::Engine
3
+
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module BnbBlazer
2
- VERSION = "0.3.0"
2
+ VERSION = "0.8.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bnb_blazer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-29 00:00:00.000000000 Z
11
+ date: 2021-06-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: blazer
@@ -31,102 +31,29 @@ executables: []
31
31
  extensions: []
32
32
  extra_rdoc_files: []
33
33
  files:
34
- - ".docker-development-vars"
35
- - ".gitignore"
36
- - ".rspec"
37
- - ".ruby-version"
38
- - ".travis.yml"
39
- - Gemfile
40
- - Gemfile.lock
41
- - LICENSE.txt
42
- - README.md
43
34
  - Rakefile
44
- - app/assets/config/manifest.js
45
- - app/assets/images/.keep
46
- - app/assets/images/bnb_intel_logo.png
47
- - app/assets/stylesheets/application.css
48
- - app/channels/application_cable/channel.rb
49
- - app/channels/application_cable/connection.rb
50
- - app/controllers/application_controller.rb
51
- - app/controllers/concerns/.keep
52
- - app/helpers/application_helper.rb
53
- - app/jobs/application_job.rb
54
- - app/mailers/application_mailer.rb
55
- - app/models/application_record.rb
56
- - app/models/concerns/.keep
57
- - app/models/user.rb
58
- - app/views/blazer/_variables.html.haml
59
- - app/views/blazer/checks/_form.html.haml
60
- - app/views/blazer/checks/edit.html.haml
61
- - app/views/blazer/checks/index.html.haml
62
- - app/views/blazer/checks/new.html.haml
63
- - app/views/blazer/dashboards/_form.html.haml
64
- - app/views/blazer/dashboards/edit.html.haml
65
- - app/views/blazer/dashboards/new.html.haml
66
- - app/views/blazer/dashboards/show.html.haml
67
- - app/views/blazer/queries/_form.html.haml
68
- - app/views/blazer/queries/edit.html.haml
69
- - app/views/blazer/queries/home.html.haml
70
- - app/views/blazer/queries/new.html.haml
71
- - app/views/blazer/queries/run.html.haml
72
- - app/views/blazer/queries/show.html.haml
73
- - app/views/layouts/blazer/_footer.html.haml
74
- - app/views/layouts/blazer/_navbar.html.haml
75
- - app/views/layouts/blazer/application.html.haml
76
- - bin/bundle
77
- - bin/console
78
- - bin/rails
79
- - bin/rake
80
- - bin/setup
81
- - bin/spring
82
- - bin/update
83
- - bin/yarn
84
- - bnb_blazer.gemspec
85
- - config.ru
86
- - config/application.rb
87
- - config/blazer.yml
88
- - config/boot.rb
89
- - config/cable.yml
90
- - config/credentials.yml.enc
91
- - config/database.yml
92
- - config/environment.rb
93
- - config/environments/development.rb
94
- - config/environments/production.rb
95
- - config/environments/test.rb
96
- - config/initializers/application_controller_renderer.rb
97
- - config/initializers/assets.rb
98
- - config/initializers/backtrace_silencers.rb
99
- - config/initializers/content_security_policy.rb
100
- - config/initializers/cookies_serializer.rb
101
- - config/initializers/filter_parameter_logging.rb
102
- - config/initializers/inflections.rb
103
- - config/initializers/mime_types.rb
104
- - config/initializers/wrap_parameters.rb
105
- - config/locales/en.yml
106
- - config/puma.rb
107
- - config/routes.rb
108
- - config/spring.rb
109
- - config/storage.yml
110
- - db/migrate/20210309231658_install_blazer.rb
111
- - db/migrate/20210309231908_create_users.rb
112
- - db/schema.rb
113
- - db/seeds.rb
114
- - docker-compose.yml
115
- - lib/assets/.keep
116
- - lib/bnb_blazer/bnb_blazer.rb
35
+ - app/overrides/controllers/blazer/base_controller_override.rb
36
+ - app/views/bnb_blazer/_variables.html.haml
37
+ - app/views/bnb_blazer/checks/_form.html.haml
38
+ - app/views/bnb_blazer/checks/edit.html.haml
39
+ - app/views/bnb_blazer/checks/index.html.haml
40
+ - app/views/bnb_blazer/checks/new.html.haml
41
+ - app/views/bnb_blazer/dashboards/_form.html.haml
42
+ - app/views/bnb_blazer/dashboards/edit.html.haml
43
+ - app/views/bnb_blazer/dashboards/new.html.haml
44
+ - app/views/bnb_blazer/dashboards/show.html.haml
45
+ - app/views/bnb_blazer/queries/_form.html.haml
46
+ - app/views/bnb_blazer/queries/edit.html.haml
47
+ - app/views/bnb_blazer/queries/home.html.haml
48
+ - app/views/bnb_blazer/queries/new.html.haml
49
+ - app/views/bnb_blazer/queries/run.html.haml
50
+ - app/views/bnb_blazer/queries/show.html.haml
51
+ - app/views/layouts/bnb_blazer/_footer.html.haml
52
+ - app/views/layouts/bnb_blazer/_navbar.html.haml
53
+ - app/views/layouts/bnb_blazer/application.html.haml
54
+ - lib/bnb_blazer.rb
55
+ - lib/bnb_blazer/engine.rb
117
56
  - lib/bnb_blazer/version.rb
118
- - lib/tasks/.keep
119
- - log/.keep
120
- - package.json
121
- - public/404.html
122
- - public/422.html
123
- - public/500.html
124
- - public/apple-touch-icon-precomposed.png
125
- - public/apple-touch-icon.png
126
- - public/favicon.ico
127
- - public/robots.txt
128
- - tmp/.keep
129
- - vendor/.keep
130
57
  homepage: https://github.com/brandnewbox/bnb_blazer
131
58
  licenses:
132
59
  - MIT
@@ -1 +0,0 @@
1
- DATABASE_URL=postgresql://postgres:password@postgresql:5432
data/.gitignore DELETED
@@ -1,31 +0,0 @@
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 all logfiles and tempfiles.
11
- /log/*
12
- /tmp/*
13
- !/log/.keep
14
- !/tmp/.keep
15
-
16
- # Ignore uploaded files in development
17
- /storage/*
18
- !/storage/.keep
19
-
20
- /node_modules
21
- /yarn-error.log
22
-
23
- /public/assets
24
- .byebug_history
25
-
26
- .DS_Store
27
- /pgdata
28
- /vendor/bundle
29
-
30
- # Ignore master key for decrypting credentials and more.
31
- /config/master.key
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
data/.ruby-version DELETED
@@ -1 +0,0 @@
1
- ruby-2.6
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.5.3
6
- before_install: gem install bundler -v 2.1.4
data/Gemfile DELETED
@@ -1,54 +0,0 @@
1
- source 'https://rubygems.org'
2
- git_source(:github) { |repo| "https://github.com/#{repo}.git" }
3
-
4
- gemspec
5
-
6
- # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
7
- gem 'rails', '~> 5.2.4', '>= 5.2.4.5'
8
- # Use postgres as the database for Active Record
9
- gem 'puma'
10
- gem 'pg'
11
- # Use SCSS for stylesheets
12
- gem 'sass-rails', '~> 5.0'
13
- # Use Uglifier as compressor for JavaScript assets
14
- gem 'uglifier', '>= 1.3.0'
15
-
16
- gem 'blazer'
17
- gem 'faker'
18
- gem 'bootstrap', '~> 4.6.0'
19
- gem 'jquery-rails'
20
- gem 'haml-rails'
21
-
22
- # Use ActiveStorage variant
23
- # gem 'mini_magick', '~> 4.8'
24
-
25
- # Use Capistrano for deployment
26
- # gem 'capistrano-rails', group: :development
27
-
28
- # Reduces boot times through caching; required in config/boot.rb
29
- gem 'bootsnap', '>= 1.1.0', require: false
30
-
31
- group :development, :test do
32
- # Call 'byebug' anywhere in the code to stop execution and get a debugger console
33
- gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
34
- end
35
-
36
- group :development do
37
- # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
38
- gem 'web-console', '>= 3.3.0'
39
- gem 'listen', '>= 3.0.5', '< 3.2'
40
- # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
41
- gem 'spring'
42
- gem 'spring-watcher-listen', '~> 2.0.0'
43
- end
44
-
45
- group :test do
46
- # # Adds support for Capybara system testing and selenium driver
47
- # gem 'capybara', '>= 2.15'
48
- # gem 'selenium-webdriver'
49
- # # Easy installation and use of chromedriver to run system tests with Chrome
50
- # gem 'chromedriver-helper'
51
- end
52
-
53
- # Windows does not include zoneinfo files, so bundle the tzinfo-data gem
54
- gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]