aasm 5.0.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.document +6 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +27 -0
- data/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- data/.gitignore +20 -0
- data/.travis.yml +82 -0
- data/API +34 -0
- data/Appraisals +71 -0
- data/CHANGELOG.md +420 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/CONTRIBUTING.md +24 -0
- data/Dockerfile +44 -0
- data/Gemfile +6 -0
- data/Gemfile.lock_old +151 -0
- data/HOWTO +12 -0
- data/LICENSE +20 -0
- data/PLANNED_CHANGES.md +11 -0
- data/README.md +1435 -0
- data/README_FROM_VERSION_3_TO_4.md +240 -0
- data/Rakefile +31 -0
- data/TESTING.md +25 -0
- data/aasm.gemspec +37 -0
- data/callbacks.txt +51 -0
- data/docker-compose.yml +40 -0
- data/gemfiles/norails.gemfile +10 -0
- data/gemfiles/rails_3.2.gemfile +14 -0
- data/gemfiles/rails_4.2.gemfile +16 -0
- data/gemfiles/rails_4.2_mongoid_5.gemfile +11 -0
- data/gemfiles/rails_4.2_nobrainer.gemfile +9 -0
- data/gemfiles/rails_5.0.gemfile +13 -0
- data/gemfiles/rails_5.0_nobrainer.gemfile +9 -0
- data/gemfiles/rails_5.1.gemfile +13 -0
- data/gemfiles/rails_5.2.gemfile +13 -0
- data/lib/aasm.rb +23 -0
- data/lib/aasm/aasm.rb +208 -0
- data/lib/aasm/base.rb +271 -0
- data/lib/aasm/configuration.rb +45 -0
- data/lib/aasm/core/event.rb +172 -0
- data/lib/aasm/core/invoker.rb +129 -0
- data/lib/aasm/core/invokers/base_invoker.rb +75 -0
- data/lib/aasm/core/invokers/class_invoker.rb +52 -0
- data/lib/aasm/core/invokers/literal_invoker.rb +47 -0
- data/lib/aasm/core/invokers/proc_invoker.rb +59 -0
- data/lib/aasm/core/state.rb +90 -0
- data/lib/aasm/core/transition.rb +83 -0
- data/lib/aasm/dsl_helper.rb +30 -0
- data/lib/aasm/errors.rb +21 -0
- data/lib/aasm/instance_base.rb +122 -0
- data/lib/aasm/localizer.rb +54 -0
- data/lib/aasm/minitest.rb +5 -0
- data/lib/aasm/minitest/allow_event.rb +13 -0
- data/lib/aasm/minitest/allow_transition_to.rb +13 -0
- data/lib/aasm/minitest/have_state.rb +13 -0
- data/lib/aasm/minitest/transition_from.rb +21 -0
- data/lib/aasm/minitest_spec.rb +15 -0
- data/lib/aasm/persistence.rb +54 -0
- data/lib/aasm/persistence/active_record_persistence.rb +165 -0
- data/lib/aasm/persistence/base.rb +78 -0
- data/lib/aasm/persistence/core_data_query_persistence.rb +94 -0
- data/lib/aasm/persistence/dynamoid_persistence.rb +92 -0
- data/lib/aasm/persistence/mongoid_persistence.rb +126 -0
- data/lib/aasm/persistence/no_brainer_persistence.rb +105 -0
- data/lib/aasm/persistence/orm.rb +150 -0
- data/lib/aasm/persistence/plain_persistence.rb +26 -0
- data/lib/aasm/persistence/redis_persistence.rb +112 -0
- data/lib/aasm/persistence/sequel_persistence.rb +83 -0
- data/lib/aasm/rspec.rb +5 -0
- data/lib/aasm/rspec/allow_event.rb +26 -0
- data/lib/aasm/rspec/allow_transition_to.rb +26 -0
- data/lib/aasm/rspec/have_state.rb +22 -0
- data/lib/aasm/rspec/transition_from.rb +32 -0
- data/lib/aasm/state_machine.rb +53 -0
- data/lib/aasm/state_machine_store.rb +76 -0
- data/lib/aasm/version.rb +3 -0
- data/lib/generators/aasm/aasm_generator.rb +16 -0
- data/lib/generators/aasm/orm_helpers.rb +41 -0
- data/lib/generators/active_record/aasm_generator.rb +40 -0
- data/lib/generators/active_record/templates/migration.rb +8 -0
- data/lib/generators/active_record/templates/migration_existing.rb +5 -0
- data/lib/generators/mongoid/aasm_generator.rb +28 -0
- data/lib/generators/nobrainer/aasm_generator.rb +28 -0
- data/lib/motion-aasm.rb +37 -0
- data/spec/database.rb +59 -0
- data/spec/database.yml +3 -0
- data/spec/en.yml +12 -0
- data/spec/en_deprecated_style.yml +10 -0
- data/spec/generators/active_record_generator_spec.rb +53 -0
- data/spec/generators/mongoid_generator_spec.rb +31 -0
- data/spec/generators/no_brainer_generator_spec.rb +29 -0
- data/spec/models/active_record/basic_active_record_two_state_machines_example.rb +25 -0
- data/spec/models/active_record/complex_active_record_example.rb +37 -0
- data/spec/models/active_record/derivate_new_dsl.rb +7 -0
- data/spec/models/active_record/false_state.rb +35 -0
- data/spec/models/active_record/gate.rb +39 -0
- data/spec/models/active_record/instance_level_skip_validation_example.rb +19 -0
- data/spec/models/active_record/invalid_persistor.rb +29 -0
- data/spec/models/active_record/localizer_test_model.rb +34 -0
- data/spec/models/active_record/no_direct_assignment.rb +21 -0
- data/spec/models/active_record/no_scope.rb +21 -0
- data/spec/models/active_record/persisted_state.rb +12 -0
- data/spec/models/active_record/person.rb +23 -0
- data/spec/models/active_record/provided_and_persisted_state.rb +24 -0
- data/spec/models/active_record/reader.rb +7 -0
- data/spec/models/active_record/readme_job.rb +21 -0
- data/spec/models/active_record/silent_persistor.rb +29 -0
- data/spec/models/active_record/simple_new_dsl.rb +32 -0
- data/spec/models/active_record/thief.rb +29 -0
- data/spec/models/active_record/transactor.rb +124 -0
- data/spec/models/active_record/transient.rb +6 -0
- data/spec/models/active_record/validator.rb +118 -0
- data/spec/models/active_record/with_enum.rb +39 -0
- data/spec/models/active_record/with_enum_without_column.rb +38 -0
- data/spec/models/active_record/with_false_enum.rb +31 -0
- data/spec/models/active_record/with_true_enum.rb +39 -0
- data/spec/models/active_record/work.rb +3 -0
- data/spec/models/active_record/worker.rb +2 -0
- data/spec/models/active_record/writer.rb +6 -0
- data/spec/models/basic_two_state_machines_example.rb +25 -0
- data/spec/models/callbacks/basic.rb +98 -0
- data/spec/models/callbacks/basic_multiple.rb +75 -0
- data/spec/models/callbacks/guard_within_block.rb +67 -0
- data/spec/models/callbacks/guard_within_block_multiple.rb +66 -0
- data/spec/models/callbacks/multiple_transitions_transition_guard.rb +66 -0
- data/spec/models/callbacks/multiple_transitions_transition_guard_multiple.rb +65 -0
- data/spec/models/callbacks/private_method.rb +44 -0
- data/spec/models/callbacks/private_method_multiple.rb +44 -0
- data/spec/models/callbacks/with_args.rb +62 -0
- data/spec/models/callbacks/with_args_multiple.rb +61 -0
- data/spec/models/callbacks/with_state_arg.rb +34 -0
- data/spec/models/callbacks/with_state_arg_multiple.rb +29 -0
- data/spec/models/complex_example.rb +222 -0
- data/spec/models/conversation.rb +93 -0
- data/spec/models/default_state.rb +12 -0
- data/spec/models/double_definer.rb +21 -0
- data/spec/models/dynamoid/complex_dynamoid_example.rb +37 -0
- data/spec/models/dynamoid/dynamoid_multiple.rb +18 -0
- data/spec/models/dynamoid/dynamoid_simple.rb +18 -0
- data/spec/models/foo.rb +106 -0
- data/spec/models/foo_callback_multiple.rb +45 -0
- data/spec/models/guard_arguments_check.rb +17 -0
- data/spec/models/guard_with_params.rb +24 -0
- data/spec/models/guard_with_params_multiple.rb +18 -0
- data/spec/models/guardian.rb +58 -0
- data/spec/models/guardian_multiple.rb +48 -0
- data/spec/models/guardian_without_from_specified.rb +18 -0
- data/spec/models/initial_state_proc.rb +31 -0
- data/spec/models/mongoid/complex_mongoid_example.rb +37 -0
- data/spec/models/mongoid/invalid_persistor_mongoid.rb +39 -0
- data/spec/models/mongoid/mongoid_relationships.rb +26 -0
- data/spec/models/mongoid/no_scope_mongoid.rb +21 -0
- data/spec/models/mongoid/silent_persistor_mongoid.rb +39 -0
- data/spec/models/mongoid/simple_mongoid.rb +23 -0
- data/spec/models/mongoid/simple_new_dsl_mongoid.rb +25 -0
- data/spec/models/mongoid/validator_mongoid.rb +100 -0
- data/spec/models/multi_transitioner.rb +34 -0
- data/spec/models/multiple_transitions_that_differ_only_by_guard.rb +31 -0
- data/spec/models/namespaced_multiple_example.rb +42 -0
- data/spec/models/no_initial_state.rb +25 -0
- data/spec/models/nobrainer/complex_no_brainer_example.rb +36 -0
- data/spec/models/nobrainer/invalid_persistor_no_brainer.rb +39 -0
- data/spec/models/nobrainer/no_scope_no_brainer.rb +21 -0
- data/spec/models/nobrainer/nobrainer_relationships.rb +25 -0
- data/spec/models/nobrainer/silent_persistor_no_brainer.rb +39 -0
- data/spec/models/nobrainer/simple_new_dsl_nobrainer.rb +25 -0
- data/spec/models/nobrainer/simple_no_brainer.rb +23 -0
- data/spec/models/nobrainer/validator_no_brainer.rb +98 -0
- data/spec/models/not_auto_loaded/process.rb +21 -0
- data/spec/models/parametrised_event.rb +42 -0
- data/spec/models/parametrised_event_multiple.rb +29 -0
- data/spec/models/process_with_new_dsl.rb +31 -0
- data/spec/models/provided_state.rb +24 -0
- data/spec/models/redis/complex_redis_example.rb +40 -0
- data/spec/models/redis/redis_multiple.rb +20 -0
- data/spec/models/redis/redis_simple.rb +20 -0
- data/spec/models/sequel/complex_sequel_example.rb +46 -0
- data/spec/models/sequel/invalid_persistor.rb +52 -0
- data/spec/models/sequel/sequel_multiple.rb +25 -0
- data/spec/models/sequel/sequel_simple.rb +26 -0
- data/spec/models/sequel/silent_persistor.rb +50 -0
- data/spec/models/sequel/transactor.rb +112 -0
- data/spec/models/sequel/validator.rb +93 -0
- data/spec/models/sequel/worker.rb +12 -0
- data/spec/models/silencer.rb +27 -0
- data/spec/models/simple_custom_example.rb +53 -0
- data/spec/models/simple_example.rb +17 -0
- data/spec/models/simple_example_with_guard_args.rb +17 -0
- data/spec/models/simple_multiple_example.rb +42 -0
- data/spec/models/state_machine_with_failed_event.rb +20 -0
- data/spec/models/states_on_one_line_example.rb +8 -0
- data/spec/models/sub_class.rb +41 -0
- data/spec/models/sub_class_with_more_states.rb +18 -0
- data/spec/models/sub_classing.rb +3 -0
- data/spec/models/super_class.rb +46 -0
- data/spec/models/this_name_better_not_be_in_use.rb +11 -0
- data/spec/models/valid_state_name.rb +23 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/spec_helpers/active_record.rb +8 -0
- data/spec/spec_helpers/dynamoid.rb +35 -0
- data/spec/spec_helpers/mongoid.rb +26 -0
- data/spec/spec_helpers/nobrainer.rb +15 -0
- data/spec/spec_helpers/redis.rb +18 -0
- data/spec/spec_helpers/remove_warnings.rb +1 -0
- data/spec/spec_helpers/sequel.rb +7 -0
- data/spec/unit/abstract_class_spec.rb +27 -0
- data/spec/unit/api_spec.rb +100 -0
- data/spec/unit/basic_two_state_machines_example_spec.rb +10 -0
- data/spec/unit/callback_multiple_spec.rb +304 -0
- data/spec/unit/callbacks_spec.rb +521 -0
- data/spec/unit/complex_example_spec.rb +93 -0
- data/spec/unit/complex_multiple_example_spec.rb +115 -0
- data/spec/unit/edge_cases_spec.rb +16 -0
- data/spec/unit/event_multiple_spec.rb +73 -0
- data/spec/unit/event_naming_spec.rb +16 -0
- data/spec/unit/event_spec.rb +394 -0
- data/spec/unit/exception_spec.rb +11 -0
- data/spec/unit/guard_arguments_check_spec.rb +9 -0
- data/spec/unit/guard_multiple_spec.rb +60 -0
- data/spec/unit/guard_spec.rb +89 -0
- data/spec/unit/guard_with_params_multiple_spec.rb +10 -0
- data/spec/unit/guard_with_params_spec.rb +14 -0
- data/spec/unit/guard_without_from_specified_spec.rb +10 -0
- data/spec/unit/initial_state_multiple_spec.rb +15 -0
- data/spec/unit/initial_state_spec.rb +12 -0
- data/spec/unit/inspection_multiple_spec.rb +201 -0
- data/spec/unit/inspection_spec.rb +149 -0
- data/spec/unit/invoker_spec.rb +189 -0
- data/spec/unit/invokers/base_invoker_spec.rb +72 -0
- data/spec/unit/invokers/class_invoker_spec.rb +95 -0
- data/spec/unit/invokers/literal_invoker_spec.rb +86 -0
- data/spec/unit/invokers/proc_invoker_spec.rb +86 -0
- data/spec/unit/localizer_spec.rb +78 -0
- data/spec/unit/memory_leak_spec.rb +38 -0
- data/spec/unit/multiple_transitions_that_differ_only_by_guard_spec.rb +14 -0
- data/spec/unit/namespaced_multiple_example_spec.rb +75 -0
- data/spec/unit/new_dsl_spec.rb +12 -0
- data/spec/unit/override_warning_spec.rb +94 -0
- data/spec/unit/persistence/active_record_persistence_multiple_spec.rb +618 -0
- data/spec/unit/persistence/active_record_persistence_spec.rb +773 -0
- data/spec/unit/persistence/dynamoid_persistence_multiple_spec.rb +135 -0
- data/spec/unit/persistence/dynamoid_persistence_spec.rb +84 -0
- data/spec/unit/persistence/mongoid_persistence_multiple_spec.rb +200 -0
- data/spec/unit/persistence/mongoid_persistence_spec.rb +165 -0
- data/spec/unit/persistence/no_brainer_persistence_multiple_spec.rb +198 -0
- data/spec/unit/persistence/no_brainer_persistence_spec.rb +158 -0
- data/spec/unit/persistence/redis_persistence_multiple_spec.rb +88 -0
- data/spec/unit/persistence/redis_persistence_spec.rb +53 -0
- data/spec/unit/persistence/sequel_persistence_multiple_spec.rb +148 -0
- data/spec/unit/persistence/sequel_persistence_spec.rb +368 -0
- data/spec/unit/readme_spec.rb +41 -0
- data/spec/unit/reloading_spec.rb +15 -0
- data/spec/unit/rspec_matcher_spec.rb +85 -0
- data/spec/unit/simple_custom_example_spec.rb +39 -0
- data/spec/unit/simple_example_spec.rb +42 -0
- data/spec/unit/simple_multiple_example_spec.rb +91 -0
- data/spec/unit/state_spec.rb +89 -0
- data/spec/unit/states_on_one_line_example_spec.rb +16 -0
- data/spec/unit/subclassing_multiple_spec.rb +74 -0
- data/spec/unit/subclassing_spec.rb +46 -0
- data/spec/unit/transition_spec.rb +436 -0
- data/test/minitest_helper.rb +57 -0
- data/test/unit/minitest_matcher_test.rb +80 -0
- metadata +610 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 51dfd1ad2a78034c409ddc556625e765260dd067
|
4
|
+
data.tar.gz: f934e43d4a35fc75a06d161190a8794e36066c02
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 983b08a4a0977c37dd73b77c5d80d014a05025d7f2841c26788518c82a8e738825ab9fa5fc8a36577e9c6a23fd33cf341c6fefc954630836e213ab40ee12c909
|
7
|
+
data.tar.gz: b091bca286362fb33a31f1b9705840f664ebd0a948c6b2dffbaa2436144c5931a04950080b18e16c1a7d9e4e1b8f517b7ea6c2c133259a3860905928fda32b90
|
data/.document
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
---
|
2
|
+
name: Bug report
|
3
|
+
about: Create a report to help us improve
|
4
|
+
title: ''
|
5
|
+
labels: ''
|
6
|
+
assignees: ''
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
**Describe the bug**
|
11
|
+
A clear and concise description of what the bug is.
|
12
|
+
|
13
|
+
**To Reproduce**
|
14
|
+
Steps to reproduce the behavior:
|
15
|
+
1. Go to '...'
|
16
|
+
2. Click on '....'
|
17
|
+
3. Scroll down to '....'
|
18
|
+
4. See error
|
19
|
+
|
20
|
+
**Expected behavior**
|
21
|
+
A clear and concise description of what you expected to happen.
|
22
|
+
|
23
|
+
**Screenshots**
|
24
|
+
If applicable, add screenshots to help explain your problem.
|
25
|
+
|
26
|
+
**Additional context**
|
27
|
+
Add any other context about the problem here.
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
name: Feature request
|
3
|
+
about: Suggest an idea for this project
|
4
|
+
title: ''
|
5
|
+
labels: ''
|
6
|
+
assignees: ''
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
12
|
+
|
13
|
+
**Describe the solution you'd like**
|
14
|
+
A clear and concise description of what you want to happen.
|
15
|
+
|
16
|
+
**Describe alternatives you've considered**
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
18
|
+
|
19
|
+
**Additional context**
|
20
|
+
Add any other context or screenshots about the feature request here.
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
sudo: false
|
2
|
+
language: ruby
|
3
|
+
cache: bundler
|
4
|
+
|
5
|
+
jdk:
|
6
|
+
- openjdk8
|
7
|
+
|
8
|
+
before_install:
|
9
|
+
- rvm list
|
10
|
+
- gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true
|
11
|
+
- gem install bundler -v '1.16.1'
|
12
|
+
- bundle _1.16.1_ install
|
13
|
+
|
14
|
+
rvm:
|
15
|
+
- 2.3.0
|
16
|
+
- 2.5.0
|
17
|
+
- jruby-9.1.12.0
|
18
|
+
|
19
|
+
services:
|
20
|
+
- mongodb
|
21
|
+
- redis-server
|
22
|
+
|
23
|
+
#addons:
|
24
|
+
# rethinkdb: '2.3.4'
|
25
|
+
|
26
|
+
gemfile:
|
27
|
+
- gemfiles/norails.gemfile
|
28
|
+
- gemfiles/rails_3.2.gemfile
|
29
|
+
- gemfiles/rails_4.2.gemfile
|
30
|
+
- gemfiles/rails_4.2_mongoid_5.gemfile
|
31
|
+
# - gemfiles/rails_4.2_nobrainer.gemfile
|
32
|
+
- gemfiles/rails_5.0.gemfile
|
33
|
+
# - gemfiles/rails_5.0_nobrainer.gemfile
|
34
|
+
- gemfiles/rails_5.1.gemfile
|
35
|
+
- gemfiles/rails_5.2.gemfile
|
36
|
+
|
37
|
+
before_script:
|
38
|
+
- mkdir /tmp/dynamodb
|
39
|
+
- wget -O - https://s3-ap-southeast-1.amazonaws.com/dynamodb-local-singapore/dynamodb_local_latest.tar.gz | tar xz --directory /tmp/dynamodb
|
40
|
+
- java -Djava.library.path=/tmp/dynamodb/DynamoDBLocal_lib -jar /tmp/dynamodb/DynamoDBLocal.jar -inMemory -delayTransientStatuses -port 30180 &
|
41
|
+
- mongod --version
|
42
|
+
|
43
|
+
script:
|
44
|
+
- bundle exec rspec spec
|
45
|
+
- bundle exec rake test
|
46
|
+
|
47
|
+
matrix:
|
48
|
+
exclude:
|
49
|
+
- rvm: 2.3.0
|
50
|
+
gemfile: gemfiles/norails.gemfile
|
51
|
+
- rvm: 2.3.0
|
52
|
+
gemfile: gemfiles/rails_5.0.gemfile
|
53
|
+
# - rvm: 2.3.0
|
54
|
+
# gemfile: gemfiles/rails_5.0_nobrainer.gemfile
|
55
|
+
- rvm: 2.3.0
|
56
|
+
gemfile: gemfiles/rails_5.1.gemfile
|
57
|
+
- rvm: 2.3.0
|
58
|
+
gemfile: gemfiles/rails_5.2.gemfile
|
59
|
+
- rvm: 2.5.0
|
60
|
+
gemfile: gemfiles/rails_3.2.gemfile
|
61
|
+
- rvm: 2.5.0
|
62
|
+
gemfile: gemfiles/rails_4.2.gemfile
|
63
|
+
- rvm: 2.5.0
|
64
|
+
gemfile: gemfiles/rails_4.2_mongoid_5.gemfile
|
65
|
+
# - rvm: 2.5.0
|
66
|
+
# gemfile: gemfiles/rails_4.2_nobrainer.gemfile
|
67
|
+
- rvm: jruby-9.1.12.0
|
68
|
+
gemfile: gemfiles/norails.gemfile
|
69
|
+
- rvm: jruby-9.1.12.0
|
70
|
+
gemfile: gemfiles/rails_5.0.gemfile
|
71
|
+
- rvm: jruby-9.1.12.0
|
72
|
+
gemfile: gemfiles/rails_5.1.gemfile
|
73
|
+
- rvm: jruby-9.1.12.0
|
74
|
+
gemfile: gemfiles/rails_5.2.gemfile
|
75
|
+
# - rvm: jruby-9.1.12.0
|
76
|
+
# gemfile: gemfiles/rails_4.2_nobrainer.gemfile
|
77
|
+
# - rvm: jruby-9.1.12.0
|
78
|
+
# gemfile: gemfiles/rails_5.0_nobrainer.gemfile
|
79
|
+
|
80
|
+
notifications:
|
81
|
+
slack:
|
82
|
+
secure: gpltVWntdKz0nSE6A5UvuX4qbN35uW51nsW+Ojgqm8Qsv8K240/NlZRYutFHr7GnJTe0rEEP2Oy3ZBnBtZKFn13RlTEAU/FCAxebr4H24rr29Ypwwp5xjiSE4MuoBEnroo4lw6ka3LsJnrY2PKRMiLJGsS0WsEPY4x8NUG/vyY8=
|
data/API
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
Overwrite method to read the current state. Used to provide another storage mechanism,
|
3
|
+
different from the standard Rails read_attribute method.
|
4
|
+
|
5
|
+
class MyClass
|
6
|
+
include AASM
|
7
|
+
|
8
|
+
def aasm_read_state
|
9
|
+
# retrieve the current state manually
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
Overwrite method to write the current state (and actually persist it). Used to provide
|
15
|
+
another storage mechanism, different from the standard Rails write_attribute method.
|
16
|
+
|
17
|
+
class MyClass
|
18
|
+
include AASM
|
19
|
+
|
20
|
+
def aasm_write_state
|
21
|
+
# store and persist the current state manually
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
|
26
|
+
Overwrite method to write the current state (without persisting it).
|
27
|
+
|
28
|
+
class MyClass
|
29
|
+
include AASM
|
30
|
+
|
31
|
+
def aasm_write_state_without_persistence
|
32
|
+
# store the current state manually
|
33
|
+
end
|
34
|
+
end
|
data/Appraisals
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
appraise 'rails_3.2' do
|
2
|
+
gem 'rails', '~> 3.2.22'
|
3
|
+
gem 'mongoid', '~> 3.1'
|
4
|
+
gem 'sequel'
|
5
|
+
gem 'bson_ext', platforms: :ruby
|
6
|
+
gem 'test-unit', '~> 3.0'
|
7
|
+
gem 'minitest'
|
8
|
+
gem 'activerecord-jdbcsqlite3-adapter', '1.3.24', platforms: :jruby
|
9
|
+
end
|
10
|
+
|
11
|
+
appraise 'rails_4.2' do
|
12
|
+
gem 'nokogiri', '1.6.8.1', platforms: %i[ruby_19]
|
13
|
+
gem 'mime-types', '~> 2', platforms: %i[ruby_19 jruby]
|
14
|
+
gem 'rails', '4.2.5'
|
15
|
+
gem 'mongoid', '~> 4.0'
|
16
|
+
gem 'sequel'
|
17
|
+
gem 'dynamoid', '~> 1', platforms: :ruby
|
18
|
+
gem 'aws-sdk', '~> 2', platforms: :ruby
|
19
|
+
gem 'redis-objects'
|
20
|
+
gem 'activerecord-jdbcsqlite3-adapter', '1.3.24', platforms: :jruby
|
21
|
+
end
|
22
|
+
|
23
|
+
appraise 'rails_4.2_nobrainer' do
|
24
|
+
gem 'rails', '4.2.5'
|
25
|
+
gem 'nobrainer', '~> 0.33.0'
|
26
|
+
end
|
27
|
+
|
28
|
+
appraise 'rails_4.2_mongoid_5' do
|
29
|
+
gem 'mime-types', '~> 2', platforms: %i[ruby_19 jruby]
|
30
|
+
gem 'rails', '4.2.5'
|
31
|
+
gem 'mongoid', '~> 5.0'
|
32
|
+
gem 'activerecord-jdbcsqlite3-adapter', '1.3.24', platforms: :jruby
|
33
|
+
end
|
34
|
+
|
35
|
+
appraise 'rails_5.0' do
|
36
|
+
gem 'rails', '5.0.0'
|
37
|
+
gem 'mongoid', '~> 6.0'
|
38
|
+
gem 'sequel'
|
39
|
+
gem 'dynamoid', '~> 1.3', platforms: :ruby
|
40
|
+
gem 'aws-sdk', '~> 2', platforms: :ruby
|
41
|
+
gem 'redis-objects'
|
42
|
+
end
|
43
|
+
|
44
|
+
appraise 'rails_5.0_nobrainer' do
|
45
|
+
gem 'rails', '5.0.0'
|
46
|
+
gem 'nobrainer', '~> 0.33.0'
|
47
|
+
end
|
48
|
+
|
49
|
+
appraise 'rails_5.1' do
|
50
|
+
gem 'rails', '5.1'
|
51
|
+
gem 'mongoid', '~>6.0'
|
52
|
+
gem 'sequel'
|
53
|
+
gem 'dynamoid', '~> 1.3', platforms: :ruby
|
54
|
+
gem 'aws-sdk', '~>2', platforms: :ruby
|
55
|
+
gem 'redis-objects'
|
56
|
+
end
|
57
|
+
|
58
|
+
appraise 'rails_5.2' do
|
59
|
+
gem 'rails', '5.2'
|
60
|
+
gem 'mongoid', '~>6.0'
|
61
|
+
gem 'sequel'
|
62
|
+
gem 'dynamoid', '~>2.2', platforms: :ruby
|
63
|
+
gem 'aws-sdk', '~>2', platforms: :ruby
|
64
|
+
gem 'redis-objects'
|
65
|
+
end
|
66
|
+
|
67
|
+
appraise 'norails' do
|
68
|
+
gem 'rails', install_if: false
|
69
|
+
gem 'sequel'
|
70
|
+
gem 'redis-objects'
|
71
|
+
end
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,420 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## unreleased
|
4
|
+
|
5
|
+
## 5.0.6
|
6
|
+
|
7
|
+
* Fix no_direct_assignment, couldn't be turned off pragmatically [#636](https://github.com/aasm/aasm/issues/636)
|
8
|
+
* Add instance level validation skip option [#644](https://github.com/aasm/aasm/pull/644), thanks to [Nitin-Salunke](https://github.com/Nitin-Salunke)
|
9
|
+
* Fixed aasm.current_event incorrectly yields nil when calling aasm.fire!(:event) [#551](https://github.com/aasm/aasm/issues/551) in [#638](https://github.com/aasm/aasm/pull/638), thanks to [DoubleJarvis](https://github.com/DoubleJarvis)
|
10
|
+
* Code Refactor [#634](https://github.com/aasm/aasm/pull/634) , thanks to [rahulknojha](https://github.com/rahulknojha)
|
11
|
+
* Fixed callback argument for :before_success & :success callback, [#630](https://github.com/aasm/aasm/pull/630)
|
12
|
+
|
13
|
+
## 5.0.5
|
14
|
+
|
15
|
+
* Independent of ActiveSupport methods, [#627](https://github.com/aasm/aasm/pull/627),
|
16
|
+
thanks to [tristandruyen](https://github.com/tristandruyen). Fixes [#508](https://github.com/aasm/aasm/issues/508)
|
17
|
+
|
18
|
+
## 5.0.4
|
19
|
+
|
20
|
+
* Specify dynamoid version for Rails > 5, [#625](https://github.com/aasm/aasm/pull/625),
|
21
|
+
thanks to [waghanza](https://github.com/waghanza)
|
22
|
+
* Add travis runner for Rails 5.2, [#624](https://github.com/aasm/aasm/pull/624), thanks
|
23
|
+
to [waghanza](https://github.com/waghanza)
|
24
|
+
* Cleanup Abstract class issue, [#620](https://github.com/aasm/aasm/pull/620), thanks to
|
25
|
+
[dennym](https://github.com/dennym)
|
26
|
+
|
27
|
+
## 5.0.3
|
28
|
+
|
29
|
+
* Fix Abstract class issue, [#619](https://github.com/aasm/aasm/pull/619)
|
30
|
+
|
31
|
+
## 5.0.2
|
32
|
+
|
33
|
+
* Clear failed callbacks, [#600](https://github.com/aasm/aasm/pull/600), thanks to
|
34
|
+
[nedgar](https://github.com/nedgar)
|
35
|
+
* README improvements, [#594](https://github.com/aasm/aasm/pull/594),
|
36
|
+
[#589](https://github.com/aasm/aasm/pull/589), [#587](https://github.com/aasm/aasm/pull/587),
|
37
|
+
[#597](https://github.com/aasm/aasm/pull/597), thanks to [jackscotti](https://github.com/jackscotti), [krmbzds](https://github.com/krmbzds),
|
38
|
+
[zegomesjf](https://github.com/zegomesjf), [BKSpurgeon](https://github.com/BKSpurgeon)
|
39
|
+
* Update InvalidTransition to include state_machine_name [#592](https://github.com/aasm/aasm/pull/592), thanks to [a14m](https://github.com/a14m)
|
40
|
+
* Do not add migration if model and column already exists [#586](https://github.com/aasm/aasm/pull/586), thanks to [KiranJosh](https://github.com/KiranJosh)
|
41
|
+
|
42
|
+
## 5.0.1
|
43
|
+
|
44
|
+
* Fix failures array in transition not being reset [#383](https://github.com/aasm/aasm/issues/383)
|
45
|
+
* Enable AASM scopes to be defined on abstract classes.
|
46
|
+
|
47
|
+
## 5.0.0
|
48
|
+
|
49
|
+
* Chore(invokers): Refactor callback invokers, add class-callbacks support [#541](https://github.com/aasm/aasm/pull/541), thanks to [pandomic](https://github.com/pandomic)
|
50
|
+
* Add docker setup to readme
|
51
|
+
* Add support for Nobrainer (RethinkDB) [#522](https://github.com/aasm/aasm/pull/522), thanks to [zedtux](https://github.com/zedtux)
|
52
|
+
* Patch `allow_event` to accept event with custom arguments [#419](https://github.com/aasm/aasm/pull/419), thanks to [czhc](https://github.com/czhc)
|
53
|
+
|
54
|
+
## 4.12.3
|
55
|
+
|
56
|
+
* Add to AASM fire(event) and fire!(event) methods [#494](https://github.com/aasm/aasm/pull/494), thanks to [slayer](https://github.com/slayer)
|
57
|
+
* Add `use_transactions` flag to persist changes to the database even when some error occurs. [#493](https://github.com/aasm/aasm/pull/493), thanks to Peter Lampesberger.
|
58
|
+
|
59
|
+
## 4.12.2
|
60
|
+
|
61
|
+
* Fix guards parameter [#484](https://github.com/aasm/aasm/pull/484), thanks to [teohm](https://github.com/teohm)
|
62
|
+
* Make errors more inspectable [#452](https://github.com/aasm/aasm/pull/452), thanks to [flexoid](https://github.com/flexoid)
|
63
|
+
* Enable Dynamoid for Rails 5 [#483](https://github.com/aasm/aasm/pull/483), thanks to [focusshifter](https://github.com/focusshifter)
|
64
|
+
|
65
|
+
## 4.12.1
|
66
|
+
|
67
|
+
* DRY-up Mongoid and ActiveRecord Persistence, Add Sequel transactions and locking [#475](https://github.com/aasm/aasm/pull/475), thanks to [@Aryk](https://github.com/Aryk)
|
68
|
+
* Add aliases for event methods [#476](https://github.com/aasm/aasm/pull/476), thanks to [@Aryk](https://github.com/Aryk)
|
69
|
+
* Support Minitest spec expectations [#387](https://github.com/aasm/aasm/pull/387), thanks to [@faragorn](https://github.com/faragorn)
|
70
|
+
## 4.12.0
|
71
|
+
|
72
|
+
* Fix thread safe issue with concurrent-ruby gem [see [pull-request #422](https://github.com/aasm/aasm/pull/442), thanks to [@reidmorrison](https://github.com/reidmorrison)
|
73
|
+
* Drop Support for Mongo Mapper [see [pull-request #439](https://github.com/aasm/aasm/pull/439)], thanks to [@reidmorrison](https://github.com/reidmorrison)
|
74
|
+
* add :binding_event option to event [see [pull-request #438](https://github.com/aasm/aasm/pull/438)], thanks to [@leanhdaovn](https://github.com/leanhdaovn)
|
75
|
+
* fix: `skip_validation_on_save: true` for default_scope records, [see [pull-request #433](https://github.com/aasm/aasm/pull/433)], thanks to [@larissa](https://github.com/larissa)
|
76
|
+
* Deep clone state machine during inheritance so that state machines in child classes can be modified (see [pull-request #429](https://github.com/aasm/aasm/pull/429)), thanks to [@reidmorrison](https://github.com/reidmorrison) and [@Tybot204](https://github.com/Tybot204)
|
77
|
+
* add before_success callback for event (see [pull-request #422](https://github.com/aasm/aasm/pull/422)), thanks to [@timsly ](https://github.com/timsly)
|
78
|
+
* fix: multiple transitions in a single event with the same to and from states (see [issue #372](https://github.com/aasm/aasm/issues/372) and [issue #362](https://github.com/aasm/aasm/issues/362) for details, fixed with [pull-request #408](https://github.com/aasm/aasm/pull/408), thanks to [@dathanb](https://github.com/dathanb))
|
79
|
+
* fix: passing nil as a argument to callbacks (see [issue #404](https://github.com/aasm/aasm/issues/404) for details, fixed with [pull-request #406](https://github.com/aasm/aasm/pull/406), thanks to [@yogeshjain999](https://github.com/yogeshjain999))
|
80
|
+
|
81
|
+
|
82
|
+
## 4.11.1
|
83
|
+
|
84
|
+
* fix: generator file name when using custom column name instead of
|
85
|
+
aasm_state (see [issue #398](https://github.com/aasm/aasm/pull/398) for details,
|
86
|
+
thanks to [@bastianwegge](https://github.com/bastianwegge))
|
87
|
+
* fix: Scopes when states are defined as a series of symbols (see [issue #397](https://github.com/aasm/aasm/pull/397) for details, thanks to [@evheny0](https://github.com/evheny0))
|
88
|
+
* fix: Multiple transition behavior when one of the transitions does not
|
89
|
+
have a "from" parameter (see [issue #392](https://github.com/aasm/aasm/issues/392) for details)
|
90
|
+
* fix: permissible states not respecting guard parameters (see [issue #388](https://github.com/aasm/aasm/issues/388)) with [pull-request #389](https://github.com/aasm/aasm/pull/389)
|
91
|
+
|
92
|
+
## 4.11.0
|
93
|
+
|
94
|
+
* support `logger` configuration (see [issue #370](https://github.com/aasm/aasm/pull/370) for details, thanks to [@HoyaBoya](https://github.com/HoyaBoya))
|
95
|
+
* support configuration to let bang transitions fail if object is invalid (see [issue #366](https://github.com/aasm/aasm/pull/366) and [issue #262](https://github.com/aasm/aasm/issues/262) for details, thanks to [@Wildebeest](https://github.com/Wildebeest))
|
96
|
+
|
97
|
+
|
98
|
+
## 4.10.1
|
99
|
+
|
100
|
+
* fix: suppress warnings when using ActiveRecord enums feature (see [issue #346](https://github.com/aasm/aasm/pull/346) for details, thanks to [@110y](https://github.com/110y), and [issue #353](https://github.com/aasm/aasm/pull/353) for details, thanks to [@nathanstitt](https://github.com/nathanstitt))
|
101
|
+
* fix: handle array of success callbacks for transitions properly (see [issue #363](https://github.com/aasm/aasm/pull/363) for details, thanks to [@shunichi](https://github.com/shunichi))
|
102
|
+
* support `permitted: false` for states and events query/inspection methods (see [issue #364](https://github.com/aasm/aasm/pull/364) for details, thanks to [@hspazio](https://github.com/hspazio))
|
103
|
+
|
104
|
+
## 4.10.0
|
105
|
+
|
106
|
+
* fix: some issues with RubyMotion (see [issue #320](https://github.com/aasm/aasm/pull/320) and [issue #343](https://github.com/aasm/aasm/pull/343) for details, thanks to [@Infotaku](https://github.com/Infotaku))
|
107
|
+
* fix: transitions now work in dup'ed copies (see [issue #325](https://github.com/aasm/aasm/pull/325) which fixes [issue #273](https://github.com/aasm/aasm/pull/273) for details, thanks to [@lingceng](https://github.com/lingceng))
|
108
|
+
* fix: allow skipping the `aasm_ensure_initial_state` callback (see [issue #326](https://github.com/aasm/aasm/pull/326) for details, thanks to [@sineed](https://github.com/sineed))
|
109
|
+
* fix: has_many association helper works again for Mongoid (see [issue #333](https://github.com/aasm/aasm/pull/333) which fixes [issue #332](https://github.com/aasm/aasm/pull/332) for details, thanks to [@anilmaurya](https://github.com/anilmaurya))
|
110
|
+
* improve performance / refactor: load and run only code which is needed (see [issue #336](https://github.com/aasm/aasm/pull/336) for details, thanks to [@csmuc](https://github.com/csmuc))
|
111
|
+
* improve: warn when overriding an existing method (see [issue #340](https://github.com/aasm/aasm/pull/340) which fixes [issue #335](https://github.com/aasm/aasm/pull/335) for details, thanks to [@pirj](https://github.com/pirj))
|
112
|
+
* fix: correct error message (by not evaluating the current state lazily) (see [issue #341](https://github.com/aasm/aasm/pull/341) which fixes [issue #312](https://github.com/aasm/aasm/pull/312) for details, thanks to [@pirj](https://github.com/pirj))
|
113
|
+
* addition: support for Redis as persistence layer (see [issue #190](https://github.com/aasm/aasm/pull/190) for details, thanks to [@javajax](https://github.com/javajax))
|
114
|
+
* addition: support transition `:success` callbacks (see [issue #239](https://github.com/aasm/aasm/pull/239) which fixes [issue #236](https://github.com/aasm/aasm/pull/236) for details, thanks to [@brega](https://github.com/brega))
|
115
|
+
* addition: support for namespacing methods and state names (see [issue #259](https://github.com/aasm/aasm/pull/259) for details, thanks to [@allspiritseve](https://github.com/allspiritseve))
|
116
|
+
* addition: support for defining multiple states in one line (see [issue #288](https://github.com/aasm/aasm/pull/288) which fixes [issue #146](https://github.com/aasm/aasm/pull/146) for details, thanks to [@HParker](https://github.com/HParker))
|
117
|
+
* fix: uninitialised constant when running Rails generator (see [issue #339](https://github.com/aasm/aasm/pull/339) for details, thanks to [@long-long-float](https://github.com/long-long-float))
|
118
|
+
|
119
|
+
## 4.9.0
|
120
|
+
|
121
|
+
* add support for callback classes (`after` only) (see [issue #316](https://github.com/aasm/aasm/pull/316) for details, thanks to [@mlr](https://github.com/mlr))
|
122
|
+
* allow easier extension of _AASM_ (utilising the idea of _ApplicationRecords_ from _Rails 5_) (see [issue #296](https://github.com/aasm/aasm/pull/296) for details, thanks to [@mlr](https://github.com/mlr))
|
123
|
+
* support pessimistic locking for _ActiveRecord_ (see [issue #283](https://github.com/aasm/aasm/pull/283) for details, thanks to [@HoyaBoya](https://github.com/HoyaBoya))
|
124
|
+
* fix: support database sharding for _ActiveRecord_ (see [issue #289](https://github.com/aasm/aasm/pull/289) for details, thanks to [@scambra](https://github.com/scambra))
|
125
|
+
* fix: some issues with RubyMotion (see [issue #318](https://github.com/aasm/aasm/pull/318) for details, thanks to [@Infotaku](https://github.com/Infotaku))
|
126
|
+
* fix: Rails generator now features the correct namespace (see [issue #328](https://github.com/aasm/aasm/pull/328) and [issue #329](https://github.com/aasm/aasm/pull/329) for details, thanks to [@anilmaurya](https://github.com/anilmaurya))
|
127
|
+
|
128
|
+
|
129
|
+
## 4.8.0
|
130
|
+
|
131
|
+
* add support for [dynamoid](http://joshsymonds.com/Dynamoid/) (see [issue #300](https://github.com/aasm/aasm/pull/300) for details, thanks to [@LeeChSien](https://github.com/LeeChSien))
|
132
|
+
* make compatible with [RubyMotion](http://www.rubymotion.com) (see [issue #315](https://github.com/aasm/aasm/pull/315) for details, thanks to [@Infotaku](https://github.com/Infotaku))
|
133
|
+
* improve error handling in case of an exception during transitioning (see [issue #275](https://github.com/aasm/aasm/pull/275) for details, thanks to [@chriswoodrich](https://github.com/chriswoodrich))
|
134
|
+
* rspec matcher `on_event` now supports arguments (see [issue #309](https://github.com/aasm/aasm/pull/309) for details, thanks to [@zacviandier](https://github.com/zacviandier))
|
135
|
+
* fix: permitted states now respect guards (see [issue #308](https://github.com/aasm/aasm/pull/308) for details, thanks to [@eebs](https://github.com/eebs))
|
136
|
+
* fix: reloading the env now doesn't add callbacks twice anymore (see [issue #311](https://github.com/aasm/aasm/pull/311) for details, thanks to [@lingceng](https://github.com/lingceng))
|
137
|
+
|
138
|
+
## 4.7.0
|
139
|
+
|
140
|
+
* fix: allow :send as event name (see [issue #257](https://github.com/aasm/aasm/issues/257) for details)
|
141
|
+
* add new callbacks: transactions, all events, ensure (see [issue #282](https://github.com/aasm/aasm/issues/282) for details, thanks to [@HoyaBoya](https://github.com/HoyaBoya))
|
142
|
+
|
143
|
+
## 4.6.0
|
144
|
+
|
145
|
+
* fix: make sure the column is actually present for _ActiveRecord_ enums (see [issue #265](https://github.com/aasm/aasm/issues/265) and [issue #152](https://github.com/aasm/aasm/issues/152) for details, thanks to [@anilmaurya](https://github.com/anilmaurya))
|
146
|
+
* add generators to configure active_record and mongoid after install (see [issue #261](https://github.com/aasm/aasm/issues/261) for details, thanks to [@anilmaurya](https://github.com/anilmaurya))
|
147
|
+
|
148
|
+
## 4.5.2
|
149
|
+
|
150
|
+
* fix arity difference between Procs and lambdas (see [issue #293](https://github.com/aasm/aasm/issues/293) for details)
|
151
|
+
|
152
|
+
## 4.5.1
|
153
|
+
|
154
|
+
* make sure to use override configuration options if state machine is defined more than once (see [issue #287](https://github.com/aasm/aasm/issues/287) for details)
|
155
|
+
|
156
|
+
## 4.5.0
|
157
|
+
|
158
|
+
* add RSpec matchers `have_state`, `allow_event` and `allow_transition_to` (see [issue #147](https://github.com/aasm/aasm/issues/147) for details)
|
159
|
+
* add RSpec matcher `transition_from` (see [issue #178](https://github.com/aasm/aasm/issues/178) for details, thanks to [@thomasstephane](https://github.com/thomasstephane))
|
160
|
+
|
161
|
+
## 4.4.1
|
162
|
+
|
163
|
+
* add support for rejecting certain events on inspection (see [issue #272](https://github.com/aasm/aasm/issues/272) for details, thanks to [@dubroe](https://github.com/dubroe))
|
164
|
+
|
165
|
+
## 4.4.0
|
166
|
+
|
167
|
+
* add support global transation callbacks (see [issue #221](https://github.com/aasm/aasm/issues/221) and [issue #253](https://github.com/aasm/aasm/issues/253) for details)
|
168
|
+
* add support (bugfix) for Mongoid >= 5.0 (see [issue #277](https://github.com/aasm/aasm/issues/277) and [issue #278](https://github.com/aasm/aasm/issues/278) for details)
|
169
|
+
|
170
|
+
## 4.3.0
|
171
|
+
|
172
|
+
* add support for multiple state machines per class (see [issue #158](https://github.com/aasm/aasm/issues/158) and [issue #240](https://github.com/aasm/aasm/issues/240) for details)
|
173
|
+
* special thanks to [@evadne](https://github.com/evadne) for testing this feature, and providing comments and patches (see [issue #245](https://github.com/aasm/aasm/issues/245) for details)
|
174
|
+
|
175
|
+
## 4.2.0
|
176
|
+
|
177
|
+
* support turning off and on the configuration option for `no_direct_assignment` (see [issue #223](https://github.com/aasm/aasm/issues/223) for details)
|
178
|
+
* event arguments are now passed to `:after_commit` callbacks as well (see [issue #238](https://github.com/aasm/aasm/pull/238), thanks to [@kuinak](https://github.com/kuinak))
|
179
|
+
|
180
|
+
## 4.1.1
|
181
|
+
|
182
|
+
* support block notation for `:after_commit` event callbacks (see [issue #224](https://github.com/aasm/aasm/issues/224) for details)
|
183
|
+
* event arguments are now passed to state callbacks as well (not only to event callbacks) (see [issue #219](https://github.com/aasm/aasm/issues/219), thanks to [@tobithiel](https://github.com/tobithiel))
|
184
|
+
* `AASM::InvalidTransition` now references the current object (with the state machine) and the _AASM_ event name (see [issue #217](https://github.com/aasm/aasm/issues/217), thanks to [@awsmsrc](https://github.com/awsmsrc))
|
185
|
+
* bugfix: do not update unloaded state for [Sequel](http://sequel.jeremyevans.net/) (see [issue #218](https://github.com/aasm/aasm/issues/218), thanks to [@godfat](https://github.com/godfat))
|
186
|
+
|
187
|
+
## 4.1.0
|
188
|
+
|
189
|
+
* bugfix: initialize the aasm state column after initialization of the _Mongoid_ instance (see [issue #206](https://github.com/aasm/aasm/issues/206), thanks to [@Shwetakale ](https://github.com/Shwetakale ))
|
190
|
+
* added support for mongomapper ORM (see [issue #203](https://github.com/aasm/aasm/issues/203), thanks to [@reidmorrison ](https://github.com/reidmorrison ))
|
191
|
+
* `aasm_column` has been removed. Use `aasm.attribute_name` instead
|
192
|
+
* `aasm_human_event_name` has been removed. Use `aasm.human_event_name` instead
|
193
|
+
|
194
|
+
## 4.0.8
|
195
|
+
|
196
|
+
* bugfix: may_event_name? should return true or false only (see [issue #200](https://github.com/aasm/aasm/issues/200) for details)
|
197
|
+
|
198
|
+
## 4.0.7
|
199
|
+
|
200
|
+
* bugfix: take private methods into account when checking for callbacks (see [issue #197](https://github.com/aasm/aasm/issues/197) for details)
|
201
|
+
|
202
|
+
## 4.0.6
|
203
|
+
|
204
|
+
* bugfix: `false` is treated as uninitialised state (same as `nil`) (see [issue #195](https://github.com/aasm/aasm/issues/195) for details)
|
205
|
+
* bugfix: an event's `:error` callback now retrieves all arguments passed to the event (see [issue #196](https://github.com/aasm/aasm/issues/196) for details)
|
206
|
+
|
207
|
+
## 4.0.5
|
208
|
+
|
209
|
+
* bugfix: initialize the aasm state column after initialization of the _ActiveRecord_ instance only if the attribute has been loaded (see [issue #193](https://github.com/aasm/aasm/issues/193) for details)
|
210
|
+
|
211
|
+
## 4.0.4
|
212
|
+
|
213
|
+
* corrected callback order in README
|
214
|
+
* bugfix: initialize the aasm state column after initialization of the _ActiveRecord_ instance (see [issue #191](https://github.com/aasm/aasm/issues/191) for details)
|
215
|
+
* bugfix: avoid Rails autoloading conflicts (see [issue #137](https://github.com/aasm/aasm/issues/137) and [issue #139](https://github.com/aasm/aasm/issues/139) for details)
|
216
|
+
|
217
|
+
## 4.0.3
|
218
|
+
|
219
|
+
* bugfix: fire guards only once per transition, part 2 (see [issue #187](https://github.com/aasm/aasm/issues/187) for details)
|
220
|
+
* `aasm_column` is deprecated. Use `aasm.attribute_name` instead
|
221
|
+
|
222
|
+
## 4.0.2
|
223
|
+
|
224
|
+
* bugfix: really support block-guards (defined within a transition block) (see [issue #186](https://github.com/aasm/aasm/issues/186) for details)
|
225
|
+
|
226
|
+
## 4.0.1
|
227
|
+
|
228
|
+
* fire guards only once per transition (see [issue #184](https://github.com/aasm/aasm/issues/184) for details)
|
229
|
+
* `aasm_human_event_name` is deprecated, use `aasm.human_event_name` instead
|
230
|
+
|
231
|
+
## 4.0.0
|
232
|
+
|
233
|
+
* support `if` and `unless` guard syntax: (see [issue #179](https://github.com/aasm/aasm/issues/179) and [issue #181](https://github.com/aasm/aasm/issues/181)), thanks to [@bigtunacan](https://github.com/bigtunacan)
|
234
|
+
* may configure to not allow direct assignment for persisted AASM models (see [issue #53](https://github.com/aasm/aasm/issues/53))
|
235
|
+
* **DSL change**: callbacks don't require `to_state` parameter anymore, but still support it
|
236
|
+
(closing issues
|
237
|
+
[#11](https://github.com/aasm/aasm/issues/11),
|
238
|
+
[#58](https://github.com/aasm/aasm/issues/58) and
|
239
|
+
[#80](https://github.com/aasm/aasm/issues/80)
|
240
|
+
thanks to [@ejlangev](https://github.com/ejlangev))
|
241
|
+
* **DSL change**: `after_commit` hooks are now event-based (see [issue #112](https://github.com/aasm/aasm/issues/112))
|
242
|
+
* **DSL change**: event and state callbacks have been re-ordered; state callbacks are not run anymore if any guard fails
|
243
|
+
* **DSL change**: `:on_transition` renamed to `:after`
|
244
|
+
* **DSL change**: `:on_transition` renamed to `:after`
|
245
|
+
* **DSL change**: transition `:after` binding changed (see [issue #59](https://github.com/aasm/aasm/issues/59), thanks to [@stiff](https://github.com/stiff))
|
246
|
+
* **DSL change**: instance-based events inspection now returns event instances (instead of the event names as symbol)
|
247
|
+
* **DSL change**: instance-based permissible_events has been removed in favor or events(:permissible => true)
|
248
|
+
* **DSL change**: class-based events now returns a list of Event instances (instead of a hash with event names as keys)
|
249
|
+
* **DSL change**: renamed permissible states and events to permitted states events
|
250
|
+
* removed deprecated methods (mostly the ones prefixed with `aasm_`)
|
251
|
+
|
252
|
+
## 3.4.0
|
253
|
+
|
254
|
+
* allow retrieving the current event (`aasm.current_event`) (see [issue #159](https://github.com/aasm/aasm/issues/159) and [issue #168](https://github.com/aasm/aasm/issues/168))
|
255
|
+
|
256
|
+
## 3.3.3
|
257
|
+
|
258
|
+
* bugfix: support reloading development environment in Rails (see [issue #148](https://github.com/aasm/aasm/issues/148))
|
259
|
+
|
260
|
+
## 3.3.2
|
261
|
+
|
262
|
+
* bugfix: avoid conflicts with `failed` and `fired` event names (see [issue #157](https://github.com/aasm/aasm/issues/157)), thanks to [@MichaelXavier](https://github.com/MichaelXavier)
|
263
|
+
* bugfix: not using transactions unless saving to the database (see [issue #162](https://github.com/aasm/aasm/issues/162) and [issue #164](https://github.com/aasm/aasm/issues/164)), thanks to [@roberthoner](https://github.com/roberthoner)
|
264
|
+
* bugfix: `after_commit` should only run if saving to the database (see [issue #151](https://github.com/aasm/aasm/issues/151)), thanks to [@ivantsepp](https://github.com/ivantsepp)
|
265
|
+
|
266
|
+
## 3.3.1
|
267
|
+
|
268
|
+
* bugfix: permissible events will respect given `guards` (see [issue #150](https://github.com/aasm/aasm/issues/150))
|
269
|
+
|
270
|
+
## 3.3.0
|
271
|
+
|
272
|
+
* support for Rails 4.1 enum fields (see [issue #124](https://github.com/aasm/aasm/issues/124), thanks to [@bkon](https://github.com/bkon))
|
273
|
+
* bugfix: allow lazy-evaluation for Rails 3 scopes (see [issue #144](https://github.com/aasm/aasm/issues/144), thanks to [@laurens](https://github.com/laurens))
|
274
|
+
|
275
|
+
## 3.2.1
|
276
|
+
|
277
|
+
* bugfix: permissible_events and events did not contain events with an empty "from" transition (see [issue #140](https://github.com/aasm/aasm/issues/140) and [issue #141](https://github.com/aasm/aasm/issues/141), thanks to [@daniel-rikowski](https://github.com/daniel-rikowski))
|
278
|
+
|
279
|
+
## 3.2.0
|
280
|
+
|
281
|
+
* support [Sequel](http://sequel.jeremyevans.net/) (see [issue #119](https://github.com/aasm/aasm/issues/119), thanks to [@godfat](https://github.com/godfat))
|
282
|
+
* may not fire an unknown event (see [issue #128](https://github.com/aasm/aasm/issues/128)
|
283
|
+
|
284
|
+
## 3.1.1
|
285
|
+
|
286
|
+
* bugfix: don't require ActiveRecord for localizing AASM event and state name (see [issue #113](https://github.com/aasm/aasm/issues/113), thanks to [@silentshade](https://github.com/silentshade))
|
287
|
+
|
288
|
+
## 3.1.0
|
289
|
+
|
290
|
+
* validating the current state (see [issue #95](https://github.com/aasm/aasm/issues/95), thanks to [@ivantsepp](https://github.com/ivantsepp))
|
291
|
+
* allow configuring behavior of nested transactions (see [issue #107](https://github.com/aasm/aasm/issues/107))
|
292
|
+
* support multiple guards per transition
|
293
|
+
* support event guards (see [issue #85](https://github.com/aasm/aasm/issues/85))
|
294
|
+
* support reading from- and to-state during on_transition callback (see [issue #100](https://github.com/aasm/aasm/issues/100))
|
295
|
+
|
296
|
+
## 3.0.26
|
297
|
+
|
298
|
+
* support state.human_name (aliased to state.localized_name) (see [issue #105](https://github.com/aasm/aasm/issues/105))
|
299
|
+
|
300
|
+
## 3.0.25
|
301
|
+
|
302
|
+
* initialize the state even if validation is skipped (for ActiveRecord and Mongoid persistence) (see [issue #103](https://github.com/aasm/aasm/issues/103), thanks to [@vfonic](https://github.com/vfonic) and [@aaronklaassen](https://github.com/aaronklaassen))
|
303
|
+
|
304
|
+
## 3.0.24
|
305
|
+
|
306
|
+
* added support for event blocks (thanks to [@Intrepidd](https://github.com/Intrepidd))
|
307
|
+
|
308
|
+
## 3.0.23
|
309
|
+
|
310
|
+
* added support for `after_commit` callback (transaction support) (thanks to [@tisba](https://github.com/tisba))
|
311
|
+
|
312
|
+
## 3.0.22
|
313
|
+
|
314
|
+
* fixed [issue 88](https://github.com/aasm/aasm/issues/88): wrong number of arguments for transaction method
|
315
|
+
|
316
|
+
## 3.0.21
|
317
|
+
|
318
|
+
* support nested ActiveRecord transactions ([@ozeias](https://github.com/ozeias))
|
319
|
+
* allow overwriting of events, can be very useful with inheritance ([@Intrepidd](https://github.com/Intrepidd))
|
320
|
+
|
321
|
+
## 3.0.20
|
322
|
+
|
323
|
+
* added configuration option to disable automatic scope creation
|
324
|
+
|
325
|
+
## 3.0.19
|
326
|
+
|
327
|
+
* fixed deprecation warning with *Rails 4* (`Relation#update_all` with conditions is deprecated)
|
328
|
+
* fixing [issue #69](https://github.com/aasm/aasm/issues/69) ( *ActiveRecord* scopes are not chainable)
|
329
|
+
|
330
|
+
## 3.0.18
|
331
|
+
|
332
|
+
* fixing [issue #66](https://github.com/aasm/aasm/issues/66) (state methods not reflecting the current state)
|
333
|
+
|
334
|
+
## 3.0.17
|
335
|
+
|
336
|
+
* supporting instance level inspection for states (including permissible state, see [issue #54](https://github.com/aasm/aasm/issues/54))
|
337
|
+
* added autocreation of constants for each state ([@jherdman](https://github.com/jherdman))
|
338
|
+
|
339
|
+
## 3.0.16
|
340
|
+
|
341
|
+
* added autocreation of state scopes for Mongoid (thanks to [@jonnyshields](https://github.com/johnnyshields))
|
342
|
+
|
343
|
+
## 3.0.15
|
344
|
+
|
345
|
+
* added support for localized state names (on a class level, like `Record.aasm.states.map(&:localized_name)`)
|
346
|
+
|
347
|
+
## 3.0.14
|
348
|
+
|
349
|
+
* supporting event inspection for to-states transitions (`Event#transitions_to_state?`)
|
350
|
+
|
351
|
+
## 3.0.13
|
352
|
+
|
353
|
+
* supporting *ActiveRecord* transactions when firing an event
|
354
|
+
|
355
|
+
## 3.0.12
|
356
|
+
|
357
|
+
* `aasm_from_states_for_state` now supports to filter for specific transition
|
358
|
+
|
359
|
+
## 3.0.11
|
360
|
+
|
361
|
+
* added class method `aasm_from_states_for_state` to retrieve all from states (regarding transitions) for a given state
|
362
|
+
|
363
|
+
## 3.0.10
|
364
|
+
|
365
|
+
* added support for transitions from all other states (thanks to [@swrobel](https://github.com/swrobel))
|
366
|
+
|
367
|
+
## 3.0.9
|
368
|
+
|
369
|
+
* guard checks (e.g. `may_edit?`) now support guard parameters as well
|
370
|
+
|
371
|
+
## 3.0.8
|
372
|
+
|
373
|
+
* fixed issue with generating docs using yard
|
374
|
+
|
375
|
+
## 3.0.7
|
376
|
+
|
377
|
+
* removed deprecation warning when localizing aasm state names (look at [issue #38](https://github.com/rubyist/aasm/issues/38) for details)
|
378
|
+
|
379
|
+
## 3.0.6
|
380
|
+
|
381
|
+
* bugfix: if configured to skip validation the code does not validate anymore
|
382
|
+
|
383
|
+
## 3.0.5
|
384
|
+
|
385
|
+
* bugfix: get rid of error with old rubygems versions
|
386
|
+
|
387
|
+
## 3.0.4
|
388
|
+
|
389
|
+
* bugfix: Subclasses of aasm-enabled classes don't lose settings anymore (thanks to codez)
|
390
|
+
|
391
|
+
## 3.0.3
|
392
|
+
|
393
|
+
* bugfix: ActiveRecord scopes are generated when using the new DSL
|
394
|
+
|
395
|
+
## 3.0.2
|
396
|
+
|
397
|
+
* ActiveRecord persistence can ignore validation when trying to save invalid models
|
398
|
+
|
399
|
+
## 3.0.1
|
400
|
+
|
401
|
+
* added support for Mongoid (Thanks, Michał Taberski)
|
402
|
+
|
403
|
+
## 3.0.0
|
404
|
+
|
405
|
+
* switched documentation to the new DSL
|
406
|
+
* whiny transactions: by default, raise an exception if an event transition is not possible
|
407
|
+
* you may disable whiny transactions
|
408
|
+
|
409
|
+
## 2.4.0
|
410
|
+
|
411
|
+
* supporting new DSL (which is much shorter)
|
412
|
+
|
413
|
+
## 2.3.1
|
414
|
+
|
415
|
+
* bugfix: avoid naming conflict with i18n
|
416
|
+
|
417
|
+
## 2.3.0
|
418
|
+
|
419
|
+
* supporting i18n
|
420
|
+
* supporting regular expressions for hash values and strings
|