human_attribute_values 1.0.1 → 1.1.1

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 (64) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +18 -0
  3. data/README.md +5 -5
  4. data/lib/human_attribute_values/human_attribute_value.rb +14 -12
  5. data/lib/human_attribute_values/version.rb +3 -1
  6. data/lib/human_attribute_values.rb +2 -0
  7. data/test/active_model_test.rb +62 -0
  8. data/test/{human_attribute_values_test.rb → active_record_test.rb} +14 -14
  9. data/test/dummy/Rakefile +3 -1
  10. data/test/dummy/app/controllers/application_controller.rb +2 -0
  11. data/test/dummy/app/helpers/application_helper.rb +2 -0
  12. data/test/dummy/app/models/active_model_child.rb +4 -0
  13. data/test/dummy/app/models/active_model_grand_child.rb +4 -0
  14. data/test/dummy/app/models/active_model_model.rb +7 -0
  15. data/test/dummy/app/models/active_model_parent.rb +7 -0
  16. data/test/dummy/app/models/active_model_sibling.rb +4 -0
  17. data/test/dummy/app/models/boolean_model.rb +2 -0
  18. data/test/dummy/app/models/child.rb +2 -0
  19. data/test/dummy/app/models/enum_model.rb +2 -0
  20. data/test/dummy/app/models/grand_child.rb +2 -0
  21. data/test/dummy/app/models/lexicon.rb +3 -1
  22. data/test/dummy/app/models/numeric_model.rb +2 -0
  23. data/test/dummy/app/models/parent.rb +2 -0
  24. data/test/dummy/app/models/sibling.rb +2 -0
  25. data/test/dummy/app/models/the_answer.rb +3 -0
  26. data/test/dummy/config/application.rb +5 -3
  27. data/test/dummy/config/boot.rb +4 -2
  28. data/test/dummy/config/environment.rb +3 -1
  29. data/test/dummy/config/environments/development.rb +2 -0
  30. data/test/dummy/config/environments/production.rb +2 -0
  31. data/test/dummy/config/environments/test.rb +4 -2
  32. data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
  33. data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  34. data/test/dummy/config/initializers/inflections.rb +2 -0
  35. data/test/dummy/config/initializers/mime_types.rb +2 -0
  36. data/test/dummy/config/initializers/secret_token.rb +2 -0
  37. data/test/dummy/config/initializers/session_store.rb +2 -0
  38. data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
  39. data/test/dummy/config/locales/en.yml +32 -1
  40. data/test/dummy/config/routes.rb +2 -0
  41. data/test/dummy/config.ru +3 -1
  42. data/test/dummy/db/development.sqlite3 +0 -0
  43. data/test/dummy/db/migrate/20150127220502_create_the_answers.rb +5 -1
  44. data/test/dummy/db/migrate/20150131153819_create_parents.rb +4 -1
  45. data/test/dummy/db/migrate/20150131161322_create_boolean_models.rb +4 -1
  46. data/test/dummy/db/migrate/20150131162551_create_numeric_models.rb +4 -1
  47. data/test/dummy/db/migrate/20150131164609_create_lexicons.rb +4 -3
  48. data/test/dummy/db/migrate/20150131170613_create_enum_models.rb +4 -1
  49. data/test/dummy/db/schema.rb +28 -30
  50. data/test/dummy/db/test.sqlite3 +0 -0
  51. data/test/dummy/log/development.log +364 -0
  52. data/test/dummy/log/test.log +4861 -200
  53. data/test/dummy/test/models/boolean_model_test.rb +2 -0
  54. data/test/dummy/test/models/child_test.rb +2 -0
  55. data/test/dummy/test/models/enum_model_test.rb +2 -0
  56. data/test/dummy/test/models/grand_child_test.rb +2 -0
  57. data/test/dummy/test/models/lexicon_test.rb +2 -0
  58. data/test/dummy/test/models/numeric_model_test.rb +2 -0
  59. data/test/dummy/test/models/sibling_test.rb +2 -0
  60. data/test/dummy/test/models/the_answer_test.rb +2 -0
  61. data/test/test_helper.rb +6 -4
  62. metadata +99 -67
  63. data/Rakefile +0 -32
  64. data/lib/tasks/human_attribute_value_tasks.rake +0 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 5b511814d6b8edff159b9e8acd5fb5fcad20013b
