state_machines 0.4.0 → 0.6.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 (454) hide show
  1. checksums.yaml +5 -5
  2. data/LICENSE.txt +1 -1
  3. data/README.md +18 -13
  4. data/lib/state_machines/branch.rb +81 -79
  5. data/lib/state_machines/callback.rb +22 -21
  6. data/lib/state_machines/eval_helpers.rb +15 -15
  7. data/lib/state_machines/event.rb +31 -28
  8. data/lib/state_machines/event_collection.rb +26 -25
  9. data/lib/state_machines/extensions.rb +2 -2
  10. data/lib/state_machines/helper_module.rb +1 -1
  11. data/lib/state_machines/integrations/base.rb +2 -5
  12. data/lib/state_machines/integrations.rb +9 -13
  13. data/lib/state_machines/machine.rb +386 -379
  14. data/lib/state_machines/machine_collection.rb +11 -10
  15. data/lib/state_machines/macro_methods.rb +100 -100
  16. data/lib/state_machines/matcher.rb +23 -23
  17. data/lib/state_machines/matcher_helpers.rb +11 -11
  18. data/lib/state_machines/node_collection.rb +15 -13
  19. data/lib/state_machines/path.rb +56 -55
  20. data/lib/state_machines/path_collection.rb +38 -38
  21. data/lib/state_machines/state.rb +28 -22
  22. data/lib/state_machines/state_collection.rb +21 -20
  23. data/lib/state_machines/state_context.rb +33 -35
  24. data/lib/state_machines/transition.rb +180 -178
  25. data/lib/state_machines/transition_collection.rb +170 -168
  26. data/lib/state_machines/version.rb +1 -1
  27. metadata +5 -852
  28. data/.gitignore +0 -21
  29. data/.rspec +0 -3
  30. data/.travis.yml +0 -14
  31. data/Changelog.md +0 -16
  32. data/Contributors.md +0 -39
  33. data/Gemfile +0 -8
  34. data/Rakefile +0 -12
  35. data/Testing.md +0 -0
  36. data/state_machines.gemspec +0 -23
  37. data/test/files/integrations/event_on_failure_integration.rb +0 -10
  38. data/test/files/integrations/vehicle.rb +0 -7
  39. data/test/files/models/auto_shop.rb +0 -31
  40. data/test/files/models/car.rb +0 -21
  41. data/test/files/models/model_base.rb +0 -6
  42. data/test/files/models/motorcycle.rb +0 -11
  43. data/test/files/models/traffic_light.rb +0 -47
  44. data/test/files/models/vehicle.rb +0 -127
  45. data/test/files/node.rb +0 -5
  46. data/test/files/switch.rb +0 -15
  47. data/test/functional/auto_shop_available_test.rb +0 -20
  48. data/test/functional/auto_shop_busy_test.rb +0 -25
  49. data/test/functional/car_backing_up_test.rb +0 -45
  50. data/test/functional/car_test.rb +0 -49
  51. data/test/functional/motorcycle_test.rb +0 -46
  52. data/test/functional/traffic_light_caution_test.rb +0 -17
  53. data/test/functional/traffic_light_proceed_test.rb +0 -17
  54. data/test/functional/traffic_light_stop_test.rb +0 -26
  55. data/test/functional/vehicle_first_gear_test.rb +0 -42
  56. data/test/functional/vehicle_idling_test.rb +0 -59
  57. data/test/functional/vehicle_locked_test.rb +0 -29
  58. data/test/functional/vehicle_parked_test.rb +0 -53
  59. data/test/functional/vehicle_repaired_test.rb +0 -20
  60. data/test/functional/vehicle_second_gear_test.rb +0 -42
  61. data/test/functional/vehicle_stalled_test.rb +0 -65
  62. data/test/functional/vehicle_test.rb +0 -20
  63. data/test/functional/vehicle_third_gear_test.rb +0 -42
  64. data/test/functional/vehicle_unsaved_test.rb +0 -181
  65. data/test/functional/vehicle_with_event_attributes_test.rb +0 -30
  66. data/test/functional/vehicle_with_parallel_events_test.rb +0 -36
  67. data/test/test_helper.rb +0 -15
  68. data/test/unit/assertions/assert_exclusive_keys_test.rb +0 -22
  69. data/test/unit/assertions/assert_valid_key_test.rb +0 -12
  70. data/test/unit/branch/branch_test.rb +0 -28
  71. data/test/unit/branch/branch_with_conflicting_conditionals_test.rb +0 -27
  72. data/test/unit/branch/branch_with_conflicting_from_requirements_test.rb +0 -8
  73. data/test/unit/branch/branch_with_conflicting_on_requirements_test.rb +0 -8
  74. data/test/unit/branch/branch_with_conflicting_to_requirements_test.rb +0 -8
  75. data/test/unit/branch/branch_with_different_requirements_test.rb +0 -41
  76. data/test/unit/branch/branch_with_except_from_matcher_requirement_test.rb +0 -8
  77. data/test/unit/branch/branch_with_except_from_requirement_test.rb +0 -36
  78. data/test/unit/branch/branch_with_except_on_matcher_requirement_test.rb +0 -8
  79. data/test/unit/branch/branch_with_except_on_requirement_test.rb +0 -36
  80. data/test/unit/branch/branch_with_except_to_matcher_requirement_test.rb +0 -8
  81. data/test/unit/branch/branch_with_except_to_requirement_test.rb +0 -36
  82. data/test/unit/branch/branch_with_from_matcher_requirement_test.rb +0 -20
  83. data/test/unit/branch/branch_with_from_requirement_test.rb +0 -45
  84. data/test/unit/branch/branch_with_if_conditional_test.rb +0 -27
  85. data/test/unit/branch/branch_with_implicit_and_explicit_requirements_test.rb +0 -23
  86. data/test/unit/branch/branch_with_implicit_from_requirement_matcher_test.rb +0 -20
  87. data/test/unit/branch/branch_with_implicit_requirement_test.rb +0 -20
  88. data/test/unit/branch/branch_with_implicit_to_requirement_matcher_test.rb +0 -16
  89. data/test/unit/branch/branch_with_multiple_except_from_requirements_test.rb +0 -20
  90. data/test/unit/branch/branch_with_multiple_except_on_requirements_test.rb +0 -16
  91. data/test/unit/branch/branch_with_multiple_except_to_requirements_test.rb +0 -20
  92. data/test/unit/branch/branch_with_multiple_from_requirements_test.rb +0 -16
  93. data/test/unit/branch/branch_with_multiple_if_conditionals_test.rb +0 -20
  94. data/test/unit/branch/branch_with_multiple_implicit_requirements_test.rb +0 -53
  95. data/test/unit/branch/branch_with_multiple_on_requirements_test.rb +0 -20
  96. data/test/unit/branch/branch_with_multiple_to_requirements_test.rb +0 -20
  97. data/test/unit/branch/branch_with_multiple_unless_conditionals_test.rb +0 -20
  98. data/test/unit/branch/branch_with_nil_requirements_test.rb +0 -28
  99. data/test/unit/branch/branch_with_no_requirements_test.rb +0 -36
  100. data/test/unit/branch/branch_with_on_matcher_requirement_test.rb +0 -16
  101. data/test/unit/branch/branch_with_on_requirement_test.rb +0 -45
  102. data/test/unit/branch/branch_with_to_matcher_requirement_test.rb +0 -20
  103. data/test/unit/branch/branch_with_to_requirement_test.rb +0 -45
  104. data/test/unit/branch/branch_with_unless_conditional_test.rb +0 -27
  105. data/test/unit/branch/branch_without_guards_test.rb +0 -27
  106. data/test/unit/callback/callback_by_default_test.rb +0 -25
  107. data/test/unit/callback/callback_test.rb +0 -53
  108. data/test/unit/callback/callback_with_application_bound_object_test.rb +0 -23
  109. data/test/unit/callback/callback_with_application_terminator_test.rb +0 -24
  110. data/test/unit/callback/callback_with_arguments_test.rb +0 -14
  111. data/test/unit/callback/callback_with_around_type_and_arguments_test.rb +0 -25
  112. data/test/unit/callback/callback_with_around_type_and_block_test.rb +0 -44
  113. data/test/unit/callback/callback_with_around_type_and_bound_method_test.rb +0 -23
  114. data/test/unit/callback/callback_with_around_type_and_multiple_methods_test.rb +0 -93
  115. data/test/unit/callback/callback_with_around_type_and_terminator_test.rb +0 -17
  116. data/test/unit/callback/callback_with_block_test.rb +0 -20
  117. data/test/unit/callback/callback_with_bound_method_and_arguments_test.rb +0 -28
  118. data/test/unit/callback/callback_with_bound_method_test.rb +0 -35
  119. data/test/unit/callback/callback_with_do_method_test.rb +0 -18
  120. data/test/unit/callback/callback_with_explicit_requirements_test.rb +0 -32
  121. data/test/unit/callback/callback_with_if_condition_test.rb +0 -17
  122. data/test/unit/callback/callback_with_implicit_requirements_test.rb +0 -32
  123. data/test/unit/callback/callback_with_method_argument_test.rb +0 -18
  124. data/test/unit/callback/callback_with_mixed_methods_test.rb +0 -31
  125. data/test/unit/callback/callback_with_multiple_bound_methods_test.rb +0 -21
  126. data/test/unit/callback/callback_with_multiple_do_methods_test.rb +0 -29
  127. data/test/unit/callback/callback_with_multiple_method_arguments_test.rb +0 -29
  128. data/test/unit/callback/callback_with_terminator_test.rb +0 -22
  129. data/test/unit/callback/callback_with_unbound_method_test.rb +0 -14
  130. data/test/unit/callback/callback_with_unless_condition_test.rb +0 -17
  131. data/test/unit/callback/callback_without_arguments_test.rb +0 -14
  132. data/test/unit/callback/callback_without_terminator_test.rb +0 -12
  133. data/test/unit/error/error_by_default_test.rb +0 -21
  134. data/test/unit/error/error_with_message_test.rb +0 -23
  135. data/test/unit/eval_helper/eval_helpers_base_test.rb +0 -8
  136. data/test/unit/eval_helper/eval_helpers_proc_block_and_explicit_arguments_test.rb +0 -14
  137. data/test/unit/eval_helper/eval_helpers_proc_block_and_implicit_arguments_test.rb +0 -14
  138. data/test/unit/eval_helper/eval_helpers_proc_test.rb +0 -13
  139. data/test/unit/eval_helper/eval_helpers_proc_with_arguments_test.rb +0 -13
  140. data/test/unit/eval_helper/eval_helpers_proc_with_block_test.rb +0 -13
  141. data/test/unit/eval_helper/eval_helpers_proc_with_block_without_arguments_test.rb +0 -18
  142. data/test/unit/eval_helper/eval_helpers_proc_with_block_without_object_test.rb +0 -14
  143. data/test/unit/eval_helper/eval_helpers_proc_without_arguments_test.rb +0 -19
  144. data/test/unit/eval_helper/eval_helpers_string_test.rb +0 -25
  145. data/test/unit/eval_helper/eval_helpers_string_with_block_test.rb +0 -12
  146. data/test/unit/eval_helper/eval_helpers_symbol_method_missing_test.rb +0 -20
  147. data/test/unit/eval_helper/eval_helpers_symbol_private_test.rb +0 -17
  148. data/test/unit/eval_helper/eval_helpers_symbol_protected_test.rb +0 -17
  149. data/test/unit/eval_helper/eval_helpers_symbol_tainted_method_test.rb +0 -18
  150. data/test/unit/eval_helper/eval_helpers_symbol_test.rb +0 -16
  151. data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_and_block_test.rb +0 -16
  152. data/test/unit/eval_helper/eval_helpers_symbol_with_arguments_test.rb +0 -16
  153. data/test/unit/eval_helper/eval_helpers_symbol_with_block_test.rb +0 -16
  154. data/test/unit/eval_helper/eval_helpers_test.rb +0 -13
  155. data/test/unit/event/event_after_being_copied_test.rb +0 -17
  156. data/test/unit/event/event_by_default_test.rb +0 -60
  157. data/test/unit/event/event_context_test.rb +0 -16
  158. data/test/unit/event/event_on_failure_test.rb +0 -44
  159. data/test/unit/event/event_test.rb +0 -34
  160. data/test/unit/event/event_transitions_test.rb +0 -62
  161. data/test/unit/event/event_with_conflicting_helpers_after_definition_test.rb +0 -79
  162. data/test/unit/event/event_with_conflicting_helpers_before_definition_test.rb +0 -58
  163. data/test/unit/event/event_with_conflicting_machine_test.rb +0 -48
  164. data/test/unit/event/event_with_dynamic_human_name_test.rb +0 -26
  165. data/test/unit/event/event_with_human_name_test.rb +0 -13
  166. data/test/unit/event/event_with_invalid_current_state_test.rb +0 -30
  167. data/test/unit/event/event_with_machine_action_test.rb +0 -33
  168. data/test/unit/event/event_with_marshalling_test.rb +0 -47
  169. data/test/unit/event/event_with_matching_disabled_transitions_test.rb +0 -115
  170. data/test/unit/event/event_with_matching_enabled_transitions_test.rb +0 -75
  171. data/test/unit/event/event_with_multiple_transitions_test.rb +0 -61
  172. data/test/unit/event/event_with_namespace_test.rb +0 -34
  173. data/test/unit/event/event_with_transition_with_blacklisted_to_state_test.rb +0 -60
  174. data/test/unit/event/event_with_transition_with_loopback_state_test.rb +0 -36
  175. data/test/unit/event/event_with_transition_with_nil_to_state_test.rb +0 -36
  176. data/test/unit/event/event_with_transition_with_whitelisted_to_state_test.rb +0 -51
  177. data/test/unit/event/event_with_transition_without_to_state_test.rb +0 -36
  178. data/test/unit/event/event_with_transitions_test.rb +0 -32
  179. data/test/unit/event/event_without_matching_transitions_test.rb +0 -41
  180. data/test/unit/event/event_without_transitions_test.rb +0 -28
  181. data/test/unit/event/invalid_event_test.rb +0 -20
  182. data/test/unit/event_collection/event_collection_attribute_with_machine_action_test.rb +0 -62
  183. data/test/unit/event_collection/event_collection_attribute_with_namespaced_machine_test.rb +0 -36
  184. data/test/unit/event_collection/event_collection_by_default_test.rb +0 -26
  185. data/test/unit/event_collection/event_collection_test.rb +0 -39
  186. data/test/unit/event_collection/event_collection_with_custom_machine_attribute_test.rb +0 -31
  187. data/test/unit/event_collection/event_collection_with_events_with_transitions_test.rb +0 -76
  188. data/test/unit/event_collection/event_collection_with_multiple_events_test.rb +0 -27
  189. data/test/unit/event_collection/event_collection_with_validations_test.rb +0 -74
  190. data/test/unit/event_collection/event_collection_without_machine_action_test.rb +0 -18
  191. data/test/unit/event_collection/event_string_collection_test.rb +0 -31
  192. data/test/unit/helper_module_test.rb +0 -17
  193. data/test/unit/integrations/integration_finder_test.rb +0 -16
  194. data/test/unit/integrations/integration_matcher_test.rb +0 -27
  195. data/test/unit/invalid_transition/invalid_parallel_transition_test.rb +0 -18
  196. data/test/unit/invalid_transition/invalid_transition_test.rb +0 -47
  197. data/test/unit/invalid_transition/invalid_transition_with_integration_test.rb +0 -45
  198. data/test/unit/invalid_transition/invalid_transition_with_namespace_test.rb +0 -32
  199. data/test/unit/machine/machine_after_being_copied_test.rb +0 -62
  200. data/test/unit/machine/machine_after_changing_initial_state.rb +0 -28
  201. data/test/unit/machine/machine_after_changing_owner_class_test.rb +0 -31
  202. data/test/unit/machine/machine_by_default_test.rb +0 -160
  203. data/test/unit/machine/machine_finder_custom_options_test.rb +0 -17
  204. data/test/unit/machine/machine_finder_with_existing_machine_on_superclass_test.rb +0 -85
  205. data/test/unit/machine/machine_finder_with_existing_on_same_class_test.rb +0 -23
  206. data/test/unit/machine/machine_finder_without_existing_machine_test.rb +0 -25
  207. data/test/unit/machine/machine_persistence_test.rb +0 -52
  208. data/test/unit/machine/machine_state_initialization_test.rb +0 -56
  209. data/test/unit/machine/machine_test.rb +0 -30
  210. data/test/unit/machine/machine_with_action_already_overridden_test.rb +0 -23
  211. data/test/unit/machine/machine_with_action_defined_in_class_test.rb +0 -37
  212. data/test/unit/machine/machine_with_action_defined_in_included_module_test.rb +0 -46
  213. data/test/unit/machine/machine_with_action_defined_in_superclass_test.rb +0 -43
  214. data/test/unit/machine/machine_with_action_undefined_test.rb +0 -33
  215. data/test/unit/machine/machine_with_cached_state_test.rb +0 -20
  216. data/test/unit/machine/machine_with_class_helpers_test.rb +0 -179
  217. data/test/unit/machine/machine_with_conflicting_helpers_after_definition_test.rb +0 -244
  218. data/test/unit/machine/machine_with_conflicting_helpers_before_definition_test.rb +0 -175
  219. data/test/unit/machine/machine_with_custom_action_test.rb +0 -11
  220. data/test/unit/machine/machine_with_custom_attribute_test.rb +0 -103
  221. data/test/unit/machine/machine_with_custom_initialize_test.rb +0 -24
  222. data/test/unit/machine/machine_with_custom_integration_test.rb +0 -72
  223. data/test/unit/machine/machine_with_custom_invalidation_test.rb +0 -39
  224. data/test/unit/machine/machine_with_custom_name_test.rb +0 -57
  225. data/test/unit/machine/machine_with_custom_plural_test.rb +0 -52
  226. data/test/unit/machine/machine_with_dynamic_initial_state_test.rb +0 -65
  227. data/test/unit/machine/machine_with_event_matchers_test.rb +0 -41
  228. data/test/unit/machine/machine_with_events_test.rb +0 -52
  229. data/test/unit/machine/machine_with_events_with_custom_human_names_test.rb +0 -18
  230. data/test/unit/machine/machine_with_events_with_transitions_test.rb +0 -37
  231. data/test/unit/machine/machine_with_existing_event_test.rb +0 -17
  232. data/test/unit/machine/machine_with_existing_machines_on_owner_class_test.rb +0 -20
  233. data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_class_test.rb +0 -71
  234. data/test/unit/machine/machine_with_existing_machines_with_same_attributes_on_owner_subclass_test.rb +0 -31
  235. data/test/unit/machine/machine_with_existing_state_test.rb +0 -27
  236. data/test/unit/machine/machine_with_failure_callbacks_test.rb +0 -48
  237. data/test/unit/machine/machine_with_helpers_test.rb +0 -14
  238. data/test/unit/machine/machine_with_initial_state_with_value_and_owner_default.rb +0 -25
  239. data/test/unit/machine/machine_with_initialize_and_super_test.rb +0 -17
  240. data/test/unit/machine/machine_with_initialize_arguments_and_block_test.rb +0 -31
  241. data/test/unit/machine/machine_with_initialize_without_super_test.rb +0 -17
  242. data/test/unit/machine/machine_with_instance_helpers_test.rb +0 -179
  243. data/test/unit/machine/machine_with_integration_test.rb +0 -72
  244. data/test/unit/machine/machine_with_multiple_events_test.rb +0 -32
  245. data/test/unit/machine/machine_with_namespace_test.rb +0 -48
  246. data/test/unit/machine/machine_with_nil_action_test.rb +0 -27
  247. data/test/unit/machine/machine_with_other_states.rb +0 -22
  248. data/test/unit/machine/machine_with_owner_subclass_test.rb +0 -18
  249. data/test/unit/machine/machine_with_paths_test.rb +0 -25
  250. data/test/unit/machine/machine_with_private_action_test.rb +0 -43
  251. data/test/unit/machine/machine_with_state_matchers_test.rb +0 -41
  252. data/test/unit/machine/machine_with_state_with_matchers_test.rb +0 -19
  253. data/test/unit/machine/machine_with_states_test.rb +0 -55
  254. data/test/unit/machine/machine_with_states_with_behaviors_test.rb +0 -23
  255. data/test/unit/machine/machine_with_states_with_custom_human_names_test.rb +0 -18
  256. data/test/unit/machine/machine_with_states_with_custom_values_test.rb +0 -21
  257. data/test/unit/machine/machine_with_states_with_runtime_dependencies_test.rb +0 -19
  258. data/test/unit/machine/machine_with_static_initial_state_test.rb +0 -49
  259. data/test/unit/machine/machine_with_superclass_conflicting_helpers_after_definition_test.rb +0 -36
  260. data/test/unit/machine/machine_with_transition_callbacks_test.rb +0 -144
  261. data/test/unit/machine/machine_with_transitions_test.rb +0 -87
  262. data/test/unit/machine/machine_without_initialization_test.rb +0 -31
  263. data/test/unit/machine/machine_without_initialize_test.rb +0 -14
  264. data/test/unit/machine/machine_without_integration_test.rb +0 -31
  265. data/test/unit/machine_collection/machine_collection_by_default_test.rb +0 -11
  266. data/test/unit/machine_collection/machine_collection_fire_attributes_with_validations_test.rb +0 -72
  267. data/test/unit/machine_collection/machine_collection_fire_test.rb +0 -80
  268. data/test/unit/machine_collection/machine_collection_fire_with_transactions_test.rb +0 -54
  269. data/test/unit/machine_collection/machine_collection_fire_with_validations_test.rb +0 -76
  270. data/test/unit/machine_collection/machine_collection_state_initialization_test.rb +0 -111
  271. data/test/unit/machine_collection/machine_collection_transitions_with_blank_events_test.rb +0 -25
  272. data/test/unit/machine_collection/machine_collection_transitions_with_custom_options_test.rb +0 -20
  273. data/test/unit/machine_collection/machine_collection_transitions_with_different_actions_test.rb +0 -26
  274. data/test/unit/machine_collection/machine_collection_transitions_with_exisiting_transitions_test.rb +0 -25
  275. data/test/unit/machine_collection/machine_collection_transitions_with_invalid_events_test.rb +0 -25
  276. data/test/unit/machine_collection/machine_collection_transitions_with_same_actions_test.rb +0 -31
  277. data/test/unit/machine_collection/machine_collection_transitions_with_transition_test.rb +0 -26
  278. data/test/unit/machine_collection/machine_collection_transitions_without_events_test.rb +0 -25
  279. data/test/unit/machine_collection/machine_collection_transitions_without_transition_test.rb +0 -27
  280. data/test/unit/matcher/all_matcher_test.rb +0 -29
  281. data/test/unit/matcher/blacklist_matcher_test.rb +0 -30
  282. data/test/unit/matcher/loopback_matcher_test.rb +0 -27
  283. data/test/unit/matcher/matcher_by_default_test.rb +0 -15
  284. data/test/unit/matcher/matcher_with_multiple_values_test.rb +0 -15
  285. data/test/unit/matcher/matcher_with_value_test.rb +0 -15
  286. data/test/unit/matcher/whitelist_matcher_test.rb +0 -30
  287. data/test/unit/matcher_helpers/matcher_helpers_all_test.rb +0 -14
  288. data/test/unit/matcher_helpers/matcher_helpers_any_test.rb +0 -14
  289. data/test/unit/matcher_helpers/matcher_helpers_same_test.rb +0 -13
  290. data/test/unit/node_collection/node_collection_after_being_copied_test.rb +0 -46
  291. data/test/unit/node_collection/node_collection_after_update_test.rb +0 -36
  292. data/test/unit/node_collection/node_collection_by_default_test.rb +0 -22
  293. data/test/unit/node_collection/node_collection_test.rb +0 -23
  294. data/test/unit/node_collection/node_collection_with_indices_test.rb +0 -42
  295. data/test/unit/node_collection/node_collection_with_matcher_contexts_test.rb +0 -25
  296. data/test/unit/node_collection/node_collection_with_nodes_test.rb +0 -46
  297. data/test/unit/node_collection/node_collection_with_numeric_index_test.rb +0 -24
  298. data/test/unit/node_collection/node_collection_with_postdefined_contexts_test.rb +0 -22
  299. data/test/unit/node_collection/node_collection_with_predefined_contexts_test.rb +0 -23
  300. data/test/unit/node_collection/node_collection_with_string_index_test.rb +0 -20
  301. data/test/unit/node_collection/node_collection_with_symbol_index_test.rb +0 -20
  302. data/test/unit/node_collection/node_collection_without_indices_test.rb +0 -30
  303. data/test/unit/path/path_by_default_test.rb +0 -54
  304. data/test/unit/path/path_test.rb +0 -14
  305. data/test/unit/path/path_with_available_transitions_after_reaching_target_test.rb +0 -40
  306. data/test/unit/path/path_with_available_transitions_test.rb +0 -54
  307. data/test/unit/path/path_with_deep_target_reached_test.rb +0 -50
  308. data/test/unit/path/path_with_deep_target_test.rb +0 -40
  309. data/test/unit/path/path_with_duplicates_test.rb +0 -32
  310. data/test/unit/path/path_with_encountered_transitions_test.rb +0 -34
  311. data/test/unit/path/path_with_guarded_transitions_test.rb +0 -42
  312. data/test/unit/path/path_with_reached_target_test.rb +0 -35
  313. data/test/unit/path/path_with_transitions_test.rb +0 -54
  314. data/test/unit/path/path_with_unreached_target_test.rb +0 -31
  315. data/test/unit/path/path_without_transitions_test.rb +0 -24
  316. data/test/unit/path_collection/path_collection_by_default_test.rb +0 -46
  317. data/test/unit/path_collection/path_collection_test.rb +0 -24
  318. data/test/unit/path_collection/path_collection_with_deep_paths_test.rb +0 -43
  319. data/test/unit/path_collection/path_collection_with_duplicate_nodes_test.rb +0 -31
  320. data/test/unit/path_collection/path_collection_with_from_state_test.rb +0 -27
  321. data/test/unit/path_collection/path_collection_with_paths_test.rb +0 -47
  322. data/test/unit/path_collection/path_collection_with_to_state_test.rb +0 -29
  323. data/test/unit/path_collection/path_with_guarded_paths_test.rb +0 -25
  324. data/test/unit/state/state_after_being_copied_test.rb +0 -19
  325. data/test/unit/state/state_by_default_test.rb +0 -41
  326. data/test/unit/state/state_final_test.rb +0 -28
  327. data/test/unit/state/state_initial_test.rb +0 -13
  328. data/test/unit/state/state_not_final_test.rb +0 -32
  329. data/test/unit/state/state_not_initial_test.rb +0 -13
  330. data/test/unit/state/state_test.rb +0 -44
  331. data/test/unit/state/state_with_cached_lambda_value_test.rb +0 -29
  332. data/test/unit/state/state_with_conflicting_helpers_after_definition_test.rb +0 -38
  333. data/test/unit/state/state_with_conflicting_helpers_before_definition_test.rb +0 -29
  334. data/test/unit/state/state_with_conflicting_machine_name_test.rb +0 -20
  335. data/test/unit/state/state_with_conflicting_machine_test.rb +0 -37
  336. data/test/unit/state/state_with_context_test.rb +0 -60
  337. data/test/unit/state/state_with_dynamic_human_name_test.rb +0 -25
  338. data/test/unit/state/state_with_existing_context_method_test.rb +0 -24
  339. data/test/unit/state/state_with_human_name_test.rb +0 -13
  340. data/test/unit/state/state_with_integer_value_test.rb +0 -32
  341. data/test/unit/state/state_with_invalid_method_call_test.rb +0 -21
  342. data/test/unit/state/state_with_lambda_value_test.rb +0 -37
  343. data/test/unit/state/state_with_matcher_test.rb +0 -18
  344. data/test/unit/state/state_with_multiple_contexts_test.rb +0 -57
  345. data/test/unit/state/state_with_name_test.rb +0 -43
  346. data/test/unit/state/state_with_namespace_test.rb +0 -22
  347. data/test/unit/state/state_with_nil_value_test.rb +0 -35
  348. data/test/unit/state/state_with_redefined_context_method_test.rb +0 -45
  349. data/test/unit/state/state_with_symbolic_value_test.rb +0 -32
  350. data/test/unit/state/state_with_valid_inherited_method_call_for_current_state_test.rb +0 -40
  351. data/test/unit/state/state_with_valid_method_call_for_current_state_test.rb +0 -33
  352. data/test/unit/state/state_with_valid_method_call_for_different_state_test.rb +0 -41
  353. data/test/unit/state/state_without_cached_lambda_value_test.rb +0 -25
  354. data/test/unit/state/state_without_name_test.rb +0 -39
  355. data/test/unit/state_collection/state_collection_by_default_test.rb +0 -21
  356. data/test/unit/state_collection/state_collection_string_test.rb +0 -35
  357. data/test/unit/state_collection/state_collection_test.rb +0 -74
  358. data/test/unit/state_collection/state_collection_with_custom_state_values_test.rb +0 -29
  359. data/test/unit/state_collection/state_collection_with_event_transitions_test.rb +0 -39
  360. data/test/unit/state_collection/state_collection_with_initial_state_test.rb +0 -40
  361. data/test/unit/state_collection/state_collection_with_namespace_test.rb +0 -21
  362. data/test/unit/state_collection/state_collection_with_state_behaviors_test.rb +0 -40
  363. data/test/unit/state_collection/state_collection_with_state_matchers_test.rb +0 -29
  364. data/test/unit/state_collection/state_collection_with_transition_callbacks_test.rb +0 -40
  365. data/test/unit/state_context/state_context_proxy_test.rb +0 -26
  366. data/test/unit/state_context/state_context_proxy_with_if_and_unless_conditions_test.rb +0 -42
  367. data/test/unit/state_context/state_context_proxy_with_if_condition_test.rb +0 -64
  368. data/test/unit/state_context/state_context_proxy_with_multiple_if_conditions_test.rb +0 -32
  369. data/test/unit/state_context/state_context_proxy_with_multiple_unless_conditions_test.rb +0 -32
  370. data/test/unit/state_context/state_context_proxy_with_unless_condition_test.rb +0 -64
  371. data/test/unit/state_context/state_context_proxy_without_conditions_test.rb +0 -31
  372. data/test/unit/state_context/state_context_test.rb +0 -28
  373. data/test/unit/state_context/state_context_transition_test.rb +0 -104
  374. data/test/unit/state_context/state_context_with_matching_transition_test.rb +0 -27
  375. data/test/unit/state_machine/state_machine_by_default_test.rb +0 -12
  376. data/test/unit/state_machine/state_machine_test.rb +0 -20
  377. data/test/unit/transition/transition_after_being_performed_test.rb +0 -48
  378. data/test/unit/transition/transition_after_being_persisted_test.rb +0 -46
  379. data/test/unit/transition/transition_after_being_rolled_back_test.rb +0 -35
  380. data/test/unit/transition/transition_equality_test.rb +0 -52
  381. data/test/unit/transition/transition_loopback_test.rb +0 -18
  382. data/test/unit/transition/transition_test.rb +0 -96
  383. data/test/unit/transition/transition_transient_test.rb +0 -20
  384. data/test/unit/transition/transition_with_action_test.rb +0 -27
  385. data/test/unit/transition/transition_with_after_callbacks_skipped_test.rb +0 -127
  386. data/test/unit/transition/transition_with_after_callbacks_test.rb +0 -93
  387. data/test/unit/transition/transition_with_around_callbacks_test.rb +0 -141
  388. data/test/unit/transition/transition_with_before_callbacks_skipped_test.rb +0 -30
  389. data/test/unit/transition/transition_with_before_callbacks_test.rb +0 -104
  390. data/test/unit/transition/transition_with_custom_machine_attribute_test.rb +0 -28
  391. data/test/unit/transition/transition_with_different_states_test.rb +0 -18
  392. data/test/unit/transition/transition_with_dynamic_to_value_test.rb +0 -19
  393. data/test/unit/transition/transition_with_failure_callbacks_test.rb +0 -84
  394. data/test/unit/transition/transition_with_invalid_nodes_test.rb +0 -29
  395. data/test/unit/transition/transition_with_mixed_callbacks_test.rb +0 -105
  396. data/test/unit/transition/transition_with_multiple_after_callbacks_test.rb +0 -40
  397. data/test/unit/transition/transition_with_multiple_around_callbacks_test.rb +0 -114
  398. data/test/unit/transition/transition_with_multiple_before_callbacks_test.rb +0 -40
  399. data/test/unit/transition/transition_with_multiple_failure_callbacks_test.rb +0 -40
  400. data/test/unit/transition/transition_with_namespace_test.rb +0 -47
  401. data/test/unit/transition/transition_with_perform_arguments_test.rb +0 -35
  402. data/test/unit/transition/transition_with_transactions_test.rb +0 -42
  403. data/test/unit/transition/transition_without_callbacks_test.rb +0 -33
  404. data/test/unit/transition/transition_without_reading_state_test.rb +0 -22
  405. data/test/unit/transition/transition_without_running_action_test.rb +0 -47
  406. data/test/unit/transition_collection/attribute_transition_collection_by_default_test.rb +0 -23
  407. data/test/unit/transition_collection/attribute_transition_collection_marshalling_test.rb +0 -64
  408. data/test/unit/transition_collection/attribute_transition_collection_with_action_error_test.rb +0 -44
  409. data/test/unit/transition_collection/attribute_transition_collection_with_action_failed_test.rb +0 -44
  410. data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_error_test.rb +0 -32
  411. data/test/unit/transition_collection/attribute_transition_collection_with_after_callback_halt_test.rb +0 -33
  412. data/test/unit/transition_collection/attribute_transition_collection_with_around_after_yield_callback_error_test.rb +0 -32
  413. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_error_test.rb +0 -32
  414. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_after_yield_halt_test.rb +0 -33
  415. data/test/unit/transition_collection/attribute_transition_collection_with_around_callback_before_yield_halt_test.rb +0 -33
  416. data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_error_test.rb +0 -32
  417. data/test/unit/transition_collection/attribute_transition_collection_with_before_callback_halt_test.rb +0 -33
  418. data/test/unit/transition_collection/attribute_transition_collection_with_callbacks_test.rb +0 -68
  419. data/test/unit/transition_collection/attribute_transition_collection_with_event_transitions_test.rb +0 -41
  420. data/test/unit/transition_collection/attribute_transition_collection_with_events_test.rb +0 -44
  421. data/test/unit/transition_collection/attribute_transition_collection_with_skipped_after_callbacks_test.rb +0 -42
  422. data/test/unit/transition_collection/transition_collection_by_default_test.rb +0 -23
  423. data/test/unit/transition_collection/transition_collection_empty_with_block_test.rb +0 -23
  424. data/test/unit/transition_collection/transition_collection_empty_without_block_test.rb +0 -12
  425. data/test/unit/transition_collection/transition_collection_invalid_test.rb +0 -21
  426. data/test/unit/transition_collection/transition_collection_partial_invalid_test.rb +0 -69
  427. data/test/unit/transition_collection/transition_collection_test.rb +0 -26
  428. data/test/unit/transition_collection/transition_collection_valid_test.rb +0 -57
  429. data/test/unit/transition_collection/transition_collection_with_action_error_test.rb +0 -66
  430. data/test/unit/transition_collection/transition_collection_with_action_failed_test.rb +0 -60
  431. data/test/unit/transition_collection/transition_collection_with_action_hook_and_block_test.rb +0 -17
  432. data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_action_test.rb +0 -17
  433. data/test/unit/transition_collection/transition_collection_with_action_hook_and_skipped_after_callbacks_test.rb +0 -37
  434. data/test/unit/transition_collection/transition_collection_with_action_hook_base_test.rb +0 -34
  435. data/test/unit/transition_collection/transition_collection_with_action_hook_error_test.rb +0 -29
  436. data/test/unit/transition_collection/transition_collection_with_action_hook_invalid_test.rb +0 -17
  437. data/test/unit/transition_collection/transition_collection_with_action_hook_multiple_test.rb +0 -79
  438. data/test/unit/transition_collection/transition_collection_with_action_hook_test.rb +0 -45
  439. data/test/unit/transition_collection/transition_collection_with_action_hook_with_different_actions_test.rb +0 -48
  440. data/test/unit/transition_collection/transition_collection_with_action_hook_with_nil_action_test.rb +0 -42
  441. data/test/unit/transition_collection/transition_collection_with_after_callback_halt_test.rb +0 -51
  442. data/test/unit/transition_collection/transition_collection_with_before_callback_halt_test.rb +0 -47
  443. data/test/unit/transition_collection/transition_collection_with_block_test.rb +0 -46
  444. data/test/unit/transition_collection/transition_collection_with_callbacks_test.rb +0 -135
  445. data/test/unit/transition_collection/transition_collection_with_different_actions_test.rb +0 -189
  446. data/test/unit/transition_collection/transition_collection_with_duplicate_actions_test.rb +0 -48
  447. data/test/unit/transition_collection/transition_collection_with_empty_actions_test.rb +0 -41
  448. data/test/unit/transition_collection/transition_collection_with_mixed_actions_test.rb +0 -41
  449. data/test/unit/transition_collection/transition_collection_with_skipped_actions_and_block_test.rb +0 -34
  450. data/test/unit/transition_collection/transition_collection_with_skipped_actions_test.rb +0 -69
  451. data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_and_around_callbacks_test.rb +0 -53
  452. data/test/unit/transition_collection/transition_collection_with_skipped_after_callbacks_test.rb +0 -34
  453. data/test/unit/transition_collection/transition_collection_with_transactions_test.rb +0 -65
  454. data/test/unit/transition_collection/transition_collection_without_transactions_test.rb +0 -29
