journaled 4.1.0 → 5.0.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 (58) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +148 -46
  3. data/Rakefile +10 -24
  4. data/app/jobs/journaled/delivery_job.rb +17 -28
  5. data/app/models/concerns/journaled/changes.rb +5 -5
  6. data/app/models/journaled/change.rb +12 -12
  7. data/app/models/journaled/change_writer.rb +3 -2
  8. data/app/models/journaled/event.rb +1 -1
  9. data/app/models/journaled/writer.rb +32 -15
  10. data/lib/journaled/connection.rb +48 -0
  11. data/lib/journaled/engine.rb +5 -0
  12. data/lib/journaled/errors.rb +3 -0
  13. data/lib/journaled/relation_change_protection.rb +11 -10
  14. data/lib/journaled/rspec.rb +86 -0
  15. data/lib/journaled/transaction_ext.rb +31 -0
  16. data/lib/journaled/version.rb +1 -1
  17. data/lib/journaled.rb +17 -13
  18. metadata +54 -97
  19. data/spec/dummy/README.rdoc +0 -28
  20. data/spec/dummy/Rakefile +0 -6
  21. data/spec/dummy/bin/bundle +0 -3
  22. data/spec/dummy/bin/rails +0 -4
  23. data/spec/dummy/bin/rake +0 -4
  24. data/spec/dummy/config/application.rb +0 -25
  25. data/spec/dummy/config/boot.rb +0 -5
  26. data/spec/dummy/config/database.yml +0 -6
  27. data/spec/dummy/config/environment.rb +0 -5
  28. data/spec/dummy/config/environments/development.rb +0 -24
  29. data/spec/dummy/config/environments/test.rb +0 -37
  30. data/spec/dummy/config/initializers/backtrace_silencers.rb +0 -7
  31. data/spec/dummy/config/initializers/cookies_serializer.rb +0 -3
  32. data/spec/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  33. data/spec/dummy/config/initializers/inflections.rb +0 -16
  34. data/spec/dummy/config/initializers/mime_types.rb +0 -4
  35. data/spec/dummy/config/initializers/session_store.rb +0 -3
  36. data/spec/dummy/config/initializers/wrap_parameters.rb +0 -14
  37. data/spec/dummy/config/locales/en.yml +0 -23
  38. data/spec/dummy/config/routes.rb +0 -56
  39. data/spec/dummy/config/secrets.yml +0 -22
  40. data/spec/dummy/config.ru +0 -4
  41. data/spec/dummy/db/schema.rb +0 -18
  42. data/spec/dummy/public/404.html +0 -67
  43. data/spec/dummy/public/422.html +0 -67
  44. data/spec/dummy/public/500.html +0 -66
  45. data/spec/dummy/public/favicon.ico +0 -0
  46. data/spec/jobs/journaled/delivery_job_spec.rb +0 -276
  47. data/spec/lib/journaled_spec.rb +0 -91
  48. data/spec/models/concerns/journaled/actor_spec.rb +0 -47
  49. data/spec/models/concerns/journaled/changes_spec.rb +0 -106
  50. data/spec/models/database_change_protection_spec.rb +0 -109
  51. data/spec/models/journaled/actor_uri_provider_spec.rb +0 -42
  52. data/spec/models/journaled/change_writer_spec.rb +0 -281
  53. data/spec/models/journaled/event_spec.rb +0 -236
  54. data/spec/models/journaled/json_schema_model/validator_spec.rb +0 -133
  55. data/spec/models/journaled/writer_spec.rb +0 -174
  56. data/spec/rails_helper.rb +0 -19
  57. data/spec/spec_helper.rb +0 -20
  58. data/spec/support/environment_spec_helper.rb +0 -16
@@ -16,3 +16,89 @@ RSpec::Matchers.define :journal_changes_to do |*attribute_names, as:|
16
16
  "expected #{model_class} not to journal changes to #{attribute_names.map(&:inspect).join(', ')} as #{as.inspect}"
17
17
  end
18
18
  end
