state_machines-activerecord 0.8.0 → 0.100.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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +20 -7
  4. data/lib/state_machines/integrations/active_record/locale.rb +12 -9
  5. data/lib/state_machines/integrations/active_record/version.rb +3 -1
  6. data/lib/state_machines/integrations/active_record.rb +88 -175
  7. data/lib/state_machines-activerecord.rb +2 -0
  8. metadata +36 -154
  9. data/.gitignore +0 -22
  10. data/.travis.yml +0 -19
  11. data/Appraisals +0 -34
  12. data/Gemfile +0 -6
  13. data/Rakefile +0 -9
  14. data/gemfiles/active_record_5.1.gemfile +0 -14
  15. data/gemfiles/active_record_5.2.gemfile +0 -14
  16. data/gemfiles/active_record_6.0.gemfile +0 -14
  17. data/gemfiles/active_record_6.1.gemfile +0 -14
  18. data/gemfiles/active_record_edge.gemfile +0 -14
  19. data/log/.gitkeep +0 -0
  20. data/state_machines-activerecord.gemspec +0 -28
  21. data/test/files/en.yml +0 -5
  22. data/test/files/models/post.rb +0 -11
  23. data/test/integration_test.rb +0 -25
  24. data/test/machine_by_default_test.rb +0 -16
  25. data/test/machine_errors_test.rb +0 -19
  26. data/test/machine_multiple_test.rb +0 -17
  27. data/test/machine_nested_action_test.rb +0 -38
  28. data/test/machine_unmigrated_test.rb +0 -14
  29. data/test/machine_with_aliased_attribute_test.rb +0 -23
  30. data/test/machine_with_callbacks_test.rb +0 -172
  31. data/test/machine_with_column_state_attribute_test.rb +0 -44
  32. data/test/machine_with_complex_pluralization_scopes_test.rb +0 -16
  33. data/test/machine_with_conflicting_predicate_test.rb +0 -18
  34. data/test/machine_with_conflicting_state_name_test.rb +0 -29
  35. data/test/machine_with_custom_attribute_test.rb +0 -21
  36. data/test/machine_with_default_scope_test.rb +0 -18
  37. data/test/machine_with_different_column_default_test.rb +0 -27
  38. data/test/machine_with_different_integer_column_default_test.rb +0 -29
  39. data/test/machine_with_dirty_attribute_and_custom_attributes_during_loopback_test.rb +0 -24
  40. data/test/machine_with_dirty_attribute_and_state_events_test.rb +0 -20
  41. data/test/machine_with_dirty_attributes_and_custom_attribute_test.rb +0 -32
  42. data/test/machine_with_dirty_attributes_during_loopback_test.rb +0 -22
  43. data/test/machine_with_dirty_attributes_test.rb +0 -35
  44. data/test/machine_with_dynamic_initial_state_test.rb +0 -99
  45. data/test/machine_with_event_attributes_on_autosave_test.rb +0 -48
  46. data/test/machine_with_event_attributes_on_custom_action_test.rb +0 -41
  47. data/test/machine_with_event_attributes_on_save_bang_test.rb +0 -82
  48. data/test/machine_with_event_attributes_on_save_test.rb +0 -244
  49. data/test/machine_with_event_attributes_on_validation_test.rb +0 -143
  50. data/test/machine_with_events_test.rb +0 -13
  51. data/test/machine_with_failed_action_test.rb +0 -40
  52. data/test/machine_with_failed_after_callbacks_test.rb +0 -35
  53. data/test/machine_with_failed_before_callbacks_test.rb +0 -36
  54. data/test/machine_with_initialized_state_test.rb +0 -41
  55. data/test/machine_with_internationalization_test.rb +0 -180
  56. data/test/machine_with_loopback_test.rb +0 -22
  57. data/test/machine_with_non_column_state_attribute_defined_test.rb +0 -29
  58. data/test/machine_with_same_column_default_test.rb +0 -26
  59. data/test/machine_with_same_integer_column_default_test.rb +0 -30
  60. data/test/machine_with_scopes_and_joins_test.rb +0 -37
  61. data/test/machine_with_scopes_and_owner_subclass_test.rb +0 -27
  62. data/test/machine_with_scopes_test.rb +0 -70
  63. data/test/machine_with_state_driven_validations_test.rb +0 -30
  64. data/test/machine_with_states_test.rb +0 -13
  65. data/test/machine_with_static_initial_state_test.rb +0 -166
  66. data/test/machine_with_transactions_test.rb +0 -26
  67. data/test/machine_with_validations_and_custom_attribute_test.rb +0 -21
  68. data/test/machine_with_validations_test.rb +0 -47
  69. data/test/machine_without_database_test.rb +0 -20
  70. data/test/machine_without_transactions_test.rb +0 -26
  71. data/test/model_test.rb +0 -12
  72. data/test/test_helper.rb +0 -52