data/.gitignore DELETED
@@ -1,21 +0,0 @@
1
- *.gem
2
- *.rbc
3
- .bundle
4
- .config
5
- .yardoc
6
- Gemfile.lock
7
- InstalledFiles
8
- _yardoc
9
- coverage
10
- doc/
11
- lib/bundler/man
12
- pkg
13
- rdoc
14
- spec/reports
15
- tmp
16
- *.bundle
17
- *.so
18
- *.o
19
- *.a
20
- mkmf.log
21
- .idea/
data/.rspec DELETED
@@ -1,3 +0,0 @@
1
- --color
2
- --warnings
3
- --require spec_helper
data/.travis.yml DELETED
@@ -1,14 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- script: "bundle exec rake"
4
- cache: bundler
5
- rvm:
6
- - 2.1
7
- - 2.0.0
8
- - 2.2
9
- - jruby
10
- - rbx-2
11
- matrix:
12
- allow_failures:
13
- - rvm: rbx-2
14
- - rvm: jruby
data/Changelog.md DELETED
@@ -1,16 +0,0 @@
1
- * Fixed inconsistent use of :use_transactions
2
-
3
- * Namespaced integrations are not registered by default anymore
4
-
5
- * Pass `static: false` in case you don't want initial states to be forced. e.g.
6
-
7
- ```ruby
8
- # will set the initial machine state
9
- @machines.initialize_states(@object)
10
-
11
- # optionally you can pass the attributes to have that as the initial state
12
- @machines.initialize_states(@object, {}, { state: 'finished' })
13
-
14
- # or pass set `static` to false if you want to keep the `object.state` current value
15
- @machines.initialize_states(@object, { static: false })
16
- ```
data/Contributors.md DELETED
@@ -1,39 +0,0 @@
1
- - Aaron Gibralter
2
- - Aaron Pfeifer
3
- - Abdelkader Boudih
4
- - Akira Matsuda
5
- - Andrea Longhi
6
- - Brad Heller
7
- - Brandon Dimcheff
8
- - Casey Howard
9
- - Chinasaur
10
- - Daniel Huckstep
11
- - Durran Jordan
12
- - Gareth Adams
13
- - Jahangir Zinedine
14
- - Jeremy Wells
15
- - Joe Lind
16
- - Jon Evans
17
- - Markus Schirp
18
- - Michael Klishin
19
- - Mikhail Shirkov
20
- - Mohamed Alouane
21
- - Nate Murray
22
- - Nathan Long
23
- - Nicolas Blanco
24
- - Pawel Pierzchala
25
- - Pete Forde
26
- - Peter Lampesberger
27
- - Rin Raeuber
28
- - Robert Poor
29
- - Rustam Zagirov
30
- - Sandro Turriate and Tim Pope
31
- - Sean O'Brien
32
- - Stefan Penner
33
- - Steve Richert
34
- - Wojciech Wnętrzak
35
- - @chris
36
- - @gmitrev
37
- - @nblumoe
38
- - @reiner
39
- - @sanemat
data/Gemfile DELETED
@@ -1,8 +0,0 @@
1
- source 'https://rubygems.org'
2
- gemspec
3
-
4
- platform :mri_20, :mri_21 do
5
- gem 'pry-byebug'
6
- end
7
-
8
- gem 'minitest-reporters'
data/Rakefile DELETED
@@ -1,12 +0,0 @@
1
- require 'bundler/gem_tasks'
2
- require 'rake/testtask'
3
- Rake::TestTask.new(:functional) do |t|
4
- t.test_files = FileList['test/functional/*_test.rb']
5
- end
6
-
7
- Rake::TestTask.new(:unit) do |t|
8
- t.test_files = FileList['test/unit/**/*_test.rb']
9
- end
10
-
11
- desc 'Default: run all tests.'
12
- task default: [:unit, :functional]
data/Testing.md DELETED
File without changes
@@ -1,23 +0,0 @@
1
- lib = File.expand_path('../lib', __FILE__)
2
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require 'state_machines/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'state_machines'
7
- spec.version = StateMachines::VERSION
8
- spec.authors = ['Abdelkader Boudih', 'Aaron Pfeifer']
9
- spec.email = %w(terminale@gmail.com aaron@pluginaweek.org)
10
- spec.summary = %q(State machines for attributes)
11
- spec.description = %q(Adds support for creating state machines for attributes on any Ruby class)
12
- spec.homepage = 'https://github.com/state-machines/state_machines'
13
- spec.license = 'MIT'
14
-
15
- spec.required_ruby_version = '>= 1.9.3'
16
- spec.files = `git ls-files -z`.split("\x0")
17
- spec.test_files = spec.files.grep(/^test\//)
18
- spec.require_paths = ['lib']
19
-
20
- spec.add_development_dependency 'bundler', '>= 1.7.6'
21
- spec.add_development_dependency 'rake'
22
- spec.add_development_dependency 'minitest', '>= 5.4'
23
- end
@@ -1,10 +0,0 @@
1
- module EventOnFailureIntegration
2
- include StateMachines::Integrations::Base
3
- def invalidate(object, _attribute, message, values = [])
4
- (object.errors ||= []) << generate_message(message, values)
5
- end
6
-
7
- def reset(object)
8
- object.errors = []
9
- end
10
- end
@@ -1,7 +0,0 @@
1
- module VehicleIntegration
2
- include StateMachines::Integrations::Base
3
-
4
- def self.matching_ancestors
5
- ['Vehicle']
6
- end
7
- end
@@ -1,31 +0,0 @@
1
- class AutoShop
2
- attr_accessor :num_customers
3
-
4
- def initialize
5
- @num_customers = 0
6
- super
7
- end
8
-
9
- state_machine initial: :available do
10
- after_transition available: any, do: :increment_customers
11
- after_transition busy: any, do: :decrement_customers
12
-
13
- event :tow_vehicle do
14
- transition available: :busy
15
- end
16
-
17
- event :fix_vehicle do
18
- transition busy: :available
19
- end
20
- end
21
-
22
- # Increments the number of customers in service
23
- def increment_customers
24
- self.num_customers += 1
25
- end
26
-
27
- # Decrements the number of customers in service
28
- def decrement_customers
29
- self.num_customers -= 1
30
- end
31
- end
@@ -1,21 +0,0 @@
1
- require_relative '../../files/models/vehicle'
2
-
3
- class Car < Vehicle
4
- state_machine do
5
- event :reverse do
6
- transition [:parked, :idling, :first_gear] => :backing_up
7
- end
8
-
9
- event :park do
10
- transition backing_up: :parked
11
- end
12
-
13
- event :idle do
14
- transition backing_up: :idling
15
- end
16
-
17
- event :shift_up do
18
- transition backing_up: :first_gear
19
- end
20
- end
21
- end
@@ -1,6 +0,0 @@
1
- class ModelBase
2
- def save
3
- @saved = true
4
- self
5
- end
6
- end
@@ -1,11 +0,0 @@
1
- require_relative '../../files/models/vehicle'
2
-
3
- class Motorcycle < Vehicle
4
- state_machine initial: :idling do
5
- state :first_gear do
6
- def decibels
7
- 1.0
8
- end
9
- end
10
- end
11
- end
@@ -1,47 +0,0 @@
1
- class TrafficLight
2
- state_machine initial: :stop do
3
- event :cycle do
4
- transition stop: :proceed, proceed: :caution, caution: :stop
5
- end
6
-
7
- state :stop do
8
- def color(transform)
9
- value = 'red'
10
-
11
- if block_given?
12
- yield value
13
- else
14
- value.send(transform)
15
- end
16
-
17
- value
18
- end
19
- end
20
-
21
- state all - :proceed do
22
- def capture_violations?
23
- true
24
- end
25
- end
26
-
27
- state :proceed do
28
- def color(_transform)
29
- 'green'
30
- end
31
-
32
- def capture_violations?
33
- false
34
- end
35
- end
36
-
37
- state :caution do
38
- def color(_transform)
39
- 'yellow'
40
- end
41
- end
42
- end
43
-
44
- def color(transform = :to_s)
45
- super
46
- end
47
- end
@@ -1,127 +0,0 @@
1
- require_relative 'model_base'
2
- require_relative 'auto_shop'
3
-
4
- class Vehicle < ModelBase
5
- attr_accessor :auto_shop, :seatbelt_on, :insurance_premium, :force_idle, :callbacks, :saved, :time_elapsed, :last_transition_args
6
-
7
- def initialize(attributes = {})
8
- attributes = {
9
- auto_shop: AutoShop.new,
10
- seatbelt_on: false,
11
- insurance_premium: 50,
12
- force_idle: false,
13
- callbacks: [],
14
- saved: false
15
- }.merge(attributes)
16
-
17
- attributes.each { |attr, value| send("#{attr}=", value) }
18
- super()
19
- end
20
-
21
- # Defines the state machine for the state of the vehicled
22
- state_machine initial: ->(vehicle) { vehicle.force_idle ? :idling : :parked }, action: :save do
23
- before_transition { |vehicle, transition| vehicle.last_transition_args = transition.args }
24
- before_transition parked: any, do: :put_on_seatbelt
25
- before_transition any => :stalled, :do => :increase_insurance_premium
26
- after_transition any => :parked, :do => lambda { |vehicle| vehicle.seatbelt_on = false }
27
- after_transition on: :crash, do: :tow
28
- after_transition on: :repair, do: :fix
29
-
30
- # Callback tracking for initial state callbacks
31
- after_transition any => :parked, :do => ->(vehicle) { vehicle.callbacks << 'before_enter_parked' }
32
- before_transition any => :idling, :do => ->(vehicle) { vehicle.callbacks << 'before_enter_idling' }
33
-
34
- around_transition do |vehicle, _transition, block|
35
- time = Time.now
36
- block.call
37
- vehicle.time_elapsed = Time.now - time
38
- end
39
-
40
- event all do
41
- transition locked: :parked
42
- end
43
-
44
- event :park do
45
- transition [:idling, :first_gear] => :parked
46
- end
47
-
48
- event :ignite do
49
- transition stalled: :stalled
50
- transition parked: :idling
51
- end
52
-
53
- event :idle do
54
- transition first_gear: :idling
55
- end
56
-
57
- event :shift_up do
58
- transition idling: :first_gear, first_gear: :second_gear, second_gear: :third_gear
59
- end
60
-
61
- event :shift_down do
62
- transition third_gear: :second_gear
63
- transition second_gear: :first_gear
64
- end
65
-
66
- event :crash do
67
- transition [:first_gear, :second_gear, :third_gear] => :stalled, :if => ->(vehicle) { vehicle.auto_shop.available? }
68
- end
69
-
70
- event :repair do
71
- transition stalled: :parked, if: :auto_shop_busy?
72
- end
73
- end
74
-
75
- state_machine :insurance_state, initial: :inactive, namespace: 'insurance' do
76
- event :buy do
77
- transition inactive: :active
78
- end
79
-
80
- event :cancel do
81
- transition active: :inactive
82
- end
83
- end
84
-
85
- def save
86
- super
87
- end
88
-
89
- def new_record?
90
- @saved == false
91
- end
92
-
93
- def park
94
- super
95
- end
96
-
97
- # Tows the vehicle to the auto shop
98
- def tow
99
- auto_shop.tow_vehicle
100
- end
101
-
102
- # Fixes the vehicle; it will no longer be in the auto shop
103
- def fix
104
- auto_shop.fix_vehicle
105
- end
106
-
107
- def decibels
108
- 0.0
109
- end
110
-
111
- private
112
-
113
- # Safety first! Puts on our seatbelt
114
- def put_on_seatbelt
115
- self.seatbelt_on = true
116
- end
117
-
118
- # We crashed! Increase the insurance premium on the vehicle
119
- def increase_insurance_premium
120
- self.insurance_premium += 100
121
- end
122
-
123
- # Is the auto shop currently servicing another customer?
124
- def auto_shop_busy?
125
- auto_shop.busy?
126
- end
127
- end
data/test/files/node.rb DELETED
@@ -1,5 +0,0 @@
1
- class Node < Struct.new(:name, :value, :machine)
2
- def context
3
- yield
4
- end
5
- end
data/test/files/switch.rb DELETED
@@ -1,15 +0,0 @@
1
- class Switch
2
- def self.name
3
- @name ||= "Switch_#{rand(1_000_000)}"
4
- end
5
-
6
- state_machine do
7
- event :turn_on do
8
- transition all => :on
9
- end
10
-
11
- event :turn_off do
12
- transition all => :off
13
- end
14
- end
15
- end
@@ -1,20 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/auto_shop'
3
-
4
- class AutoShopAvailableTest < MiniTest::Test
5
- def setup
6
- @auto_shop = AutoShop.new
7
- end
8
-
9
- def test_should_be_in_available_state
10
- assert_equal 'available', @auto_shop.state
11
- end
12
-
13
- def test_should_allow_tow_vehicle
14
- assert @auto_shop.tow_vehicle
15
- end
16
-
17
- def test_should_not_allow_fix_vehicle
18
- refute @auto_shop.fix_vehicle
19
- end
20
- end
@@ -1,25 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/auto_shop'
3
-
4
- class AutoShopBusyTest < MiniTest::Test
5
- def setup
6
- @auto_shop = AutoShop.new
7
- @auto_shop.tow_vehicle
8
- end
9
-
10
- def test_should_be_in_busy_state
11
- assert_equal 'busy', @auto_shop.state
12
- end
13
-
14
- def test_should_have_incremented_number_of_customers
15
- assert_equal 1, @auto_shop.num_customers
16
- end
17
-
18
- def test_should_not_allow_tow_vehicle
19
- refute @auto_shop.tow_vehicle
20
- end
21
-
22
- def test_should_allow_fix_vehicle
23
- assert @auto_shop.fix_vehicle
24
- end
25
- end
@@ -1,45 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/car'
3
-
4
- class CarBackingUpTest < MiniTest::Test
5
- def setup
6
- @car = Car.new
7
- @car.reverse
8
- end
9
-
10
- def test_should_be_in_backing_up_state
11
- assert_equal 'backing_up', @car.state
12
- end
13
-
14
- def test_should_allow_park
15
- assert @car.park
16
- end
17
-
18
- def test_should_not_allow_ignite
19
- refute @car.ignite
20
- end
21
-
22
- def test_should_allow_idle
23
- assert @car.idle
24
- end
25
-
26
- def test_should_allow_shift_up
27
- assert @car.shift_up
28
- end
29
-
30
- def test_should_not_allow_shift_down
31
- refute @car.shift_down
32
- end
33
-
34
- def test_should_not_allow_crash
35
- refute @car.crash
36
- end
37
-
38
- def test_should_not_allow_repair
39
- refute @car.repair
40
- end
41
-
42
- def test_should_not_allow_reverse
43
- refute @car.reverse
44
- end
45
- end
@@ -1,49 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/car'
3
-
4
- class CarTest < MiniTest::Test
5
- def setup
6
- @car = Car.new
7
- end
8
-
9
- def test_should_be_in_parked_state
10
- assert_equal 'parked', @car.state
11
- end
12
-
13
- def test_should_not_have_the_seatbelt_on
14
- refute @car.seatbelt_on
15
- end
16
-
17
- def test_should_not_allow_park
18
- refute @car.park
19
- end
20
-
21
- def test_should_allow_ignite
22
- assert @car.ignite
23
- assert_equal 'idling', @car.state
24
- end
25
-
26
- def test_should_not_allow_idle
27
- refute @car.idle
28
- end
29
-
30
- def test_should_not_allow_shift_up
31
- refute @car.shift_up
32
- end
33
-
34
- def test_should_not_allow_shift_down
35
- refute @car.shift_down
36
- end
37
-
38
- def test_should_not_allow_crash
39
- refute @car.crash
40
- end
41
-
42
- def test_should_not_allow_repair
43
- refute @car.repair
44
- end
45
-
46
- def test_should_allow_reverse
47
- assert @car.reverse
48
- end
49
- end
@@ -1,46 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/motorcycle'
3
-
4
- class MotorcycleTest < MiniTest::Test
5
- def setup
6
- @motorcycle = Motorcycle.new
7
- end
8
-
9
- def test_should_be_in_idling_state
10
- assert_equal 'idling', @motorcycle.state
11
- end
12
-
13
- def test_should_allow_park
14
- assert @motorcycle.park
15
- end
16
-
17
- def test_should_not_allow_ignite
18
- refute @motorcycle.ignite
19
- end
20
-
21
- def test_should_allow_shift_up
22
- assert @motorcycle.shift_up
23
- end
24
-
25
- def test_should_not_allow_shift_down
26
- refute @motorcycle.shift_down
27
- end
28
-
29
- def test_should_not_allow_crash
30
- refute @motorcycle.crash
31
- end
32
-
33
- def test_should_not_allow_repair
34
- refute @motorcycle.repair
35
- end
36
-
37
- def test_should_inherit_decibels_from_superclass
38
- @motorcycle.park
39
- assert_equal 0.0, @motorcycle.decibels
40
- end
41
-
42
- def test_should_use_decibels_defined_in_state
43
- @motorcycle.shift_up
44
- assert_equal 1.0, @motorcycle.decibels
45
- end
46
- end
@@ -1,17 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/traffic_light'
3
-
4
- class TrafficLightCautionTest < MiniTest::Test
5
- def setup
6
- @light = TrafficLight.new
7
- @light.state = 'caution'
8
- end
9
-
10
- def test_should_use_caution_color
11
- assert_equal 'yellow', @light.color
12
- end
13
-
14
- def test_should_use_caution_capture_violations
15
- assert_equal true, @light.capture_violations?
16
- end
17
- end
@@ -1,17 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/traffic_light'
3
-
4
- class TrafficLightProceedTest < MiniTest::Test
5
- def setup
6
- @light = TrafficLight.new
7
- @light.state = 'proceed'
8
- end
9
-
10
- def test_should_use_proceed_color
11
- assert_equal 'green', @light.color
12
- end
13
-
14
- def test_should_use_proceed_capture_violations
15
- assert_equal false, @light.capture_violations?
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- require_relative '../test_helper'
2
- require_relative '../files/models/traffic_light'
3
-
4
- class TrafficLightStopTest < MiniTest::Test
5
- def setup
6
- @light = TrafficLight.new
7
- @light.state = 'stop'
8
- end
9
-
10
- def test_should_use_stop_color
11
- assert_equal 'red', @light.color
12
- end
13
-
14
- def test_should_pass_arguments_through
15
- assert_equal 'RED', @light.color(:upcase!)
16
- end
17
-
18
- def test_should_pass_block_through
19
- color = @light.color { |value| value.upcase! }
20
- assert_equal 'RED', color
21
- end
22
-
23
- def test_should_use_stop_capture_violations
24
- assert_equal true, @light.capture_violations?
25
- end
26
- end