19
+
20
+ RSpec::Matchers.define_negated_matcher :not_journal_changes_to, :journal_changes_to
21
+
22
+ RSpec::Matchers.define :journal_events_including do |*expected_events|
23
+ raise "Please specify at least one expected event. RSpec argument matchers are supported." if expected_events.empty?
24
+
25
+ attr_accessor :expected, :actual, :matches, :nonmatches
26
+
27
+ chain :with_schema_name, :expected_schema_name
28
+ chain :with_partition_key, :expected_partition_key
29
+ chain :with_stream_name, :expected_stream_name
30
+ chain :with_enqueue_opts, :expected_enqueue_opts
31
+ chain :with_priority, :expected_priority
32
+
33
+ def supports_block_expectations?
34
+ true
35
+ end
36
+
37
+ def hash_including_recursive(hash)
38
+ hash_including(
39
+ hash.transform_values { |v| v.is_a?(Hash) ? hash_including_recursive(v) : v },
40
+ )
41
+ end
42
+
43
+ match do |block|
44
+ expected_events = [expected_events.first].flatten(1) unless expected_events.length > 1
45
+
46
+ self.expected = expected_events.map { |e| { journaled_attributes: e } }
47
+ expected.each { |e| e.merge!(journaled_schema_name: expected_schema_name) } if expected_schema_name
48
+ expected.each { |e| e.merge!(journaled_partition_key: expected_partition_key) } if expected_partition_key
49
+ expected.each { |e| e.merge!(journaled_stream_name: expected_stream_name) } if expected_stream_name
50
+ expected.each { |e| e.merge!(journaled_enqueue_opts: expected_enqueue_opts) } if expected_enqueue_opts
51
+ expected.each { |e| e.merge!(priority: expected_priority) } if expected_priority
52
+ self.actual = []
53
+
54
+ callback = ->(_name, _started, _finished, _unique_id, payload) do
55
+ event = payload[:event]
56
+ a = { journaled_attributes: event.journaled_attributes }
57
+ a[:journaled_schema_name] = event.journaled_schema_name if expected_schema_name
58
+ a[:journaled_partition_key] = event.journaled_partition_key if expected_partition_key
59
+ a[:journaled_stream_name] = event.journaled_stream_name if expected_stream_name
60
+ a[:journaled_enqueue_opts] = event.journaled_enqueue_opts if expected_enqueue_opts
61
+ a[:priority] = payload[:priority] if expected_priority
62
+ actual << a
63
+ end
64
+
65
+ ActiveSupport::Notifications.subscribed(callback, 'journaled.event.enqueue', &block)
66
+
67
+ self.matches = actual.select do |a|
68
+ expected.any? { |e| values_match?(hash_including_recursive(e), a) }
69
+ end
70
+
71
+ self.nonmatches = actual - matches
72
+
73
+ exact_matches = matches.dup
74
+ matches.count == expected.count && expected.all? do |e|
75
+ match, index = exact_matches.each_with_index.find { |a, _| values_match?(hash_including_recursive(e), a) }
76
+ exact_matches.delete_at(index) if match
77
+ end && exact_matches.empty?
78
+ end
79
+
80
+ failure_message do
81
+ <<~MSG
82
+ Expected the code block to journal exactly one matching event per expected event.
83
+
84
+ Expected Events (#{expected.count}):
85
+ ===============================================================================
86
+ #{expected.map(&:to_json).join("\n ")}
87
+ ===============================================================================
88
+
89
+ Matching Events (#{matches.count}):
90
+ ===============================================================================
91
+ #{matches.map(&:to_json).join("\n ")}
92
+ ===============================================================================
93
+
94
+ Non-Matching Events (#{nonmatches.count}):
95
+ ===============================================================================
96
+ #{nonmatches.map(&:to_json).join("\n ")}
97
+ ===============================================================================
98
+ MSG
99
+ end
100
+ end
101
+
102
+ RSpec::Matchers.alias_matcher :journal_event_including, :journal_events_including
103
+ RSpec::Matchers.define_negated_matcher :not_journal_events_including, :journal_events_including
104
+ RSpec::Matchers.define_negated_matcher :not_journal_event_including, :journal_event_including
@@ -0,0 +1,31 @@
1
+ require 'active_record/connection_adapters/abstract/transaction'
2
+
3
+ module Journaled
4
+ module TransactionExt
5
+ def initialize(*, **)
6
+ super.tap do
7
+ raise TransactionSafetyError, <<~MSG unless instance_variable_defined?(:@run_commit_callbacks)
8
+ Journaled::TransactionExt expects @run_commit_callbacks to be defined on Transaction!
9
+ This is an internal API that may have changed in a recent Rails release.
10
+ If you were not expecting to see this error, please file an issue here:
11
+ https://github.com/Betterment/journaled/issues
12
+ MSG
13
+ end
14
+ end
15
+
16
+ def before_commit_records
17
+ super.tap do
18
+ Writer.enqueue!(*_journaled_staged_events) if @run_commit_callbacks
19
+ end
20
+ end
21
+
22
+ def commit_records
23
+ connection.current_transaction._journaled_staged_events.push(*_journaled_staged_events) unless @run_commit_callbacks
24
+ super
25
+ end
26
+
27
+ def _journaled_staged_events
28
+ @_journaled_staged_events ||= []
29
+ end
30
+ end
31
+ end
@@ -1,3 +1,3 @@
1
1
  module Journaled
2
- VERSION = "4.1.0".freeze
2
+ VERSION = "5.0.0".freeze
3
3
  end
data/lib/journaled.rb CHANGED
@@ -4,6 +4,8 @@ require "json-schema"
4
4
 
5
5
  require "journaled/engine"
6
6
  require "journaled/current"
7
+ require "journaled/errors"
8
+ require 'journaled/connection'
7
9
 
8
10
  module Journaled
9
11
  SUPPORTED_QUEUE_ADAPTERS = %w(delayed delayed_job good_job que).freeze
@@ -14,32 +16,36 @@ module Journaled
14
16
  mattr_accessor(:http_open_timeout) { 2 }
15
17
  mattr_accessor(:http_read_timeout) { 60 }
16
18
  mattr_accessor(:job_base_class_name) { 'ActiveJob::Base' }
19
+ mattr_accessor(:transactional_batching_enabled) { true }
17
20
 
18
- def development_or_test?
21
+ def self.development_or_test?
19
22
  %w(development test).include?(Rails.env)
20
23
  end
21
24
 
22
- def enabled?
23
- !['0', 'false', false, 'f', ''].include?(ENV.fetch('JOURNALED_ENABLED', !development_or_test?))
25
+ def self.enabled?
26
+ ['0', 'false', false, 'f', ''].exclude?(ENV.fetch('JOURNALED_ENABLED', !development_or_test?))
24
27
  end
25
28
 
26
- def schema_providers
29
+ def self.schema_providers
27
30
  @schema_providers ||= [Journaled::Engine, Rails]
28
31
  end
29
32
 
30
- def commit_hash
33
+ def self.commit_hash
31
34
  ENV.fetch('GIT_COMMIT')
32
35
  end
33
36
 
34
- def actor_uri
37
+ def self.actor_uri
35
38
  Journaled::ActorUriProvider.instance.actor_uri
36
39
  end
37
40
 
38
- def detect_queue_adapter!
39
- adapter = job_base_class_name.constantize.queue_adapter_name
40
- unless SUPPORTED_QUEUE_ADAPTERS.include?(adapter)
41
+ def self.queue_adapter
42
+ job_base_class_name.constantize.queue_adapter_name
43
+ end
44
+
45
+ def self.detect_queue_adapter!
46
+ unless SUPPORTED_QUEUE_ADAPTERS.include?(queue_adapter)
41
47
  raise <<~MSG
42
- Journaled has detected an unsupported ActiveJob queue adapter: `:#{adapter}`
48
+ Journaled has detected an unsupported ActiveJob queue adapter: `:#{queue_adapter}`
43
49
 
44
50
  Journaled jobs must be enqueued transactionally to your primary database.
45
51
 
@@ -53,7 +59,7 @@ module Journaled
53
59
 
54
60
  def self.tagged(**tags)
55
61
  existing_tags = Current.tags
56
- tag!(tags)
62
+ tag!(**tags)
57
63
  yield
58
64
  ensure
59
65
  Current.tags = existing_tags
@@ -62,6 +68,4 @@ module Journaled
62
68
  def self.tag!(**tags)
63
69
  Current.tags = Current.tags.merge(tags)
64
70
  end
65
-
66
- module_function :development_or_test?, :enabled?, :schema_providers, :commit_hash, :actor_uri, :detect_queue_adapter!
67
71
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: journaled
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.1.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jake Lipson
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2021-11-04 00:00:00.000000000 Z
14
+ date: 2022-08-23 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: activejob
@@ -87,18 +87,18 @@ dependencies:
87
87
  name: appraisal
88
88
  requirement: !ruby/object:Gem::Requirement
89
89
  requirements:
90
- - - "~>"
90
+ - - ">="
91
91
  - !ruby/object:Gem::Version
92
- version: 2.2.0
92
+ version: '0'
93
93
  type: :development
94
94
  prerelease: false
95
95
  version_requirements: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: 2.2.0
99
+ version: '0'
100
100
  - !ruby/object:Gem::Dependency
101
- name: rspec-rails
101
+ name: betterlint
102
102
  requirement: !ruby/object:Gem::Requirement
103
103
  requirements:
104
104
  - - ">="
@@ -126,19 +126,19 @@ dependencies:
126
126
  - !ruby/object:Gem::Version
127
127
  version: '0'
128
128
  - !ruby/object:Gem::Dependency
129
- name: rubocop-betterment
129
+ name: rspec-rails
130
130
  requirement: !ruby/object:Gem::Requirement
131
131
  requirements:
132
- - - "~>"
132
+ - - ">="
133
133
  - !ruby/object:Gem::Version
134
- version: '1.3'
134
+ version: '0'
135
135
  type: :development
136
136
  prerelease: false
137
137
  version_requirements: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - "~>"
139
+ - - ">="
140
140
  - !ruby/object:Gem::Version
141
- version: '1.3'
141
+ version: '0'
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: spring
144
144
  requirement: !ruby/object:Gem::Requirement
@@ -195,6 +195,20 @@ dependencies:
195
195
  - - ">="
196
196
  - !ruby/object:Gem::Version
197
197
  version: '0'
198
+ - !ruby/object:Gem::Dependency
199
+ name: uncruft
200
+ requirement: !ruby/object:Gem::Requirement
201
+ requirements:
202
+ - - ">="
203
+ - !ruby/object:Gem::Version
204
+ version: '0'
205
+ type: :development
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
198
212
  - !ruby/object:Gem::Dependency
199
213
  name: webmock
200
214
  requirement: !ruby/object:Gem::Requirement
@@ -241,56 +255,39 @@ files:
241
255
  - journaled_schemas/journaled/change.json
242
256
  - journaled_schemas/tagged_event.json
243
257
  - lib/journaled.rb
258
+ - lib/journaled/connection.rb
244
259
  - lib/journaled/current.rb
245
260
  - lib/journaled/engine.rb
261
+ - lib/journaled/errors.rb
246
262
  - lib/journaled/relation_change_protection.rb
247
263
  - lib/journaled/rspec.rb
264
+ - lib/journaled/transaction_ext.rb
248
265
  - lib/journaled/version.rb
249
- - spec/dummy/README.rdoc
250
- - spec/dummy/Rakefile
251
- - spec/dummy/bin/bundle
252
- - spec/dummy/bin/rails
253
- - spec/dummy/bin/rake
254
- - spec/dummy/config.ru
255
- - spec/dummy/config/application.rb
256
- - spec/dummy/config/boot.rb
257
- - spec/dummy/config/database.yml
258
- - spec/dummy/config/environment.rb
259
- - spec/dummy/config/environments/development.rb
260
- - spec/dummy/config/environments/test.rb
261
- - spec/dummy/config/initializers/backtrace_silencers.rb
262
- - spec/dummy/config/initializers/cookies_serializer.rb
263
- - spec/dummy/config/initializers/filter_parameter_logging.rb
264
- - spec/dummy/config/initializers/inflections.rb
265
- - spec/dummy/config/initializers/mime_types.rb
266
- - spec/dummy/config/initializers/session_store.rb
267
- - spec/dummy/config/initializers/wrap_parameters.rb
268
- - spec/dummy/config/locales/en.yml
269
- - spec/dummy/config/routes.rb
270
- - spec/dummy/config/secrets.yml
271
- - spec/dummy/db/schema.rb
272
- - spec/dummy/public/404.html
273
- - spec/dummy/public/422.html
274
- - spec/dummy/public/500.html
275
- - spec/dummy/public/favicon.ico
276
- - spec/jobs/journaled/delivery_job_spec.rb
277
- - spec/lib/journaled_spec.rb
278
- - spec/models/concerns/journaled/actor_spec.rb
279
- - spec/models/concerns/journaled/changes_spec.rb
280
- - spec/models/database_change_protection_spec.rb
281
- - spec/models/journaled/actor_uri_provider_spec.rb
282
- - spec/models/journaled/change_writer_spec.rb
283
- - spec/models/journaled/event_spec.rb
284
- - spec/models/journaled/json_schema_model/validator_spec.rb
285
- - spec/models/journaled/writer_spec.rb
286
- - spec/rails_helper.rb
287
- - spec/spec_helper.rb
288
- - spec/support/environment_spec_helper.rb
289
266
  homepage: http://github.com/Betterment/journaled
290
267
  licenses:
291
268
  - MIT
292
- metadata: {}
293
- post_install_message:
269
+ metadata:
270
+ rubygems_mfa_required: 'true'
271
+ post_install_message: |+
272
+ ============================
273
+ NOTE FOR UPGRADING JOURNALED
274
+ ============================
275
+
276
+ If you are upgrading from an older `journaled` version, please be sure to
277
+ increment only ONE major version at a time.
278
+
279
+ ⚠️ IF YOU ARE UPGRADING FROM 3.1 OR EARLIER, you should NOT USE THIS VERSION. ⚠️
280
+
281
+ Instead, install a version of the gem that is backwards compatible with your
282
+ app's currently-enqueued journaled jobs:
283
+
284
+ gem 'journaled', '~> 4.2.0' # upgrading from 3.0-3.1
285
+ gem 'journaled', '~> 3.1.0' # upgrading from 2.0-2.5
286
+
287
+ For additional upgrade instructions (e.g. how to handle a few BREAKING CHANGES
288
+ to environment variables), please see the README:
289
+ https://github.com/Betterment/journaled/blob/v5.0.0/README.md#upgrades
290
+
294
291
  rdoc_options: []
295
292
  require_paths:
296
293
  - lib
@@ -298,55 +295,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
298
295
  requirements:
299
296
  - - ">="
300
297
  - !ruby/object:Gem::Version
301
- version: '0'
298
+ version: '2.6'
302
299
  required_rubygems_version: !ruby/object:Gem::Requirement
303
300
  requirements:
304
301
  - - ">="
305
302
  - !ruby/object:Gem::Version
306
303
  version: '0'
307
304
  requirements: []
308
- rubygems_version: 3.0.1
305
+ rubygems_version: 3.3.5
309
306
  signing_key:
310
307
  specification_version: 4
311
308
  summary: Journaling for Betterment apps.
312
- test_files:
313
- - spec/spec_helper.rb
314
- - spec/dummy/bin/rake
315
- - spec/dummy/bin/bundle
316
- - spec/dummy/bin/rails
317
- - spec/dummy/config/secrets.yml
318
- - spec/dummy/config/routes.rb
319
- - spec/dummy/config/locales/en.yml
320
- - spec/dummy/config/environments/development.rb
321
- - spec/dummy/config/environments/test.rb
322
- - spec/dummy/config/environment.rb
323
- - spec/dummy/config/application.rb
324
- - spec/dummy/config/database.yml
325
- - spec/dummy/config/boot.rb
326
- - spec/dummy/config/initializers/backtrace_silencers.rb
327
- - spec/dummy/config/initializers/mime_types.rb
328
- - spec/dummy/config/initializers/filter_parameter_logging.rb
329
- - spec/dummy/config/initializers/session_store.rb
330
- - spec/dummy/config/initializers/wrap_parameters.rb
331
- - spec/dummy/config/initializers/cookies_serializer.rb
332
- - spec/dummy/config/initializers/inflections.rb
333
- - spec/dummy/config.ru
334
- - spec/dummy/Rakefile
335
- - spec/dummy/public/favicon.ico
336
- - spec/dummy/public/422.html
337
- - spec/dummy/public/500.html
338
- - spec/dummy/public/404.html
339
- - spec/dummy/db/schema.rb
340
- - spec/dummy/README.rdoc
341
- - spec/models/journaled/json_schema_model/validator_spec.rb
342
- - spec/models/journaled/actor_uri_provider_spec.rb
343
- - spec/models/journaled/event_spec.rb
344
- - spec/models/journaled/change_writer_spec.rb
345
- - spec/models/journaled/writer_spec.rb
346
- - spec/models/database_change_protection_spec.rb
347
- - spec/models/concerns/journaled/changes_spec.rb
348
- - spec/models/concerns/journaled/actor_spec.rb
349
- - spec/support/environment_spec_helper.rb
350
- - spec/lib/journaled_spec.rb
351
- - spec/jobs/journaled/delivery_job_spec.rb
352
- - spec/rails_helper.rb
309
+ test_files: []
@@ -1,28 +0,0 @@
1
- == README
2
-
3
- This README would normally document whatever steps are necessary to get the
4
- application up and running.
5
-
6
- Things you may want to cover:
7
-
8
- * Ruby version
9
-
10
- * System dependencies
11
-
12
- * Configuration
13
-
14
- * Database creation
15
-
16
- * Database initialization
17
-
18
- * How to run the test suite
19
-
20
- * Services (job queues, cache servers, search engines, etc.)
21
-
22
- * Deployment instructions
23
-
24
- * ...
25
-
26
-
27
- Please feel free to use a different markup language if you do not plan to run
28
- <tt>rake doc:app</tt>.
data/spec/dummy/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- # Add your own tasks in files placed in lib/tasks ending in .rake,
2
- # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
-
4
- require File.expand_path('config/application', __dir__)
5
-
6
- Rails.application.load_tasks
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
3
- load Gem.bin_path('bundler', 'bundle')
data/spec/dummy/bin/rails DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- APP_PATH = File.expand_path('../config/application', __dir__)
3
- require_relative '../config/boot'
4
- require 'rails/commands'
data/spec/dummy/bin/rake DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require_relative '../config/boot'
3
- require 'rake'
4
- Rake.application.run
@@ -1,25 +0,0 @@
1
- require File.expand_path('boot', __dir__)
2
-
3
- require "active_record/railtie"
4
- require "active_job/railtie"
5
- require "active_model/railtie"
6
- require "action_controller/railtie"
7
-
8
- Bundler.require(*Rails.groups)
9
- require "journaled"
10
-
11
- module Dummy
12
- class Application < Rails::Application
13
- # Settings in config/environments/* take precedence over those specified here.
14
- # Application configuration should go into files in config/initializers
15
- # -- all .rb files in that directory are automatically loaded.
16
-
17
- # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
18
- # Run "rake -D time" for a list of tasks for finding time zone names. Default is UTC.
19
- # config.time_zone = 'Central Time (US & Canada)'
20
-
21
- # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
22
- # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
23
- # config.i18n.default_locale = :de
24
- end
25
- end
@@ -1,5 +0,0 @@
1
- # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__)
3
-
4
- require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
- $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__)
@@ -1,6 +0,0 @@
1
- development:
2
- adapter: sqlite3
3
- database: ":memory:"
4
- test:
5
- adapter: sqlite3
6
- database: ":memory:"
@@ -1,5 +0,0 @@
1
- # Load the Rails application.
2
- require File.expand_path('application', __dir__)
3
-
4
- # Initialize the Rails application.
5
- Rails.application.initialize!
@@ -1,24 +0,0 @@
1
- Rails.application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb.
3
-
4
- # In the development environment your application's code is reloaded on
5
- # every request. This slows down response time but is perfect for development
6
- # since you don't have to restart the web server when you make code changes.
7
- config.cache_classes = false
8
-
9
- # Do not eager load code on boot.
10
- config.eager_load = false
11
-
12
- # Show full error reports and disable caching.
13
- config.consider_all_requests_local = true
14
- config.action_controller.perform_caching = false
15
-
16
- # Print deprecation notices to the Rails logger.
17
- config.active_support.deprecation = :log
18
-
19
- # Raise an error on page load if there are pending migrations.
20
- config.active_record.migration_error = :page_load
21
-
22
- # Raises error for missing translations
23
- # config.action_view.raise_on_missing_translations = true
24
- end
@@ -1,37 +0,0 @@
1
- Rails.application.configure do
2
- # Settings specified here will take precedence over those in config/application.rb.
3
-
4
- # The test environment is used exclusively to run your application's
5
- # test suite. You never need to work with it otherwise. Remember that
6
- # your test database is "scratch space" for the test suite and is wiped
7
- # and recreated between test runs. Don't rely on the data there!
8
- config.cache_classes = true
9
-
10
- # Do not eager load code on boot. This avoids loading your whole application
11
- # just for the purpose of running a single test. If you are using a tool that
12
- # preloads Rails for running tests, you may have to set it to true.
13
- config.eager_load = false
14
-
15
- # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_assets = true
17
- config.static_cache_control = 'public, max-age=3600'
18
-
19
- # Show full error reports and disable caching.
20
- config.consider_all_requests_local = true
21
- config.action_controller.perform_caching = false
22
-
23
- # Raise exceptions instead of rendering exception templates.
24
- config.action_dispatch.show_exceptions = false
25
-
26
- # Disable request forgery protection in test environment.
27
- config.action_controller.allow_forgery_protection = false
28
-
29
- # Print deprecation notices to the stderr.
30
- config.active_support.deprecation = :stderr
31
-
32
- # Raises error for missing translations
33
- # config.action_view.raise_on_missing_translations = true
34
-
35
- # Use ActiveJob test adapter
36
- config.active_job.queue_adapter = :test
37
- end
@@ -1,7 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
- # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
-
6
- # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
- # Rails.backtrace_cleaner.remove_silencers!
@@ -1,3 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- Rails.application.config.action_dispatch.cookies_serializer = :json
@@ -1,4 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Configure sensitive parameters which will be filtered from the log file.
4
- Rails.application.config.filter_parameters += [:password]
@@ -1,16 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new inflection rules using the following format. Inflections
4
- # are locale specific, and you may define rules for as many different
5
- # locales as you wish. All of these examples are active by default:
6
- # ActiveSupport::Inflector.inflections(:en) do |inflect|
7
- # inflect.plural /^(ox)$/i, '\1en'
8
- # inflect.singular /^(ox)en/i, '\1'
9
- # inflect.irregular 'person', 'people'
10
- # inflect.uncountable %w( fish sheep )
11
- # end
12
-
13
- # These inflection rules are supported but not enabled by default:
14
- # ActiveSupport::Inflector.inflections(:en) do |inflect|
15
- # inflect.acronym 'RESTful'
16
- # end
@@ -1,4 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # Add new mime types for use in respond_to blocks:
4
- # Mime::Type.register "text/richtext", :rtf
@@ -1,3 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- Rails.application.config.session_store :cookie_store, key: '_dummy_session'
@@ -1,14 +0,0 @@
1
- # Be sure to restart your server when you modify this file.
2
-
3
- # This file contains settings for ActionController::ParamsWrapper which
4
- # is enabled by default.
5
-
6
- # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
- ActiveSupport.on_load(:action_controller) do
8
- wrap_parameters format: [:json] if respond_to?(:wrap_parameters)
9
- end
10
-
11
- # To enable root element in JSON for ActiveRecord objects.
12
- # ActiveSupport.on_load(:active_record) do
13
- # self.include_root_in_json = true
14
- # end