@@ -1,47 +0,0 @@
1
- require_relative 'test_helper'
2
-
3
- class MachineWithValidationsTest < BaseTestCase
4
- def setup
5
- @model = new_model
6
- @machine = StateMachines::Machine.new(@model)
7
- @machine.state :parked
8
-
9
- @record = @model.new
10
- end
11
-
12
- def test_should_invalidate_using_errors
13
- I18n.backend = I18n::Backend::Simple.new
14
- @record.state = 'parked'
15
-
16
- @machine.invalidate(@record, :state, :invalid_transition, [[:event, 'park']])
17
- assert_equal ['State cannot transition via "park"'], @record.errors.full_messages
18
- end
19
-
20
- def test_should_auto_prefix_custom_attributes_on_invalidation
21
- @machine.invalidate(@record, :event, :invalid)
22
-
23
- assert_equal ['State event is invalid'], @record.errors.full_messages
24
- end
25
-
26
- def test_should_clear_errors_on_reset
27
- @record.state = 'parked'
28
- @record.errors.add(:state, 'is invalid')
29
-
30
- @machine.reset(@record)
31
- assert_equal [], @record.errors.full_messages
32
- end
33
-
34
- def test_should_be_valid_if_state_is_known
35
- @record.state = 'parked'
36
-
37
- assert @record.valid?
38
- end
39
-
40
- def test_should_not_be_valid_if_state_is_unknown
41
- @record.state = 'invalid'
42
-
43
- refute @record.valid?
44
- assert_equal ['State is invalid'], @record.errors.full_messages
45
- end
46
- end
47
-
@@ -1,20 +0,0 @@
1
- require_relative 'test_helper'
2
-
3
- class MachineWithoutDatabaseTest < BaseTestCase
4
- def setup
5
- @model = new_model(false) do
6
- # Simulate the database not being available entirely
7
- def self.connection
8
- raise ActiveRecord::ConnectionNotEstablished
9
- end
10
-
11
- def self.connected?
12
- false
13
- end
14
- end
15
- end
16
-
17
- def test_should_allow_machine_creation
18
- assert_nothing_raised { StateMachines::Machine.new(@model) }
19
- end
20
- end
@@ -1,26 +0,0 @@
1
- require_relative 'test_helper'
2
-
3
- class MachineWithoutTransactionsTest < BaseTestCase
4
- def setup
5
- @model = new_model
6
- @machine = StateMachines::Machine.new(@model, :use_transactions => false)
7
- end
8
-
9
- def test_should_not_rollback_transaction_if_false
10
- @machine.within_transaction(@model.new) do
11
- @model.create
12
- false
13
- end
14
-
15
- assert_equal 1, @model.count
16
- end
17
-
18
- def test_should_not_rollback_transaction_if_true
19
- @machine.within_transaction(@model.new) do
20
- @model.create
21
- true
22
- end
23
-
24
- assert_equal 1, @model.count
25
- end
26
- end
data/test/model_test.rb DELETED
@@ -1,12 +0,0 @@
1
- require_relative 'test_helper'
2
- require_relative 'files/models/post'
3
-
4
- class ModelTest < ActiveSupport::TestCase
5
- def test_should_have_draft_state_in_defaut_machine
6
- assert_equal 'draft', Post.new.state
7
- end
8
-
9
- def test_should_have_the_correct_integration
10
- assert_equal StateMachines::Integrations::ActiveRecord, StateMachines::Integrations.match(Post)
11
- end
12
- end
data/test/test_helper.rb DELETED
@@ -1,52 +0,0 @@
1
- begin
2
- require 'pry-byebug'
3
- rescue LoadError
4
- end
5
- require 'minitest/reporters'
6
- Minitest::Reporters.use!(Minitest::Reporters::SpecReporter.new)
7
- require 'state_machines-activerecord'
8
- require 'minitest/autorun'
9
- require 'securerandom'
10
-
11
- # Establish database connection
12
- ActiveRecord::Base.establish_connection('adapter' => 'sqlite3', 'database' => ':memory:')
13
- ActiveRecord::Base.logger = Logger.new("#{File.dirname(__FILE__)}/../log/active_record.log")
14
-
15
- if ActiveSupport.gem_version >= Gem::Version.new('4.2.0')
16
- ActiveSupport.test_order = :random
17
- if ActiveSupport.gem_version < Gem::Version.new('5.1.x')
18
- ActiveRecord::Base.raise_in_transactional_callbacks = true
19
- end
20
- end
21
-
22
- class BaseTestCase < ActiveSupport::TestCase
23
- protected
24
- # Creates a new ActiveRecord model (and the associated table)
25
- def new_model(create_table = :foo, &block)
26
- name = create_table || :foo
27
- table_name = "#{name}_#{SecureRandom.hex(6)}"
28
-
29
- model = Class.new(ActiveRecord::Base) do
30
- self.table_name = table_name.to_s
31
- connection.create_table(table_name, :force => true) { |t| t.string(:state) } if create_table
32
-
33
- define_method(:abort_from_callback) do
34
- if ActiveSupport.gem_version >= Gem::Version.new('5.0')
35
- throw :abort
36
- else
37
- false
38
- end
39
- end
40
-
41
- (
42
- class << self;
43
- self;
44
- end).class_eval do
45
- define_method(:name) { "#{name.to_s.capitalize}" }
46
- end
47
- end
48
- model.class_eval(&block) if block_given?
49
- model.reset_column_information if create_table
50
- model
51
- end
52
- end