4
- data.tar.gz: 5351303a71b054c005b8baa2b594b740374977c1
2
+ SHA256:
3
+ metadata.gz: e82c7256f6c4b632e16bae01cd454324a95573cdd7a95fc14bb3ad415e592094
4
+ data.tar.gz: 667e49801a7d7c3c096e3b6b51ccf47897d503c319c9297926c7e96fb39ee8df
5
5
  SHA512:
6
- metadata.gz: a801ec88c14d57a13e3374d2eba50eed81a05cb1832c2882804f0f3b7f0f1a553f411c332e5d579a910146738ee929ca5a5121c704deb49abf4c8ec22b69d2ed
7
- data.tar.gz: 62568afd93995bed07c524387038b543c1c1d98aca96d235f81fba6dea11207506dc80b6dc9b703c0825e59feac43300bf6980b11c2994be732b63131ae6fc02
6
+ metadata.gz: 8285916ea63486f87af3a94dba83eac908a98c29fcbfe3400810ba5dc1960ef4865f7ecb38299106865e13b422c905f2e908df21d39e1b4a51db4e19442d92a0
7
+ data.tar.gz: 83bccfa4da4094ce37bcad422390d53d9cab425f79c2f03a0aeaa252b7f139af9162f0c7cb27069acacd8a2a6af064ded063a22f91cc41015a7612b778ace56f
data/CHANGELOG.md ADDED
@@ -0,0 +1,18 @@
1
+ # Changelog
2
+ All notable changes to this project will be documented in this file.
3
+
4
+ Please keep to the changelog format described on [keepachangelog.com](http://keepachangelog.com).
5
+
6
+ This project adheres to [Semantic Versioning](http://semver.org/).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Added
11
+ - Added a changelog.
12
+ - Also include HumanAttributeValues into ActiveModel::Model.
13
+
14
+ ### Changed
15
+ - Instead of aborting and returning '' for associations of ActiveRecord::Base the lookup now proceeds with `assoc_attribute.to_s` as key (not meant to be done anyways).
16
+
17
+ ### Removed
18
+ - Drop support for rails 4.1.8, including HumanAttributeValues into ActiveModel::Model does not add class method.
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
  [![Build Status](https://travis-ci.org/RST-J/human_attribute_values.svg?branch=master)](https://travis-ci.org/RST-J/human_attribute_values)
3
3
  [![Gem Version](https://badge.fury.io/rb/human_attribute_values.svg)](http://badge.fury.io/rb/human_attribute_values)
4
4
 
5
- human_attribute_values is a Rails plugin which provides translation for model attribute values using the Rails I18n API (analogously to [human_attribute_name](http://apidock.com/rails/v4.1.8/ActiveModel/Translation/human_attribute_name)).
5
+ human_attribute_values is a Rails plugin which provides translation for model attribute values using the Rails I18n API (analogously to [human_attribute_name](https://apidock.com/rails/v4.2.7/ActiveModel/Translation/human_attribute_name)).
6
6
 
7
7
  ## Installation
8
8
  ```
@@ -10,12 +10,12 @@ gem install human_attribute_values
10
10
  ```
11
11
 
12
12
  ## Supported versions
13
- * Rails: >= 4.1.8
14
- * Ruby: MRI >= 2.0 and Rubinius (JRuby should also work though)
13
+ * Rails: >= 4.2.10
14
+ * Ruby: MRI >= 2.0
15
15
 
16
16
  ## Usage
17
- The gem defines ``human_attribute_value`` on each model, both as instance and as class method.
18
- To translate a value it uses the I18n API. The translations are looked up from the current locale file under the key ``'activerecord.values.model_name.attribute_name.value'`` by default.
17
+ The gem defines ``human_attribute_value`` as instance and class method on ``ActiveRecord::Base`` and ``ActiveModel::Model``.
18
+ To translate a value it uses the I18n API. The translations are looked up from the current locale file under the key ``'activerecord.values.model_name.attribute_name.value'`` respectively ``'activemodel.values.model_name.attribute_name.value'`` by default.
19
19
 
20
20
  Locale:
21
21
  ```yml
@@ -1,25 +1,25 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module HumanAttributeValues
2
4
  extend ActiveSupport::Concern
3
5
 
4
- included {}
5
-
6
6
  def human_attribute_value(attribute, options = {})
7
- value = self.send attribute
7
+ value = public_send(attribute)
8
8
  self.class.human_attribute_value(attribute, value, options)
9
9
  end
10
10
 
11
11
  module ClassMethods
12
12
  def human_attribute_value(attribute, value, options = {})
13
- return '' if value.nil?
14
- # do not translate values of associations
15
- return '' if reflect_on_all_associations.any? { |assoc| assoc.name == attribute.to_sym }
16
- options = { count: 1 }.merge!(options)
17
- parts = attribute.to_s.split(".")
13
+ return '' if value.nil? || value == ''
14
+ options = {count: 1}.merge!(options)
15
+ parts = attribute.to_s.split('.')
18
16
  attribute = parts.pop
19
- namespace = parts.join("/") unless parts.empty?
20
- value_scope = "#{self.i18n_scope}.values"
17
+ namespace = parts.join('/') unless parts.empty?
18
+ value_scope = "#{i18n_scope}.values"
19
+
21
20
  # dots would mean a new nesting level in YAML files
22
- key = value.is_a?(Numeric) ? value.to_s.gsub('.', '_') : value
21
+ key = value.is_a?(Numeric) ? value.to_s.tr('.', '_') : value
22
+
23
23
  if namespace
24
24
  defaults = lookup_ancestors.map do |klass|
25
25
  :"#{value_scope}.#{klass.model_name.i18n_key}/#{namespace}.#{attribute}.#{key}"
@@ -30,14 +30,16 @@ module HumanAttributeValues
30
30
  :"#{value_scope}.#{klass.model_name.i18n_key}.#{attribute}.#{key}"
31
31
  end
32
32
  end
33
+
33
34
  defaults << :"values.#{attribute}.#{key}"
34
35
  defaults << options.delete(:default) if options[:default]
35
36
  defaults << value.to_s
37
+
36
38
  options[:default] = defaults
37
39
  I18n.translate(defaults.shift, options)
38
40
  end
39
41
  end
40
42
  end
41
43
 
42
-
43
44
  ActiveRecord::Base.send :include, HumanAttributeValues
45
+ ActiveModel::Model.send :include, HumanAttributeValues
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module HumanAttributeValues
2
- VERSION = "1.0.1"
4
+ VERSION = "1.1.1"
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'human_attribute_values/human_attribute_value'
2
4
 
3
5
  module HumanAttributeValues
@@ -0,0 +1,62 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class ActiveModelTest < ActiveSupport::TestCase
6
+ test 'value with count config' do
7
+ instance = ActiveModelModel.new
8
+ instance.string_attr = 'goose'
9
+ assert_equal('one goose', instance.human_attribute_value(:string_attr), 'should use the mapping for count option 1 by default')
10
+ assert_equal('one goose', instance.human_attribute_value(:string_attr, count: 1), 'should use the mapping for count option 1 when explicitly specified')
11
+ assert_equal('some geese', instance.human_attribute_value(:string_attr, count: 2), 'should use the mapping for count other if count is not 1')
12
+ end
13
+
14
+ test 'value without count config' do
15
+ instance = ActiveModelModel.new
16
+ instance.integer_attr = 2
17
+ assert_equal('odd prime', instance.human_attribute_value(:integer_attr), 'should successfully translate without a count option')
18
+ assert_equal('odd prime', instance.human_attribute_value(:integer_attr, count: 1), 'should successfully translate with count option 1')
19
+ assert_equal('odd prime', instance.human_attribute_value(:integer_attr, count: 2), 'should successfully translate with count option 2')
20
+ end
21
+
22
+ test 'hierarchy resolution for STI models' do
23
+ grandchild = ActiveModelGrandChild.new
24
+ grandchild.inherited_attr = :one
25
+ assert_equal('active model grandchild value 1', grandchild.human_attribute_value(:inherited_attr), 'should use value for the actual class if present')
26
+
27
+ grandchild.inherited_attr = :two
28
+ assert_equal('active model child value 2', grandchild.human_attribute_value(:inherited_attr), 'should use value for the direct ancestor if it has a mapping')
29
+
30
+ grandchild.inherited_attr = :three
31
+ assert_equal('active model parent value 3', grandchild.human_attribute_value(:inherited_attr), 'should use value for the first parent class which has a mapping for the value')
32
+
33
+ grandchild.inherited_attr = :four
34
+ assert_equal('four', grandchild.human_attribute_value(:inherited_attr), 'should yield the value if there is no mapping in the type hierarchy')
35
+ end
36
+
37
+ test 'resolution of boolean values' do
38
+ instance = ActiveModelModel.new
39
+ instance.boolean_attr = false
40
+ assert_equal('This is false', instance.human_attribute_value(:boolean_attr), 'should translate boolean false')
41
+
42
+ instance.boolean_attr = true
43
+ assert_equal('true', instance.human_attribute_value(:boolean_attr), 'should return the stringified boolean if there is no mapping')
44
+ end
45
+
46
+ test 'resolution for numeric values' do
47
+ instance = ActiveModelModel.new
48
+ instance.decimal_attr = '2.71'.to_d
49
+ instance.float_attr = 3.14
50
+ instance.integer_attr = 9001
51
+ assert_equal('e', instance.human_attribute_value(:decimal_attr), 'should translate a decimal')
52
+ assert_equal('Pi', instance.human_attribute_value(:float_attr), 'should translate a float')
53
+ assert_equal('over 9000', instance.human_attribute_value(:integer_attr), 'should translate an integer')
54
+
55
+ instance.decimal_attr = '9.99'.to_d
56
+ instance.float_attr = 1.5
57
+ instance.integer_attr = 1001
58
+ assert_equal('9.99', instance.human_attribute_value(:decimal_attr), 'should return the stringified decimal if there is no mapping')
59
+ assert_equal('1.5', instance.human_attribute_value(:float_attr), 'should return the stringified float if there is no mapping')
60
+ assert_equal('1001', instance.human_attribute_value(:integer_attr), 'should return the stringified integer if there is no mapping')
61
+ end
62
+ end
@@ -1,25 +1,23 @@
1
- require 'test_helper'
1
+ # frozen_string_literal: true
2
2
 
3
- class HumanAttributeValuesTest < ActiveSupport::TestCase
4
- test "truth" do
5
- assert_kind_of Module, HumanAttributeValues
6
- end
3
+ require 'test_helper'
7
4
 
8
- test "attribute with count config" do
5
+ class ActiveRecordTest < ActiveSupport::TestCase
6
+ test 'attribute with count config' do
9
7
  answer = TheAnswer.new(ultimate_truth: '42')
10
8
  assert_equal('was calculated by Deep Thought', answer.human_attribute_value(:ultimate_truth), 'should use the mapping for count option 1 by default')
11
9
  assert_equal('was calculated by Deep Thought', answer.human_attribute_value(:ultimate_truth, count: 1), 'should use the mapping for count option 1 when explicitly specified')
12
10
  assert_equal('there is only one ultimate answer', answer.human_attribute_value(:ultimate_truth, count: 2), 'should use the mapping for count other if count is not 1')
13
11
  end
14
12
 
15
- test "attribute without count config" do
13
+ test 'attribute without count config' do
16
14
  answer = TheAnswer.new(ultimate_truth: 'wissen ist Nacht')
17
15
  assert_equal('coined by Prof. Dr. Abdul Nachtigaller', answer.human_attribute_value(:ultimate_truth), 'should successfully translate without a count option')
18
16
  assert_equal('coined by Prof. Dr. Abdul Nachtigaller', answer.human_attribute_value(:ultimate_truth, count: 1), 'should successfully translate with count option 1')
19
17
  assert_equal('coined by Prof. Dr. Abdul Nachtigaller', answer.human_attribute_value(:ultimate_truth, count: 2), 'should successfully translate with count option 2')
20
18
  end
21
19
 
22
- test "hierarchy resolution for STI models" do
20
+ test 'hierarchy resolution for STI models' do
23
21
  grandchild = GrandChild.new(field: '1')
24
22
  assert_equal('grandchild value 1', grandchild.human_attribute_value(:field), 'should use value for the actual class if present')
25
23
 
@@ -33,7 +31,7 @@ class HumanAttributeValuesTest < ActiveSupport::TestCase
33
31
  assert_equal('4', grandchild.human_attribute_value(:field), 'should yield the value if there is no mapping in the type hierarchy')
34
32
  end
35
33
 
36
- test "resolution of boolean values" do
34
+ test 'resolution of boolean values' do
37
35
  boolean_model = BooleanModel.new(boolean_field: true)
38
36
  assert_equal('This is true', boolean_model.human_attribute_value(:boolean_field), 'should translate boolean true')
39
37
 
@@ -41,7 +39,7 @@ class HumanAttributeValuesTest < ActiveSupport::TestCase
41
39
  assert_equal('false', boolean_model.human_attribute_value(:boolean_field), 'should return the stringified boolean if there is no mapping')
42
40
  end
43
41
 
44
- test "resolution for numeric values" do
42
+ test 'resolution for numeric values' do
45
43
  numeric_model = NumericModel.new(integer_field: 1, decimal_field: 1.0)
46
44
  assert_equal('One', numeric_model.human_attribute_value(:integer_field), 'should translate an integer')
47
45
  assert_equal('One point zero', numeric_model.human_attribute_value(:decimal_field), 'should translate a decimal')
@@ -52,12 +50,14 @@ class HumanAttributeValuesTest < ActiveSupport::TestCase
52
50
  assert_equal('2.0', numeric_model.human_attribute_value(:decimal_field), 'should return the stringified decimal if there is no mapping')
53
51
  end
54
52
 
55
- test "resolution for associations" do
56
- lexicon = Lexicon.new(the_answer: TheAnswer.new)
57
- assert_equal('', lexicon.human_attribute_value(:the_answer), 'should return empty string for associations')
53
+ test 'resolution for associations' do
54
+ lexicon = Lexicon.new
55
+ the_answer = TheAnswer.new(lexicon: lexicon)
56
+ assert_equal(lexicon.to_s, the_answer.human_attribute_value(:lexicon), 'should return .to_s for associations 1')
57
+ assert_equal(lexicon.the_answers.to_s, lexicon.human_attribute_value(:the_answers), 'should return .to_s for associations 2')
58
58
  end
59
59
 
60
- test "resolution for enums" do
60
+ test 'resolution for enums' do
61
61
  enum_model = EnumModel.new(status: :dead_and_alive)
62
62
  assert_equal('The box has not been opened yet', enum_model.human_attribute_value(:status), 'should use the enumerated values for lookup')
63
63
 
data/test/dummy/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Add your own tasks in files placed in lib/tasks ending in .rake,
2
4
  # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
5
 
4
- require File.expand_path('../config/application', __FILE__)
6
+ require File.expand_path('config/application', __dir__)
5
7
 
6
8
  Dummy::Application.load_tasks
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ApplicationController < ActionController::Base
2
4
  # Prevent CSRF attacks by raising an exception.
3
5
  # For APIs, you may want to use :null_session instead.
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ApplicationHelper
2
4
  end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ActiveModelChild < ActiveModelParent
4
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ActiveModelGrandChild < ActiveModelChild
4
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ActiveModelModel
4
+ include ActiveModel::Model
5
+
6
+ attr_accessor :boolean_attr, :decimal_attr, :integer_attr, :float_attr, :string_attr
7
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ActiveModelParent
4
+ include ActiveModel::Model
5
+
6
+ attr_accessor :inherited_attr
7
+ end
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+
3
+ class ActiveModelSibling < ActiveModelParent
4
+ end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class BooleanModel < ActiveRecord::Base
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Child < Parent
2
4
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class EnumModel < ActiveRecord::Base
2
4
  enum status: {dead_and_alive: 0, alive: 1, dead: 2}
3
5
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class GrandChild < Child
2
4
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Lexicon < ActiveRecord::Base
2
- belongs_to :the_answer
4
+ has_many :the_answers
3
5
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class NumericModel < ActiveRecord::Base
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Parent < ActiveRecord::Base
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Sibling < Parent
2
4
  end
@@ -1,2 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class TheAnswer < ActiveRecord::Base
4
+ belongs_to :lexicon
2
5
  end
@@ -1,9 +1,11 @@
1
- require File.expand_path('../boot', __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('boot', __dir__)
2
4
 
3
5
  require 'rails/all'
4
6
 
5
7
  Bundler.require(*Rails.groups)
6
- require "human_attribute_values"
8
+ require 'human_attribute_values'
7
9
 
8
10
  module Dummy
9
11
  class Application < Rails::Application
@@ -18,6 +20,6 @@ module Dummy
18
20
  # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
19
21
  # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
20
22
  # config.i18n.default_locale = :de
23
+ config.active_record.sqlite3.represent_boolean_as_integer = true if config.active_record.sqlite3.respond_to?(:represent_boolean_as_integer)
21
24
  end
22
25
  end
23
-
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../../Gemfile', __FILE__)
4
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__)
3
5
 
4
6
  require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
5
- $LOAD_PATH.unshift File.expand_path('../../../../lib', __FILE__)
7
+ $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__)
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Load the Rails application.
2
- require File.expand_path('../application', __FILE__)
4
+ require File.expand_path('application', __dir__)
3
5
 
4
6
  # Initialize the Rails application.
5
7
  Dummy::Application.initialize!
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Dummy::Application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Dummy::Application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Dummy::Application.configure do
2
4
  # Settings specified here will take precedence over those in config/application.rb.
3
5
 
@@ -13,8 +15,8 @@ Dummy::Application.configure do
13
15
  config.eager_load = false
14
16
 
15
17
  # Configure static asset server for tests with Cache-Control for performance.
16
- config.serve_static_files = true
17
- config.static_cache_control = "public, max-age=3600"
18
+ config.serve_static_files = true
19
+ config.static_cache_control = 'public, max-age=3600'
18
20
 
19
21
  # Show full error reports and disable caching.
20
22
  config.consider_all_requests_local = true
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Configure sensitive parameters which will be filtered from the log file.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new inflection rules using the following format. Inflections
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Add new mime types for use in respond_to blocks:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # Your secret key is used for verifying the integrity of signed cookies.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  Dummy::Application.config.session_store :cookie_store, key: '_dummy_session'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # Be sure to restart your server when you modify this file.
2
4
 
3
5
  # This file contains settings for ActionController::ParamsWrapper which
@@ -1,5 +1,36 @@
1
1
  en:
2
- activerecord:
2
+ activemodel:
3
+ values:
4
+ active_model_model:
5
+ boolean_attr:
6
+ 'false': 'This is false'
7
+ decimal_attr:
8
+ '2_71': e
9
+ float_attr:
10
+ '3_14': Pi
11
+ integer_attr:
12
+ '2': odd prime
13
+ '9001': 'over 9000'
14
+ string_attr:
15
+ 'goose':
16
+ one: one goose
17
+ other: some geese
18
+ active_model_parent:
19
+ inherited_attr:
20
+ one: 'active model parent value 1'
21
+ two: 'active model parent value 2'
22
+ three: 'active model parent value 3'
23
+ active_model_child:
24
+ inherited_attr:
25
+ one: 'active model child value 1'
26
+ two: 'active model child value 2'
27
+ active_model_sibling:
28
+ inherited_attr:
29
+ four: 'active model sibling value 4'
30
+ active_model_grand_child:
31
+ inherited_attr:
32
+ one: 'active model grandchild value 1'
33
+ activerecord:
3
34
  models:
4
35
  the_answer: The ultimate Answer
5
36
  attributes:
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  Dummy::Application.routes.draw do
2
4
  # The priority is based upon order of creation: first created -> highest priority.
3
5
  # See how all your routes lay out with "rake routes".
data/test/dummy/config.ru CHANGED
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # This file is used by Rack-based servers to start the application.
2
4
 
3
- require ::File.expand_path('../config/environment', __FILE__)
5
+ require ::File.expand_path('config/environment', __dir__)
4
6
  run Rails.application
Binary file
@@ -1,7 +1,11 @@
1
- class CreateTheAnswers < ActiveRecord::Migration
1
+ superclass = ActiveRecord::Migration
2
+ superclass = ActiveRecord::Migration[5.1] if superclass.respond_to?(:[])
3
+
4
+ class CreateTheAnswers < superclass
2
5
  def change
3
6
  create_table :the_answers do |t|
4
7
  t.string :ultimate_truth
8
+ t.references :lexicon, index: true
5
9
 
6
10
  t.timestamps
7
11
  end
@@ -1,4 +1,7 @@
1
- class CreateParents < ActiveRecord::Migration
1
+ superclass = ActiveRecord::Migration
2
+ superclass = ActiveRecord::Migration[5.1] if superclass.respond_to?(:[])
3
+
4
+ class CreateParents < superclass
2
5
  def change
3
6
  create_table :parents do |t|
4
7
  t.string :type
@@ -1,4 +1,7 @@
1
- class CreateBooleanModels < ActiveRecord::Migration
1
+ superclass = ActiveRecord::Migration
2
+ superclass = ActiveRecord::Migration[5.1] if superclass.respond_to?(:[])
3
+
4
+ class CreateBooleanModels < superclass
2
5
  def change
3
6
  create_table :boolean_models do |t|
4
7
  t.boolean :boolean_field
@@ -1,4 +1,7 @@
1
- class CreateNumericModels < ActiveRecord::Migration
1
+ superclass = ActiveRecord::Migration
2
+ superclass = ActiveRecord::Migration[5.1] if superclass.respond_to?(:[])
3
+
4
+ class CreateNumericModels < superclass
2
5
  def change
3
6
  create_table :numeric_models do |t|
4
7
  t.integer :integer_field
@@ -1,8 +1,9 @@
1
- class CreateLexicons < ActiveRecord::Migration
1
+ superclass = ActiveRecord::Migration
2
+ superclass = ActiveRecord::Migration[5.1] if superclass.respond_to?(:[])
3
+
4
+ class CreateLexicons < superclass
2
5
  def change
3
6
  create_table :lexicons do |t|
4
- t.references :the_answer, index: true
5
-
6
7
  t.timestamps
7
8
  end
8
9
  end
@@ -1,4 +1,7 @@
1
- class CreateEnumModels < ActiveRecord::Migration
1
+ superclass = ActiveRecord::Migration
2
+ superclass = ActiveRecord::Migration[5.1] if superclass.respond_to?(:[])
3
+
4
+ class CreateEnumModels < superclass
2
5
  def change
3
6
  create_table :enum_models do |t|
4
7
  t.integer :status