rules 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. data/MIT-LICENSE +20 -0
  2. data/README.md +79 -0
  3. data/Rakefile +38 -0
  4. data/db/migrate/20120831163952_create_rules.rb +11 -0
  5. data/db/migrate/20120831173835_create_rule_sets.rb +10 -0
  6. data/lib/rules.rb +18 -0
  7. data/lib/rules/engine.rb +11 -0
  8. data/lib/rules/evaluators.rb +18 -0
  9. data/lib/rules/evaluators/definitions.rb +73 -0
  10. data/lib/rules/evaluators/evaluator.rb +25 -0
  11. data/lib/rules/extensions/active_admin/dsl.rb +31 -0
  12. data/lib/rules/has_rules.rb +24 -0
  13. data/lib/rules/parameters.rb +20 -0
  14. data/lib/rules/parameters/attribute.rb +16 -0
  15. data/lib/rules/parameters/constant.rb +25 -0
  16. data/lib/rules/parameters/constant_definitions.rb +15 -0
  17. data/lib/rules/parameters/parameter.rb +13 -0
  18. data/lib/rules/rule.rb +52 -0
  19. data/lib/rules/rule_set.rb +50 -0
  20. data/lib/rules/version.rb +3 -0
  21. data/lib/tasks/rules_tasks.rake +4 -0
  22. data/spec/dummy/README.rdoc +261 -0
  23. data/spec/dummy/Rakefile +7 -0
  24. data/spec/dummy/app/admin/dashboards.rb +33 -0
  25. data/spec/dummy/app/admin/orders.rb +30 -0
  26. data/spec/dummy/app/assets/images/edit_example.png +0 -0
  27. data/spec/dummy/app/assets/javascripts/active_admin.js +1 -0
  28. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  29. data/spec/dummy/app/assets/stylesheets/active_admin.css.scss +29 -0
  30. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  31. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  32. data/spec/dummy/app/controllers/orders_controller.rb +8 -0
  33. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  34. data/spec/dummy/app/models/admin_user.rb +11 -0
  35. data/spec/dummy/app/models/order.rb +20 -0
  36. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  37. data/spec/dummy/app/views/orders/show.html.haml +2 -0
  38. data/spec/dummy/config.ru +4 -0
  39. data/spec/dummy/config/application.rb +65 -0
  40. data/spec/dummy/config/boot.rb +10 -0
  41. data/spec/dummy/config/database.yml +25 -0
  42. data/spec/dummy/config/environment.rb +5 -0
  43. data/spec/dummy/config/environments/development.rb +37 -0
  44. data/spec/dummy/config/environments/production.rb +67 -0
  45. data/spec/dummy/config/environments/test.rb +37 -0
  46. data/spec/dummy/config/initializers/active_admin.rb +149 -0
  47. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  48. data/spec/dummy/config/initializers/devise.rb +232 -0
  49. data/spec/dummy/config/initializers/inflections.rb +15 -0
  50. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  51. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  52. data/spec/dummy/config/initializers/session_store.rb +8 -0
  53. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  54. data/spec/dummy/config/locales/devise.en.yml +58 -0
  55. data/spec/dummy/config/locales/en.yml +5 -0
  56. data/spec/dummy/config/routes.rb +9 -0
  57. data/spec/dummy/db/development.sqlite3 +0 -0
  58. data/spec/dummy/db/migrate/20120821181654_create_orders.rb +13 -0
  59. data/spec/dummy/db/migrate/20120831163952_create_rules.rb +11 -0
  60. data/spec/dummy/db/migrate/20120831173835_create_rule_sets.rb +10 -0
  61. data/spec/dummy/db/migrate/20120901044842_devise_create_admin_users.rb +52 -0
  62. data/spec/dummy/db/migrate/20120901044906_create_admin_notes.rb +17 -0
  63. data/spec/dummy/db/migrate/20120901044907_move_admin_notes_to_comments.rb +25 -0
  64. data/spec/dummy/db/production.sqlite3 +0 -0
  65. data/spec/dummy/db/schema.rb +75 -0
  66. data/spec/dummy/db/seeds.rb +1 -0
  67. data/spec/dummy/db/test.sqlite3 +0 -0
  68. data/spec/dummy/log/development.log +8764 -0
  69. data/spec/dummy/log/production.log +74 -0
  70. data/spec/dummy/log/test.log +1573 -0
  71. data/spec/dummy/public/404.html +26 -0
  72. data/spec/dummy/public/422.html +26 -0
  73. data/spec/dummy/public/500.html +25 -0
  74. data/spec/dummy/public/favicon.ico +0 -0
  75. data/spec/dummy/script/rails +6 -0
  76. data/spec/dummy/tmp/cache/assets/C58/950/sprockets%2F615625588c137a1529206d80ee81fe93 +0 -0
  77. data/spec/dummy/tmp/cache/assets/C83/FF0/sprockets%2F75b536e9b6927c15b60310fa867e3613 +0 -0
  78. data/spec/dummy/tmp/cache/assets/C88/FD0/sprockets%2F6c558405457e9b59062515dc86bfa252 +0 -0
  79. data/spec/dummy/tmp/cache/assets/C99/A50/sprockets%2Ffd135176f584f5f5658ef48f41187352 +0 -0
  80. data/spec/dummy/tmp/cache/assets/C9B/B40/sprockets%2F29dc70cbda38311141464e041655de41 +0 -0
  81. data/spec/dummy/tmp/cache/assets/C9F/2F0/sprockets%2Faf814c1513450b5466432d2a565ca5c6 +0 -0
  82. data/spec/dummy/tmp/cache/assets/CA2/8F0/sprockets%2Fa283030e028b24b4ba4084e067888c3e +0 -0
  83. data/spec/dummy/tmp/cache/assets/CA7/860/sprockets%2F0b1c90a9344b3c3989fc2153d0d63193 +0 -0
  84. data/spec/dummy/tmp/cache/assets/CAC/4A0/sprockets%2F3d00565c9e04f1bd481d33b4f1985706 +0 -0
  85. data/spec/dummy/tmp/cache/assets/CAD/F70/sprockets%2F5a1855f4cda19a255ffc802226735517 +0 -0
  86. data/spec/dummy/tmp/cache/assets/CAE/DA0/sprockets%2F9a133e6ab132f569c40b5e82188f4290 +0 -0
  87. data/spec/dummy/tmp/cache/assets/CB2/140/sprockets%2F035ac84d6c64495d0067b926533f8bc3 +0 -0
  88. data/spec/dummy/tmp/cache/assets/CB2/920/sprockets%2F2db5288c0689b237264d0fb22b74d981 +0 -0
  89. data/spec/dummy/tmp/cache/assets/CB8/A30/sprockets%2Ff35759652c08bb7b3921c434d9ee1654 +0 -0
  90. data/spec/dummy/tmp/cache/assets/CCA/AE0/sprockets%2Ff80b892078268a51ddf973986035bf9d +0 -0
  91. data/spec/dummy/tmp/cache/assets/CD0/AC0/sprockets%2F6f2c1b921c2b86e16aee3245772240c1 +0 -0
  92. data/spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  93. data/spec/dummy/tmp/cache/assets/CDB/040/sprockets%2Fc732474e67003a4eb840eb44c5ca9385 +0 -0
  94. data/spec/dummy/tmp/cache/assets/CE0/300/sprockets%2F79b0286bc0a316d639ed5f83b1d33763 +0 -0
  95. data/spec/dummy/tmp/cache/assets/CE4/D80/sprockets%2Fd7f4b155b13ea1d8578693e62b0e6463 +0 -0
  96. data/spec/dummy/tmp/cache/assets/CF9/580/sprockets%2F9b6f302133d13906b7d823b4ae14f0aa +0 -0
  97. data/spec/dummy/tmp/cache/assets/CFD/B50/sprockets%2Fb21fb4d7213b3bf64d6317b3f22584b1 +0 -0
  98. data/spec/dummy/tmp/cache/assets/CFE/450/sprockets%2F088e843f7fffd845821822c7668a4d7e +0 -0
  99. data/spec/dummy/tmp/cache/assets/CFE/5D0/sprockets%2F5e63c7f47b86e8916fe1b8f88f470370 +0 -0
  100. data/spec/dummy/tmp/cache/assets/CFE/D50/sprockets%2Fc912074248a7b0bdc219a5eac3c52348 +0 -0
  101. data/spec/dummy/tmp/cache/assets/D0B/650/sprockets%2Fb66b60c6b42330849f5b7449bbe108bd +0 -0
  102. data/spec/dummy/tmp/cache/assets/D0B/EB0/sprockets%2Fa18a9144dadd3f628d2f061f91190d65 +0 -0
  103. data/spec/dummy/tmp/cache/assets/D0E/820/sprockets%2F1611a9cc354f4e02c97d26b3c6ce7466 +0 -0
  104. data/spec/dummy/tmp/cache/assets/D11/FD0/sprockets%2Ff7129bbf85d84e8bc056543e20281e3b +0 -0
  105. data/spec/dummy/tmp/cache/assets/D24/B00/sprockets%2F671d6f261d89a29e918b1ec7818db6a9 +0 -0
  106. data/spec/dummy/tmp/cache/assets/D29/AE0/sprockets%2Fb62ea1b010afb027501b4f18b8dd3689 +0 -0
  107. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  108. data/spec/dummy/tmp/cache/assets/D38/540/sprockets%2F86e1ad844bc9df4491a2a52b870421db +0 -0
  109. data/spec/dummy/tmp/cache/assets/D38/5F0/sprockets%2F0c09a45e38408ec6e0e9caf206d5028d +0 -0
  110. data/spec/dummy/tmp/cache/assets/D3A/CE0/sprockets%2F238bf80bfbe1e2a5bb9280e62162584f +0 -0
  111. data/spec/dummy/tmp/cache/assets/D3B/000/sprockets%2F961758db39c6223d18ea6b7aeac400d5 +0 -0
  112. data/spec/dummy/tmp/cache/assets/D3B/F60/sprockets%2Ffd56cbfde039018718a0933340af6ef2 +0 -0
  113. data/spec/dummy/tmp/cache/assets/D41/AB0/sprockets%2Fd112ea59edbe4b7335549d814cb1d848 +0 -0
  114. data/spec/dummy/tmp/cache/assets/D47/050/sprockets%2F237eeefd847c43be2e7810a77e80841b +0 -0
  115. data/spec/dummy/tmp/cache/assets/D48/0D0/sprockets%2F1ef4ab19f690478ac62ad77fcb284447 +0 -0
  116. data/spec/dummy/tmp/cache/assets/D48/640/sprockets%2F9f4f18d910b678b1d0777e04cdaf6f24 +0 -0
  117. data/spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  118. data/spec/dummy/tmp/cache/assets/D59/D70/sprockets%2Fed9f0de1b65ae8d7ef89087c83728461 +0 -0
  119. data/spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  120. data/spec/dummy/tmp/cache/assets/D60/6C0/sprockets%2Fd7ef2595e5c50eb96e9d3c3d8698f481 +0 -0
  121. data/spec/dummy/tmp/cache/assets/D65/B10/sprockets%2Fca02dba972b587d3a69b8c32c7200fc6 +0 -0
  122. data/spec/dummy/tmp/cache/assets/D65/EE0/sprockets%2Fd9062d87143bb5c1d9d73c3ea02d7eb1 +0 -0
  123. data/spec/dummy/tmp/cache/assets/D66/2A0/sprockets%2F7b7cb56109acc9205fbbb792187ad04b +0 -0
  124. data/spec/dummy/tmp/cache/assets/D72/9E0/sprockets%2Fdf58dccde6a5e1266ba5c386149108c6 +0 -0
  125. data/spec/dummy/tmp/cache/assets/D84/0C0/sprockets%2Fe48907efa9d3370f9a2f687a1a7b8d8d +0 -0
  126. data/spec/dummy/tmp/cache/assets/D93/4C0/sprockets%2F857ecd2092cee11f740b3cf2e373ad2a +0 -0
  127. data/spec/dummy/tmp/cache/assets/D94/FA0/sprockets%2F8b190b3f72af75f09bfab1f354a0c37b +0 -0
  128. data/spec/dummy/tmp/cache/assets/D98/550/sprockets%2F69a91a7b4aca241c17daf6a78ac6845a +0 -0
  129. data/spec/dummy/tmp/cache/assets/D9E/530/sprockets%2F8dbb0027bd9ce6b96c81b82bdec17814 +0 -0
  130. data/spec/dummy/tmp/cache/assets/DAA/990/sprockets%2F8e0ca45c660183bfe809afc1f69bf9a9 +0 -0
  131. data/spec/dummy/tmp/cache/assets/DC1/C40/sprockets%2Fa8cbeabf3ef2d34b43be61671536f2a2 +0 -0
  132. data/spec/dummy/tmp/cache/assets/DC7/8B0/sprockets%2Ffad93382facdc50f097e26ebf19010ea +0 -0
  133. data/spec/dummy/tmp/cache/assets/DCE/350/sprockets%2F812b6c1998c5ad61096ae7b16cdaeeea +0 -0
  134. data/spec/dummy/tmp/cache/assets/DD3/370/sprockets%2Ff23609d51b09058fdd08daeecfd7e5e3 +0 -0
  135. data/spec/dummy/tmp/cache/assets/DD7/6A0/sprockets%2Fd5b1cca8d0835fbe9957aa4ee5f8333e +0 -0
  136. data/spec/dummy/tmp/cache/assets/DD8/440/sprockets%2F7edf42cfb3ac43c7cd4f63c3980d7c86 +0 -0
  137. data/spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  138. data/spec/dummy/tmp/cache/assets/DDE/420/sprockets%2Ffb8b186d5bf0307f86f65fc787d2adeb +0 -0
  139. data/spec/dummy/tmp/cache/assets/DF5/270/sprockets%2Fc7f64f609aceac43da16557daacc421f +0 -0
  140. data/spec/dummy/tmp/cache/assets/DF5/410/sprockets%2Fd6efccfb4bfeb13ed0125e8c53424a65 +0 -0
  141. data/spec/dummy/tmp/cache/assets/DFF/180/sprockets%2Fdc24014f1fcc77f40c5e7de188ad8ebd +0 -0
  142. data/spec/dummy/tmp/cache/assets/E03/290/sprockets%2Fd469f86939a1cbd52d9b9aaf1db22dae +0 -0
  143. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  144. data/spec/dummy/tmp/cache/assets/E07/7C0/sprockets%2Fcc5def6ed69cb6a1b7f6084992ed3ca1 +0 -0
  145. data/spec/dummy/tmp/cache/assets/ECA/140/sprockets%2Fd8ebea8564753ddfde91fadbdacc9f5b +0 -0
  146. data/spec/dummy/tmp/cache/sass/1a9fc2ebd62e6e7cb58441dc0293552ac07c99a9/_bourbon.scssc +0 -0
  147. data/spec/dummy/tmp/cache/sass/40a0b76d82cd847e80571abbfe75b703bdb6b77f/active_admin.css.scssc +0 -0
  148. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_all.css.scssc +0 -0
  149. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_buttons.css.scssc +0 -0
  150. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_gradients.css.scssc +0 -0
  151. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_icons.css.scssc +0 -0
  152. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_reset.css.scssc +0 -0
  153. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_rounded.css.scssc +0 -0
  154. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_sections.css.scssc +0 -0
  155. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_shadows.css.scssc +0 -0
  156. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_typography.scssc +0 -0
  157. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_utilities.scssc +0 -0
  158. data/spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_variables.css.scssc +0 -0
  159. data/spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_footer.scssc +0 -0
  160. data/spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_main_structure.scssc +0 -0
  161. data/spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_title_bar.scssc +0 -0
  162. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_batch_actions.css.scssc +0 -0
  163. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_blank_slates.scssc +0 -0
  164. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_breadcrumbs.scssc +0 -0
  165. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_buttons.scssc +0 -0
  166. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_columns.scssc +0 -0
  167. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_comments.css.scssc +0 -0
  168. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_date_picker.css.scssc +0 -0
  169. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_dropdown_menu.scssc +0 -0
  170. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_flash_messages.css.scssc +0 -0
  171. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_grid.scssc +0 -0
  172. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_links.scssc +0 -0
  173. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_pagination.scssc +0 -0
  174. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_panels.scssc +0 -0
  175. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_popovers.css.scssc +0 -0
  176. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_scopes.scssc +0 -0
  177. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_status_tags.scssc +0 -0
  178. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_table_tools.css.scssc +0 -0
  179. data/spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_tables.css.scssc +0 -0
  180. data/spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_base.css.scssc +0 -0
  181. data/spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_forms.css.scssc +0 -0
  182. data/spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_header.css.scssc +0 -0
  183. data/spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_mixins.css.scssc +0 -0
  184. data/spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_typography.css.scssc +0 -0
  185. data/spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/print.css.scssc +0 -0
  186. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_button.scssc +0 -0
  187. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_clearfix.scssc +0 -0
  188. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_font-face.scssc +0 -0
  189. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_font-family.scssc +0 -0
  190. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_hide-text.scssc +0 -0
  191. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_html5-input-types.scssc +0 -0
  192. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_position.scssc +0 -0
  193. data/spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_timing-functions.scssc +0 -0
  194. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_deprecated-webkit-gradient.scssc +0 -0
  195. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_flex-grid.scssc +0 -0
  196. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_grid-width.scssc +0 -0
  197. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_linear-gradient.scssc +0 -0
  198. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_modular-scale.scssc +0 -0
  199. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_radial-gradient.scssc +0 -0
  200. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_render-gradients.scssc +0 -0
  201. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_tint-shade.scssc +0 -0
  202. data/spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_transition-property-name.scssc +0 -0
  203. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_animation.scssc +0 -0
  204. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_appearance.scssc +0 -0
  205. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background-image.scssc +0 -0
  206. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background-size.scssc +0 -0
  207. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background.scssc +0 -0
  208. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_border-image.scssc +0 -0
  209. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_border-radius.scssc +0 -0
  210. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_box-shadow.scssc +0 -0
  211. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_box-sizing.scssc +0 -0
  212. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_columns.scssc +0 -0
  213. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_flex-box.scssc +0 -0
  214. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_inline-block.scssc +0 -0
  215. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_linear-gradient.scssc +0 -0
  216. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_prefixer.scssc +0 -0
  217. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_radial-gradient.scssc +0 -0
  218. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_transform.scssc +0 -0
  219. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_transition.scssc +0 -0
  220. data/spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_user-select.scssc +0 -0
  221. data/spec/dummy/tmp/cache/sass/ee5b745f862b39ff22bf2068a6582c3ee05d1a79/_dashboard.scssc +0 -0
  222. data/spec/dummy/tmp/cache/sass/ee5b745f862b39ff22bf2068a6582c3ee05d1a79/_logged_out.scssc +0 -0
  223. data/spec/dummy/tmp/pids/server.pid +1 -0
  224. data/spec/rules/evaluators/definitions_spec.rb +41 -0
  225. data/spec/rules/evaluators_spec.rb +32 -0
  226. data/spec/rules/parameters/attribute_spec.rb +12 -0
  227. data/spec/rules/parameters_spec.rb +5 -0
  228. data/spec/rules/rule_set_spec.rb +90 -0
  229. data/spec/rules/rule_spec.rb +188 -0
  230. data/spec/spec_helper.rb +38 -0
  231. metadata +519 -0
@@ -0,0 +1 @@
1
+ 308
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rules::Evaluators do
4
+ describe 'equals' do
5
+ it 'returns true if two objects are the same' do
6
+ Rules::Evaluators.list[:equals].evaluate(1.0, 1.0).should be_true
7
+ Rules::Evaluators.list[:equals].evaluate('romeo', 'romeo').should be_true
8
+ Rules::Evaluators.list[:equals].evaluate(['a', 'b'], ['a', 'b']).should be_true
9
+ end
10
+
11
+ it 'returns false if two objects are not the same' do
12
+ Rules::Evaluators.list[:equals].evaluate(1.0, 1.3).should be_false
13
+ Rules::Evaluators.list[:equals].evaluate('romeo', 'juliet').should be_false
14
+ Rules::Evaluators.list[:equals].evaluate(['a', 'b'], ['a', 'c']).should be_false
15
+ end
16
+ end
17
+
18
+ describe 'not_equals' do
19
+ it 'returns false if two objects are the same' do
20
+ Rules::Evaluators.list[:not_equals].evaluate(1.0, 1.0).should be_false
21
+ Rules::Evaluators.list[:not_equals].evaluate('romeo', 'romeo').should be_false
22
+ Rules::Evaluators.list[:not_equals].evaluate(['a', 'b'], ['a', 'b']).should be_false
23
+ end
24
+
25
+ it 'returns true if two objects are not the same' do
26
+ Rules::Evaluators.list[:not_equals].evaluate(1.0, 1.3).should be_true
27
+ Rules::Evaluators.list[:not_equals].evaluate('romeo', 'juliet').should be_true
28
+ Rules::Evaluators.list[:not_equals].evaluate(['a', 'b'], ['a', 'c']).should be_true
29
+ end
30
+ end
31
+
32
+ describe 'nil' do
33
+ it 'returns true if an object is nil' do
34
+ Rules::Evaluators.list[:nil].evaluate(nil).should be_true
35
+ end
36
+
37
+ it 'returns false if an object is not nil' do
38
+ Rules::Evaluators.list[:nil].evaluate(stub('real')).should be_false
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rules::Evaluators do
4
+ describe '.define_evaluator' do
5
+ it 'fails if the key already exists' do
6
+ Rules::Evaluators.define_evaluator :duplicate
7
+ expect {
8
+ Rules::Evaluators.define_evaluator :duplicate
9
+ }.to raise_error('Evaluator already exists')
10
+ end
11
+
12
+ it 'creates a new evaluator object' do
13
+ evaluator = Rules::Evaluators.define_evaluator :create
14
+ evaluator.should be_instance_of(Rules::Evaluators::Evaluator)
15
+ end
16
+
17
+ it 'sets the properties of the evaluator' do
18
+ evaluator = Rules::Evaluators.define_evaluator :set do
19
+ self.evaluation_method = ->(lhs, rhs) { lhs == rhs }
20
+ self.name = 'some name'
21
+ end
22
+ evaluator.evaluation_method.should_not be_nil
23
+ evaluator.name.should == 'some name'
24
+ end
25
+
26
+ it 'adds the evaluator to a hash of evaluators' do
27
+ expect {
28
+ Rules::Evaluators.define_evaluator :add
29
+ }.to change { Rules::Evaluators.list[:add] }.from(nil)
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rules::Parameters::Attribute do
4
+ let (:user) do
5
+ stub('user', name: 'terry').tap do |u|
6
+ u.stub_chain(:account, :balance).and_return(100)
7
+ end
8
+ end
9
+
10
+ describe '#evaluate' do
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rules::Parameters do
4
+
5
+ end
@@ -0,0 +1,90 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rules::RuleSet do
4
+ let(:rule_set) { Rules::RuleSet.new }
5
+ let(:attributes) { {attribute1: {name: 'name of attribute 1'}, attribute2: {name: 'name of attribute 2'}} }
6
+
7
+ before { stub_const('FakeClass', Class.new) }
8
+
9
+ describe '.set_attributes_for' do
10
+ it 'returns nil if there are no attributes for the given class' do
11
+ Rules::RuleSet.attributes[FakeClass].should be_nil
12
+ end
13
+
14
+ it 'stores the list of attributes for the specified class' do
15
+ Rules::RuleSet.set_attributes_for(FakeClass, attributes)
16
+ Rules::RuleSet.attributes[FakeClass].should have(2).attributes
17
+ end
18
+ end
19
+
20
+ describe '#evaluate' do
21
+ let(:true_rule1) { Rules::Rule.new(lhs_parameter: 'today', evaluator: 'not_nil') }
22
+ let(:true_rule2) { Rules::Rule.new(lhs_parameter: nil, evaluator: 'nil') }
23
+ let(:false_rule1) { Rules::Rule.new(lhs_parameter: 'today', evaluator: 'nil') }
24
+ let(:false_rule2) { Rules::Rule.new(lhs_parameter: nil, evaluator: 'not_nil') }
25
+
26
+ context 'when evaluation logic is all' do
27
+ before { rule_set.evaluation_logic = 'all' }
28
+
29
+ it 'returns true if all rules are true' do
30
+ rule_set.rules << [true_rule1, true_rule2]
31
+ rule_set.evaluate.should be_true
32
+ end
33
+
34
+ it 'returns false if any rules are false' do
35
+ rule_set.rules << [true_rule1, false_rule1]
36
+ rule_set.evaluate.should be_false
37
+ end
38
+ end
39
+
40
+ context 'when evaluation logic is any' do
41
+ before { rule_set.evaluation_logic = 'any' }
42
+
43
+ it 'returns true if all rules are true' do
44
+ rule_set.rules << [true_rule1, true_rule2]
45
+ rule_set.evaluate.should be_true
46
+ end
47
+
48
+ it 'returns true if a single rule is true' do
49
+ rule_set.rules << [false_rule1, true_rule1]
50
+ rule_set.evaluate.should be_true
51
+ end
52
+
53
+ it 'returns false if all rules are false' do
54
+ rule_set.rules << [false_rule1, false_rule2]
55
+ rule_set.evaluate.should be_false
56
+ end
57
+ end
58
+ end
59
+
60
+ describe '#attributes' do
61
+ before { Rules::RuleSet.set_attributes_for(FakeClass, attributes) }
62
+
63
+ it 'returns an empty hash if there is no source' do
64
+ rule_set.attributes.should == {}
65
+ end
66
+
67
+ it 'returns an empty hash if the class has no defined attributes' do
68
+ rule_set.stub(source: Object.new)
69
+ rule_set.attributes.should == {}
70
+ end
71
+
72
+ it 'returns a list of attributes for its source class' do
73
+ rule_set.stub(source: FakeClass.new)
74
+ rule_set.attributes.should have(2).attributes
75
+ end
76
+
77
+ it 'returns the attribute as an attributized object' do
78
+ rule_set.stub(source: FakeClass.new)
79
+ rule_set.attributes[:attribute1].should be_kind_of(Rules::Parameters::Attribute)
80
+ end
81
+
82
+ it 'stores the key and name on the attribute object' do
83
+ rule_set.stub(source: FakeClass.new)
84
+ attribute = rule_set.attributes[:attribute1]
85
+
86
+ attribute.key.should == :attribute1
87
+ attribute.name.should == 'name of attribute 1'
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,188 @@
1
+ require 'spec_helper'
2
+
3
+ describe Rules::Rule do
4
+ let(:rule_set) { Rules::RuleSet.new }
5
+ let(:evaluator) { 'equals' }
6
+ let(:lhs) { 'today' }
7
+ let(:rhs) { Date.today.to_s }
8
+
9
+ describe 'validations' do
10
+ it 'requires a valid evaluator' do
11
+ rule = Rules::Rule.new(evaluator: 'fake', lhs_parameter: nil, rhs_parameter: nil)
12
+ rule.should_not be_valid
13
+ rule.errors[:evaluator].should include("is not included in the list")
14
+ end
15
+
16
+ it 'requires a lhs parameter' do
17
+ rule = Rules::Rule.new(evaluator: evaluator, lhs_parameter: nil, rhs_parameter: nil)
18
+ rule.should_not be_valid
19
+ rule.errors[:lhs_parameter].should include("is not included in the list")
20
+ end
21
+
22
+ it 'requires a valid lhs parameter' do
23
+ rule = Rules::Rule.new(evaluator: evaluator, lhs_parameter: 'fake', rhs_parameter: nil)
24
+ rule.should_not be_valid
25
+ rule.errors[:lhs_parameter].should include("is not included in the list")
26
+ end
27
+
28
+ it 'requires a rhs parameter if the evaluator requires one' do
29
+ rule = Rules::Rule.new(evaluator: evaluator, lhs_parameter: lhs, rhs_parameter: nil)
30
+ rule.should_not be_valid
31
+ rule.errors[:rhs_parameter].should include("can't be blank")
32
+ end
33
+
34
+ it 'require a blank rhs parameter if the evaluator does not require one' do
35
+ rule = Rules::Rule.new(evaluator: 'nil', lhs_parameter: lhs, rhs_parameter: rhs)
36
+ rule.should_not be_valid
37
+ rule.errors[:rhs_parameter].should include("must be blank for this evaluation method")
38
+ end
39
+
40
+ it 'allows a lhs parameter with a valid constant key' do
41
+ rule = Rules::Rule.new(evaluator: 'nil', lhs_parameter: 'today')
42
+ rule.should be_valid
43
+ end
44
+
45
+ it 'allows a lhs parameter with a valid attribute key' do
46
+ rule_set.stub(attributes: {current_user: 'The current user'})
47
+ rule = Rules::Rule.new(rule_set: rule_set, evaluator: 'nil', lhs_parameter: 'current_user')
48
+ rule.should be_valid
49
+ end
50
+
51
+ it 'is valid for well defined rules' do
52
+ rule = Rules::Rule.new(evaluator: evaluator, lhs_parameter: lhs, rhs_parameter: rhs)
53
+ rule.should be_valid
54
+
55
+ rule = Rules::Rule.new(evaluator: 'nil', lhs_parameter: lhs, rhs_parameter: nil)
56
+ rule.should be_valid
57
+ end
58
+ end
59
+
60
+ describe '#get_evaluator' do
61
+ it 'returns nil if an evaluator does not exist for a key' do
62
+ rule = Rules::Rule.new(evaluator: 'fake')
63
+ rule.get_evaluator.should be_nil
64
+ end
65
+
66
+ it 'returns the evaluator if an evaluator with the key exists' do
67
+ rule = Rules::Rule.new(evaluator: evaluator)
68
+ rule.get_evaluator.should be_kind_of(Rules::Evaluators::Evaluator)
69
+ end
70
+ end
71
+
72
+ describe '#lhs_parameter_value' do
73
+ it 'returns nil if the parameter key does not have a corresponding attribute' do
74
+ rule = Rules::Rule.new(lhs_parameter: 'fake')
75
+ rule.lhs_parameter_value.should be_nil
76
+ end
77
+
78
+ it 'returns the evaluated attribute for a constant key' do
79
+ rule = Rules::Rule.new(lhs_parameter: 'today')
80
+ rule.lhs_parameter_value.should == Time.now.utc.to_date
81
+ end
82
+
83
+ it 'returns the right value for an attribute' do
84
+ current_user = mock('current user')
85
+ current_user_attribute = Rules::Parameters::Attribute.new(key: :current_user, name: 'the current user')
86
+ rule_set.stub(attributes: {current_user: current_user_attribute})
87
+
88
+ rule = Rules::Rule.new(rule_set: rule_set, lhs_parameter: 'current_user')
89
+
90
+ rule.lhs_parameter_value({
91
+ current_user: current_user,
92
+ current_price: 10
93
+ }).should == current_user
94
+ end
95
+
96
+ it 'raises an error if the necessary attributes are not provided for an attribute' do
97
+ current_user_attribute = Rules::Parameters::Attribute.new(key: :current_user, name: 'the current user')
98
+ rule_set.stub(attributes: {current_user: current_user_attribute})
99
+
100
+ rule = Rules::Rule.new(rule_set: rule_set, lhs_parameter: 'current_user')
101
+
102
+ expect {
103
+ rule.lhs_parameter_value(current_price: 10)
104
+ }.to raise_error KeyError
105
+ end
106
+ end
107
+
108
+ describe '#rhs_parameter_value' do
109
+ it 'returns the original value of the lhs parameter does not require a cast' do
110
+ rule = Rules::Rule.new(rhs_parameter: 'some string')
111
+ rule.rhs_parameter_value.should == 'some string'
112
+ end
113
+
114
+ it 'raises an error for rhs parameters that can not be cast' do
115
+ rule = Rules::Rule.new(lhs_parameter: 'today', rhs_parameter: 'four score and seven years ago')
116
+ expect {
117
+ rule.rhs_parameter_value
118
+ }.to raise_error
119
+ end
120
+
121
+ it 'casts the rhs parameter into the format required by the lhs parameter' do
122
+ rule = Rules::Rule.new(lhs_parameter: 'today', rhs_parameter: '2012-01-01')
123
+ rule.rhs_parameter_value.should == Date.parse('2012-01-01')
124
+ end
125
+ end
126
+
127
+ describe '#lhs_parameter_object' do
128
+ it 'returns nil if the parameter key does not have a corresponding attribute' do
129
+ rule = Rules::Rule.new(lhs_parameter: 'fake')
130
+ rule.lhs_parameter_object.should be_nil
131
+ end
132
+
133
+ it 'returns the constant for the parameter key if defined' do
134
+ rule = Rules::Rule.new(lhs_parameter: lhs)
135
+ rule.lhs_parameter_object.should be_kind_of(Rules::Parameters::Constant)
136
+ end
137
+
138
+ it 'returns the attribute for the parameter key if defined' do
139
+ rule_set.stub(attributes: {current_user: Rules::Parameters::Attribute.new(key: :current_user)})
140
+ rule = Rules::Rule.new(rule_set: rule_set, lhs_parameter: 'current_user')
141
+ rule.lhs_parameter_object.should be_kind_of(Rules::Parameters::Attribute)
142
+ end
143
+ end
144
+
145
+ describe '#evaluate' do
146
+ it 'returns true for rules that meet the conditions' do
147
+ rule = Rules::Rule.new(lhs_parameter: 'today', rhs_parameter: Time.now.utc.to_date, evaluator: 'equals')
148
+ rule.evaluate.should be_true
149
+
150
+ rule = Rules::Rule.new(lhs_parameter: 'today', rhs_parameter: 2.weeks.ago.to_s, evaluator: 'not_equals')
151
+ rule.evaluate.should be_true
152
+
153
+ rule_set.stub(attributes: {email_address: Rules::Parameters::Attribute.new(key: :email_address)})
154
+ rule = Rules::Rule.new(lhs_parameter: :email_address, rhs_parameter: /example.com$/, evaluator: 'matches', rule_set: rule_set)
155
+ rule.evaluate(email_address: 'test@example.com').should be_true
156
+ end
157
+
158
+ it 'returns false for rules that do not meet the conditions' do
159
+ rule = Rules::Rule.new(lhs_parameter: 'today', rhs_parameter: Time.now.utc.to_date, evaluator: 'not_equals')
160
+ rule.evaluate.should be_false
161
+
162
+ rule = Rules::Rule.new(lhs_parameter: 'today', rhs_parameter: 2.weeks.ago.to_s, evaluator: 'equals')
163
+ rule.evaluate.should be_false
164
+
165
+ rule_set.stub(attributes: {email_address: Rules::Parameters::Attribute.new(key: :email_address)})
166
+ rule = Rules::Rule.new(lhs_parameter: :email_address, rhs_parameter: /example.com$/, evaluator: 'not_matches', rule_set: rule_set)
167
+ rule.evaluate(email_address: 'test@example.com').should be_false
168
+ end
169
+ end
170
+
171
+ describe '#valid_attributes' do
172
+ it 'returns an empty array with no rule set' do
173
+ rule = Rules::Rule.new
174
+ rule.valid_attributes.should be_empty
175
+ end
176
+
177
+ it 'returns an empty array with a rule set with no attributes' do
178
+ rule = Rules::Rule.new(rule_set: rule_set)
179
+ rule.valid_attributes.should be_empty
180
+ end
181
+
182
+ it 'returns a list of attributes for a rule set' do
183
+ rule_set.stub(attributes: {current_user: mock('attribute'), order_price: mock('attribute')})
184
+ rule = Rules::Rule.new(rule_set: rule_set)
185
+ rule.should have(2).valid_attributes
186
+ end
187
+ end
188
+ end
@@ -0,0 +1,38 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../dummy/config/environment", __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
10
+
11
+ RSpec.configure do |config|
12
+ # ## Mock Framework
13
+ #
14
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
15
+ #
16
+ # config.mock_with :mocha
17
+ # config.mock_with :flexmock
18
+ # config.mock_with :rr
19
+
20
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
21
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
22
+
23
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
24
+ # examples within a transaction, remove the following line or assign false
25
+ # instead of true.
26
+ config.use_transactional_fixtures = true
27
+
28
+ # If true, the base class of anonymous controllers will be inferred
29
+ # automatically. This will be the default behavior in future versions of
30
+ # rspec-rails.
31
+ config.infer_base_class_for_anonymous_controllers = false
32
+
33
+ # Run specs in random order to surface order dependencies. If you find an
34
+ # order dependency and want to debug it, you can fix the order by providing
35
+ # the seed, which is printed after each run.
36
+ # --seed 1234
37
+ config.order = "random"
38
+ end
metadata ADDED
@@ -0,0 +1,519 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rules
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Anthony Zacharakis
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-10-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: &27086136 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.2'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *27086136
25
+ - !ruby/object:Gem::Dependency
26
+ name: sqlite3
27
+ requirement: &27035436 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *27035436
36
+ - !ruby/object:Gem::Dependency
37
+ name: rspec-rails
38
+ requirement: &26979372 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *26979372
47
+ description: Rules engine that allows you to add customizable business rules to any
48
+ ActiveRecord model.
49
+ email:
50
+ - anthony@lumoslabs.com
51
+ executables: []
52
+ extensions: []
53
+ extra_rdoc_files: []
54
+ files:
55
+ - db/migrate/20120831163952_create_rules.rb
56
+ - db/migrate/20120831173835_create_rule_sets.rb
57
+ - lib/rules/engine.rb
58
+ - lib/rules/evaluators/definitions.rb
59
+ - lib/rules/evaluators/evaluator.rb
60
+ - lib/rules/evaluators.rb
61
+ - lib/rules/extensions/active_admin/dsl.rb
62
+ - lib/rules/has_rules.rb
63
+ - lib/rules/parameters/attribute.rb
64
+ - lib/rules/parameters/constant.rb
65
+ - lib/rules/parameters/constant_definitions.rb
66
+ - lib/rules/parameters/parameter.rb
67
+ - lib/rules/parameters.rb
68
+ - lib/rules/rule.rb
69
+ - lib/rules/rule_set.rb
70
+ - lib/rules/version.rb
71
+ - lib/rules.rb
72
+ - lib/tasks/rules_tasks.rake
73
+ - MIT-LICENSE
74
+ - Rakefile
75
+ - README.md
76
+ - spec/dummy/app/admin/dashboards.rb
77
+ - spec/dummy/app/admin/orders.rb
78
+ - spec/dummy/app/assets/images/edit_example.png
79
+ - spec/dummy/app/assets/javascripts/active_admin.js
80
+ - spec/dummy/app/assets/javascripts/application.js
81
+ - spec/dummy/app/assets/stylesheets/active_admin.css.scss
82
+ - spec/dummy/app/assets/stylesheets/application.css
83
+ - spec/dummy/app/controllers/application_controller.rb
84
+ - spec/dummy/app/controllers/orders_controller.rb
85
+ - spec/dummy/app/helpers/application_helper.rb
86
+ - spec/dummy/app/models/admin_user.rb
87
+ - spec/dummy/app/models/order.rb
88
+ - spec/dummy/app/views/layouts/application.html.erb
89
+ - spec/dummy/app/views/orders/show.html.haml
90
+ - spec/dummy/config/application.rb
91
+ - spec/dummy/config/boot.rb
92
+ - spec/dummy/config/database.yml
93
+ - spec/dummy/config/environment.rb
94
+ - spec/dummy/config/environments/development.rb
95
+ - spec/dummy/config/environments/production.rb
96
+ - spec/dummy/config/environments/test.rb
97
+ - spec/dummy/config/initializers/active_admin.rb
98
+ - spec/dummy/config/initializers/backtrace_silencers.rb
99
+ - spec/dummy/config/initializers/devise.rb
100
+ - spec/dummy/config/initializers/inflections.rb
101
+ - spec/dummy/config/initializers/mime_types.rb
102
+ - spec/dummy/config/initializers/secret_token.rb
103
+ - spec/dummy/config/initializers/session_store.rb
104
+ - spec/dummy/config/initializers/wrap_parameters.rb
105
+ - spec/dummy/config/locales/devise.en.yml
106
+ - spec/dummy/config/locales/en.yml
107
+ - spec/dummy/config/routes.rb
108
+ - spec/dummy/config.ru
109
+ - spec/dummy/db/development.sqlite3
110
+ - spec/dummy/db/migrate/20120821181654_create_orders.rb
111
+ - spec/dummy/db/migrate/20120831163952_create_rules.rb
112
+ - spec/dummy/db/migrate/20120831173835_create_rule_sets.rb
113
+ - spec/dummy/db/migrate/20120901044842_devise_create_admin_users.rb
114
+ - spec/dummy/db/migrate/20120901044906_create_admin_notes.rb
115
+ - spec/dummy/db/migrate/20120901044907_move_admin_notes_to_comments.rb
116
+ - spec/dummy/db/production.sqlite3
117
+ - spec/dummy/db/schema.rb
118
+ - spec/dummy/db/seeds.rb
119
+ - spec/dummy/db/test.sqlite3
120
+ - spec/dummy/log/development.log
121
+ - spec/dummy/log/production.log
122
+ - spec/dummy/log/test.log
123
+ - spec/dummy/public/404.html
124
+ - spec/dummy/public/422.html
125
+ - spec/dummy/public/500.html
126
+ - spec/dummy/public/favicon.ico
127
+ - spec/dummy/Rakefile
128
+ - spec/dummy/README.rdoc
129
+ - spec/dummy/script/rails
130
+ - spec/dummy/tmp/cache/assets/C58/950/sprockets%2F615625588c137a1529206d80ee81fe93
131
+ - spec/dummy/tmp/cache/assets/C83/FF0/sprockets%2F75b536e9b6927c15b60310fa867e3613
132
+ - spec/dummy/tmp/cache/assets/C88/FD0/sprockets%2F6c558405457e9b59062515dc86bfa252
133
+ - spec/dummy/tmp/cache/assets/C99/A50/sprockets%2Ffd135176f584f5f5658ef48f41187352
134
+ - spec/dummy/tmp/cache/assets/C9B/B40/sprockets%2F29dc70cbda38311141464e041655de41
135
+ - spec/dummy/tmp/cache/assets/C9F/2F0/sprockets%2Faf814c1513450b5466432d2a565ca5c6
136
+ - spec/dummy/tmp/cache/assets/CA2/8F0/sprockets%2Fa283030e028b24b4ba4084e067888c3e
137
+ - spec/dummy/tmp/cache/assets/CA7/860/sprockets%2F0b1c90a9344b3c3989fc2153d0d63193
138
+ - spec/dummy/tmp/cache/assets/CAC/4A0/sprockets%2F3d00565c9e04f1bd481d33b4f1985706
139
+ - spec/dummy/tmp/cache/assets/CAD/F70/sprockets%2F5a1855f4cda19a255ffc802226735517
140
+ - spec/dummy/tmp/cache/assets/CAE/DA0/sprockets%2F9a133e6ab132f569c40b5e82188f4290
141
+ - spec/dummy/tmp/cache/assets/CB2/140/sprockets%2F035ac84d6c64495d0067b926533f8bc3
142
+ - spec/dummy/tmp/cache/assets/CB2/920/sprockets%2F2db5288c0689b237264d0fb22b74d981
143
+ - spec/dummy/tmp/cache/assets/CB8/A30/sprockets%2Ff35759652c08bb7b3921c434d9ee1654
144
+ - spec/dummy/tmp/cache/assets/CCA/AE0/sprockets%2Ff80b892078268a51ddf973986035bf9d
145
+ - spec/dummy/tmp/cache/assets/CD0/AC0/sprockets%2F6f2c1b921c2b86e16aee3245772240c1
146
+ - spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
147
+ - spec/dummy/tmp/cache/assets/CDB/040/sprockets%2Fc732474e67003a4eb840eb44c5ca9385
148
+ - spec/dummy/tmp/cache/assets/CE0/300/sprockets%2F79b0286bc0a316d639ed5f83b1d33763
149
+ - spec/dummy/tmp/cache/assets/CE4/D80/sprockets%2Fd7f4b155b13ea1d8578693e62b0e6463
150
+ - spec/dummy/tmp/cache/assets/CF9/580/sprockets%2F9b6f302133d13906b7d823b4ae14f0aa
151
+ - spec/dummy/tmp/cache/assets/CFD/B50/sprockets%2Fb21fb4d7213b3bf64d6317b3f22584b1
152
+ - spec/dummy/tmp/cache/assets/CFE/450/sprockets%2F088e843f7fffd845821822c7668a4d7e
153
+ - spec/dummy/tmp/cache/assets/CFE/5D0/sprockets%2F5e63c7f47b86e8916fe1b8f88f470370
154
+ - spec/dummy/tmp/cache/assets/CFE/D50/sprockets%2Fc912074248a7b0bdc219a5eac3c52348
155
+ - spec/dummy/tmp/cache/assets/D0B/650/sprockets%2Fb66b60c6b42330849f5b7449bbe108bd
156
+ - spec/dummy/tmp/cache/assets/D0B/EB0/sprockets%2Fa18a9144dadd3f628d2f061f91190d65
157
+ - spec/dummy/tmp/cache/assets/D0E/820/sprockets%2F1611a9cc354f4e02c97d26b3c6ce7466
158
+ - spec/dummy/tmp/cache/assets/D11/FD0/sprockets%2Ff7129bbf85d84e8bc056543e20281e3b
159
+ - spec/dummy/tmp/cache/assets/D24/B00/sprockets%2F671d6f261d89a29e918b1ec7818db6a9
160
+ - spec/dummy/tmp/cache/assets/D29/AE0/sprockets%2Fb62ea1b010afb027501b4f18b8dd3689
161
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
162
+ - spec/dummy/tmp/cache/assets/D38/540/sprockets%2F86e1ad844bc9df4491a2a52b870421db
163
+ - spec/dummy/tmp/cache/assets/D38/5F0/sprockets%2F0c09a45e38408ec6e0e9caf206d5028d
164
+ - spec/dummy/tmp/cache/assets/D3A/CE0/sprockets%2F238bf80bfbe1e2a5bb9280e62162584f
165
+ - spec/dummy/tmp/cache/assets/D3B/000/sprockets%2F961758db39c6223d18ea6b7aeac400d5
166
+ - spec/dummy/tmp/cache/assets/D3B/F60/sprockets%2Ffd56cbfde039018718a0933340af6ef2
167
+ - spec/dummy/tmp/cache/assets/D41/AB0/sprockets%2Fd112ea59edbe4b7335549d814cb1d848
168
+ - spec/dummy/tmp/cache/assets/D47/050/sprockets%2F237eeefd847c43be2e7810a77e80841b
169
+ - spec/dummy/tmp/cache/assets/D48/0D0/sprockets%2F1ef4ab19f690478ac62ad77fcb284447
170
+ - spec/dummy/tmp/cache/assets/D48/640/sprockets%2F9f4f18d910b678b1d0777e04cdaf6f24
171
+ - spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
172
+ - spec/dummy/tmp/cache/assets/D59/D70/sprockets%2Fed9f0de1b65ae8d7ef89087c83728461
173
+ - spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
174
+ - spec/dummy/tmp/cache/assets/D60/6C0/sprockets%2Fd7ef2595e5c50eb96e9d3c3d8698f481
175
+ - spec/dummy/tmp/cache/assets/D65/B10/sprockets%2Fca02dba972b587d3a69b8c32c7200fc6
176
+ - spec/dummy/tmp/cache/assets/D65/EE0/sprockets%2Fd9062d87143bb5c1d9d73c3ea02d7eb1
177
+ - spec/dummy/tmp/cache/assets/D66/2A0/sprockets%2F7b7cb56109acc9205fbbb792187ad04b
178
+ - spec/dummy/tmp/cache/assets/D72/9E0/sprockets%2Fdf58dccde6a5e1266ba5c386149108c6
179
+ - spec/dummy/tmp/cache/assets/D84/0C0/sprockets%2Fe48907efa9d3370f9a2f687a1a7b8d8d
180
+ - spec/dummy/tmp/cache/assets/D93/4C0/sprockets%2F857ecd2092cee11f740b3cf2e373ad2a
181
+ - spec/dummy/tmp/cache/assets/D94/FA0/sprockets%2F8b190b3f72af75f09bfab1f354a0c37b
182
+ - spec/dummy/tmp/cache/assets/D98/550/sprockets%2F69a91a7b4aca241c17daf6a78ac6845a
183
+ - spec/dummy/tmp/cache/assets/D9E/530/sprockets%2F8dbb0027bd9ce6b96c81b82bdec17814
184
+ - spec/dummy/tmp/cache/assets/DAA/990/sprockets%2F8e0ca45c660183bfe809afc1f69bf9a9
185
+ - spec/dummy/tmp/cache/assets/DC1/C40/sprockets%2Fa8cbeabf3ef2d34b43be61671536f2a2
186
+ - spec/dummy/tmp/cache/assets/DC7/8B0/sprockets%2Ffad93382facdc50f097e26ebf19010ea
187
+ - spec/dummy/tmp/cache/assets/DCE/350/sprockets%2F812b6c1998c5ad61096ae7b16cdaeeea
188
+ - spec/dummy/tmp/cache/assets/DD3/370/sprockets%2Ff23609d51b09058fdd08daeecfd7e5e3
189
+ - spec/dummy/tmp/cache/assets/DD7/6A0/sprockets%2Fd5b1cca8d0835fbe9957aa4ee5f8333e
190
+ - spec/dummy/tmp/cache/assets/DD8/440/sprockets%2F7edf42cfb3ac43c7cd4f63c3980d7c86
191
+ - spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
192
+ - spec/dummy/tmp/cache/assets/DDE/420/sprockets%2Ffb8b186d5bf0307f86f65fc787d2adeb
193
+ - spec/dummy/tmp/cache/assets/DF5/270/sprockets%2Fc7f64f609aceac43da16557daacc421f
194
+ - spec/dummy/tmp/cache/assets/DF5/410/sprockets%2Fd6efccfb4bfeb13ed0125e8c53424a65
195
+ - spec/dummy/tmp/cache/assets/DFF/180/sprockets%2Fdc24014f1fcc77f40c5e7de188ad8ebd
196
+ - spec/dummy/tmp/cache/assets/E03/290/sprockets%2Fd469f86939a1cbd52d9b9aaf1db22dae
197
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
198
+ - spec/dummy/tmp/cache/assets/E07/7C0/sprockets%2Fcc5def6ed69cb6a1b7f6084992ed3ca1
199
+ - spec/dummy/tmp/cache/assets/ECA/140/sprockets%2Fd8ebea8564753ddfde91fadbdacc9f5b
200
+ - spec/dummy/tmp/cache/sass/1a9fc2ebd62e6e7cb58441dc0293552ac07c99a9/_bourbon.scssc
201
+ - spec/dummy/tmp/cache/sass/40a0b76d82cd847e80571abbfe75b703bdb6b77f/active_admin.css.scssc
202
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_all.css.scssc
203
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_buttons.css.scssc
204
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_gradients.css.scssc
205
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_icons.css.scssc
206
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_reset.css.scssc
207
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_rounded.css.scssc
208
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_sections.css.scssc
209
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_shadows.css.scssc
210
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_typography.scssc
211
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_utilities.scssc
212
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_variables.css.scssc
213
+ - spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_footer.scssc
214
+ - spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_main_structure.scssc
215
+ - spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_title_bar.scssc
216
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_batch_actions.css.scssc
217
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_blank_slates.scssc
218
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_breadcrumbs.scssc
219
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_buttons.scssc
220
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_columns.scssc
221
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_comments.css.scssc
222
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_date_picker.css.scssc
223
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_dropdown_menu.scssc
224
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_flash_messages.css.scssc
225
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_grid.scssc
226
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_links.scssc
227
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_pagination.scssc
228
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_panels.scssc
229
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_popovers.css.scssc
230
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_scopes.scssc
231
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_status_tags.scssc
232
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_tables.css.scssc
233
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_table_tools.css.scssc
234
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/print.css.scssc
235
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_base.css.scssc
236
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_forms.css.scssc
237
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_header.css.scssc
238
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_mixins.css.scssc
239
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_typography.css.scssc
240
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_button.scssc
241
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_clearfix.scssc
242
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_font-face.scssc
243
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_font-family.scssc
244
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_hide-text.scssc
245
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_html5-input-types.scssc
246
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_position.scssc
247
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_timing-functions.scssc
248
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_deprecated-webkit-gradient.scssc
249
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_flex-grid.scssc
250
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_grid-width.scssc
251
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_linear-gradient.scssc
252
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_modular-scale.scssc
253
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_radial-gradient.scssc
254
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_render-gradients.scssc
255
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_tint-shade.scssc
256
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_transition-property-name.scssc
257
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_animation.scssc
258
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_appearance.scssc
259
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background-image.scssc
260
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background-size.scssc
261
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background.scssc
262
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_border-image.scssc
263
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_border-radius.scssc
264
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_box-shadow.scssc
265
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_box-sizing.scssc
266
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_columns.scssc
267
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_flex-box.scssc
268
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_inline-block.scssc
269
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_linear-gradient.scssc
270
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_prefixer.scssc
271
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_radial-gradient.scssc
272
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_transform.scssc
273
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_transition.scssc
274
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_user-select.scssc
275
+ - spec/dummy/tmp/cache/sass/ee5b745f862b39ff22bf2068a6582c3ee05d1a79/_dashboard.scssc
276
+ - spec/dummy/tmp/cache/sass/ee5b745f862b39ff22bf2068a6582c3ee05d1a79/_logged_out.scssc
277
+ - spec/dummy/tmp/pids/server.pid
278
+ - spec/rules/evaluators/definitions_spec.rb
279
+ - spec/rules/evaluators_spec.rb
280
+ - spec/rules/parameters/attribute_spec.rb
281
+ - spec/rules/parameters_spec.rb
282
+ - spec/rules/rule_set_spec.rb
283
+ - spec/rules/rule_spec.rb
284
+ - spec/spec_helper.rb
285
+ homepage: https://github.com/azach/rules
286
+ licenses: []
287
+ post_install_message:
288
+ rdoc_options: []
289
+ require_paths:
290
+ - lib
291
+ required_ruby_version: !ruby/object:Gem::Requirement
292
+ none: false
293
+ requirements:
294
+ - - ! '>='
295
+ - !ruby/object:Gem::Version
296
+ version: '0'
297
+ required_rubygems_version: !ruby/object:Gem::Requirement
298
+ none: false
299
+ requirements:
300
+ - - ! '>='
301
+ - !ruby/object:Gem::Version
302
+ version: '0'
303
+ requirements: []
304
+ rubyforge_project:
305
+ rubygems_version: 1.8.16
306
+ signing_key:
307
+ specification_version: 3
308
+ summary: Rules engine that allows you to add customizable business rules to any ActiveRecord
309
+ model.
310
+ test_files:
311
+ - spec/dummy/app/admin/dashboards.rb
312
+ - spec/dummy/app/admin/orders.rb
313
+ - spec/dummy/app/assets/images/edit_example.png
314
+ - spec/dummy/app/assets/javascripts/active_admin.js
315
+ - spec/dummy/app/assets/javascripts/application.js
316
+ - spec/dummy/app/assets/stylesheets/active_admin.css.scss
317
+ - spec/dummy/app/assets/stylesheets/application.css
318
+ - spec/dummy/app/controllers/application_controller.rb
319
+ - spec/dummy/app/controllers/orders_controller.rb
320
+ - spec/dummy/app/helpers/application_helper.rb
321
+ - spec/dummy/app/models/admin_user.rb
322
+ - spec/dummy/app/models/order.rb
323
+ - spec/dummy/app/views/layouts/application.html.erb
324
+ - spec/dummy/app/views/orders/show.html.haml
325
+ - spec/dummy/config/application.rb
326
+ - spec/dummy/config/boot.rb
327
+ - spec/dummy/config/database.yml
328
+ - spec/dummy/config/environment.rb
329
+ - spec/dummy/config/environments/development.rb
330
+ - spec/dummy/config/environments/production.rb
331
+ - spec/dummy/config/environments/test.rb
332
+ - spec/dummy/config/initializers/active_admin.rb
333
+ - spec/dummy/config/initializers/backtrace_silencers.rb
334
+ - spec/dummy/config/initializers/devise.rb
335
+ - spec/dummy/config/initializers/inflections.rb
336
+ - spec/dummy/config/initializers/mime_types.rb
337
+ - spec/dummy/config/initializers/secret_token.rb
338
+ - spec/dummy/config/initializers/session_store.rb
339
+ - spec/dummy/config/initializers/wrap_parameters.rb
340
+ - spec/dummy/config/locales/devise.en.yml
341
+ - spec/dummy/config/locales/en.yml
342
+ - spec/dummy/config/routes.rb
343
+ - spec/dummy/config.ru
344
+ - spec/dummy/db/development.sqlite3
345
+ - spec/dummy/db/migrate/20120821181654_create_orders.rb
346
+ - spec/dummy/db/migrate/20120831163952_create_rules.rb
347
+ - spec/dummy/db/migrate/20120831173835_create_rule_sets.rb
348
+ - spec/dummy/db/migrate/20120901044842_devise_create_admin_users.rb
349
+ - spec/dummy/db/migrate/20120901044906_create_admin_notes.rb
350
+ - spec/dummy/db/migrate/20120901044907_move_admin_notes_to_comments.rb
351
+ - spec/dummy/db/production.sqlite3
352
+ - spec/dummy/db/schema.rb
353
+ - spec/dummy/db/seeds.rb
354
+ - spec/dummy/db/test.sqlite3
355
+ - spec/dummy/log/development.log
356
+ - spec/dummy/log/production.log
357
+ - spec/dummy/log/test.log
358
+ - spec/dummy/public/404.html
359
+ - spec/dummy/public/422.html
360
+ - spec/dummy/public/500.html
361
+ - spec/dummy/public/favicon.ico
362
+ - spec/dummy/Rakefile
363
+ - spec/dummy/README.rdoc
364
+ - spec/dummy/script/rails
365
+ - spec/dummy/tmp/cache/assets/C58/950/sprockets%2F615625588c137a1529206d80ee81fe93
366
+ - spec/dummy/tmp/cache/assets/C83/FF0/sprockets%2F75b536e9b6927c15b60310fa867e3613
367
+ - spec/dummy/tmp/cache/assets/C88/FD0/sprockets%2F6c558405457e9b59062515dc86bfa252
368
+ - spec/dummy/tmp/cache/assets/C99/A50/sprockets%2Ffd135176f584f5f5658ef48f41187352
369
+ - spec/dummy/tmp/cache/assets/C9B/B40/sprockets%2F29dc70cbda38311141464e041655de41
370
+ - spec/dummy/tmp/cache/assets/C9F/2F0/sprockets%2Faf814c1513450b5466432d2a565ca5c6
371
+ - spec/dummy/tmp/cache/assets/CA2/8F0/sprockets%2Fa283030e028b24b4ba4084e067888c3e
372
+ - spec/dummy/tmp/cache/assets/CA7/860/sprockets%2F0b1c90a9344b3c3989fc2153d0d63193
373
+ - spec/dummy/tmp/cache/assets/CAC/4A0/sprockets%2F3d00565c9e04f1bd481d33b4f1985706
374
+ - spec/dummy/tmp/cache/assets/CAD/F70/sprockets%2F5a1855f4cda19a255ffc802226735517
375
+ - spec/dummy/tmp/cache/assets/CAE/DA0/sprockets%2F9a133e6ab132f569c40b5e82188f4290
376
+ - spec/dummy/tmp/cache/assets/CB2/140/sprockets%2F035ac84d6c64495d0067b926533f8bc3
377
+ - spec/dummy/tmp/cache/assets/CB2/920/sprockets%2F2db5288c0689b237264d0fb22b74d981
378
+ - spec/dummy/tmp/cache/assets/CB8/A30/sprockets%2Ff35759652c08bb7b3921c434d9ee1654
379
+ - spec/dummy/tmp/cache/assets/CCA/AE0/sprockets%2Ff80b892078268a51ddf973986035bf9d
380
+ - spec/dummy/tmp/cache/assets/CD0/AC0/sprockets%2F6f2c1b921c2b86e16aee3245772240c1
381
+ - spec/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
382
+ - spec/dummy/tmp/cache/assets/CDB/040/sprockets%2Fc732474e67003a4eb840eb44c5ca9385
383
+ - spec/dummy/tmp/cache/assets/CE0/300/sprockets%2F79b0286bc0a316d639ed5f83b1d33763
384
+ - spec/dummy/tmp/cache/assets/CE4/D80/sprockets%2Fd7f4b155b13ea1d8578693e62b0e6463
385
+ - spec/dummy/tmp/cache/assets/CF9/580/sprockets%2F9b6f302133d13906b7d823b4ae14f0aa
386
+ - spec/dummy/tmp/cache/assets/CFD/B50/sprockets%2Fb21fb4d7213b3bf64d6317b3f22584b1
387
+ - spec/dummy/tmp/cache/assets/CFE/450/sprockets%2F088e843f7fffd845821822c7668a4d7e
388
+ - spec/dummy/tmp/cache/assets/CFE/5D0/sprockets%2F5e63c7f47b86e8916fe1b8f88f470370
389
+ - spec/dummy/tmp/cache/assets/CFE/D50/sprockets%2Fc912074248a7b0bdc219a5eac3c52348
390
+ - spec/dummy/tmp/cache/assets/D0B/650/sprockets%2Fb66b60c6b42330849f5b7449bbe108bd
391
+ - spec/dummy/tmp/cache/assets/D0B/EB0/sprockets%2Fa18a9144dadd3f628d2f061f91190d65
392
+ - spec/dummy/tmp/cache/assets/D0E/820/sprockets%2F1611a9cc354f4e02c97d26b3c6ce7466
393
+ - spec/dummy/tmp/cache/assets/D11/FD0/sprockets%2Ff7129bbf85d84e8bc056543e20281e3b
394
+ - spec/dummy/tmp/cache/assets/D24/B00/sprockets%2F671d6f261d89a29e918b1ec7818db6a9
395
+ - spec/dummy/tmp/cache/assets/D29/AE0/sprockets%2Fb62ea1b010afb027501b4f18b8dd3689
396
+ - spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
397
+ - spec/dummy/tmp/cache/assets/D38/540/sprockets%2F86e1ad844bc9df4491a2a52b870421db
398
+ - spec/dummy/tmp/cache/assets/D38/5F0/sprockets%2F0c09a45e38408ec6e0e9caf206d5028d
399
+ - spec/dummy/tmp/cache/assets/D3A/CE0/sprockets%2F238bf80bfbe1e2a5bb9280e62162584f
400
+ - spec/dummy/tmp/cache/assets/D3B/000/sprockets%2F961758db39c6223d18ea6b7aeac400d5
401
+ - spec/dummy/tmp/cache/assets/D3B/F60/sprockets%2Ffd56cbfde039018718a0933340af6ef2
402
+ - spec/dummy/tmp/cache/assets/D41/AB0/sprockets%2Fd112ea59edbe4b7335549d814cb1d848
403
+ - spec/dummy/tmp/cache/assets/D47/050/sprockets%2F237eeefd847c43be2e7810a77e80841b
404
+ - spec/dummy/tmp/cache/assets/D48/0D0/sprockets%2F1ef4ab19f690478ac62ad77fcb284447
405
+ - spec/dummy/tmp/cache/assets/D48/640/sprockets%2F9f4f18d910b678b1d0777e04cdaf6f24
406
+ - spec/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
407
+ - spec/dummy/tmp/cache/assets/D59/D70/sprockets%2Fed9f0de1b65ae8d7ef89087c83728461
408
+ - spec/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
409
+ - spec/dummy/tmp/cache/assets/D60/6C0/sprockets%2Fd7ef2595e5c50eb96e9d3c3d8698f481
410
+ - spec/dummy/tmp/cache/assets/D65/B10/sprockets%2Fca02dba972b587d3a69b8c32c7200fc6
411
+ - spec/dummy/tmp/cache/assets/D65/EE0/sprockets%2Fd9062d87143bb5c1d9d73c3ea02d7eb1
412
+ - spec/dummy/tmp/cache/assets/D66/2A0/sprockets%2F7b7cb56109acc9205fbbb792187ad04b
413
+ - spec/dummy/tmp/cache/assets/D72/9E0/sprockets%2Fdf58dccde6a5e1266ba5c386149108c6
414
+ - spec/dummy/tmp/cache/assets/D84/0C0/sprockets%2Fe48907efa9d3370f9a2f687a1a7b8d8d
415
+ - spec/dummy/tmp/cache/assets/D93/4C0/sprockets%2F857ecd2092cee11f740b3cf2e373ad2a
416
+ - spec/dummy/tmp/cache/assets/D94/FA0/sprockets%2F8b190b3f72af75f09bfab1f354a0c37b
417
+ - spec/dummy/tmp/cache/assets/D98/550/sprockets%2F69a91a7b4aca241c17daf6a78ac6845a
418
+ - spec/dummy/tmp/cache/assets/D9E/530/sprockets%2F8dbb0027bd9ce6b96c81b82bdec17814
419
+ - spec/dummy/tmp/cache/assets/DAA/990/sprockets%2F8e0ca45c660183bfe809afc1f69bf9a9
420
+ - spec/dummy/tmp/cache/assets/DC1/C40/sprockets%2Fa8cbeabf3ef2d34b43be61671536f2a2
421
+ - spec/dummy/tmp/cache/assets/DC7/8B0/sprockets%2Ffad93382facdc50f097e26ebf19010ea
422
+ - spec/dummy/tmp/cache/assets/DCE/350/sprockets%2F812b6c1998c5ad61096ae7b16cdaeeea
423
+ - spec/dummy/tmp/cache/assets/DD3/370/sprockets%2Ff23609d51b09058fdd08daeecfd7e5e3
424
+ - spec/dummy/tmp/cache/assets/DD7/6A0/sprockets%2Fd5b1cca8d0835fbe9957aa4ee5f8333e
425
+ - spec/dummy/tmp/cache/assets/DD8/440/sprockets%2F7edf42cfb3ac43c7cd4f63c3980d7c86
426
+ - spec/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
427
+ - spec/dummy/tmp/cache/assets/DDE/420/sprockets%2Ffb8b186d5bf0307f86f65fc787d2adeb
428
+ - spec/dummy/tmp/cache/assets/DF5/270/sprockets%2Fc7f64f609aceac43da16557daacc421f
429
+ - spec/dummy/tmp/cache/assets/DF5/410/sprockets%2Fd6efccfb4bfeb13ed0125e8c53424a65
430
+ - spec/dummy/tmp/cache/assets/DFF/180/sprockets%2Fdc24014f1fcc77f40c5e7de188ad8ebd
431
+ - spec/dummy/tmp/cache/assets/E03/290/sprockets%2Fd469f86939a1cbd52d9b9aaf1db22dae
432
+ - spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
433
+ - spec/dummy/tmp/cache/assets/E07/7C0/sprockets%2Fcc5def6ed69cb6a1b7f6084992ed3ca1
434
+ - spec/dummy/tmp/cache/assets/ECA/140/sprockets%2Fd8ebea8564753ddfde91fadbdacc9f5b
435
+ - spec/dummy/tmp/cache/sass/1a9fc2ebd62e6e7cb58441dc0293552ac07c99a9/_bourbon.scssc
436
+ - spec/dummy/tmp/cache/sass/40a0b76d82cd847e80571abbfe75b703bdb6b77f/active_admin.css.scssc
437
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_all.css.scssc
438
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_buttons.css.scssc
439
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_gradients.css.scssc
440
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_icons.css.scssc
441
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_reset.css.scssc
442
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_rounded.css.scssc
443
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_sections.css.scssc
444
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_shadows.css.scssc
445
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_typography.scssc
446
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_utilities.scssc
447
+ - spec/dummy/tmp/cache/sass/597823364192c14f6a72ee20d1a1496a722ab1f2/_variables.css.scssc
448
+ - spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_footer.scssc
449
+ - spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_main_structure.scssc
450
+ - spec/dummy/tmp/cache/sass/6d594ee297c7ebeecae08432451ce722569d1a35/_title_bar.scssc
451
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_batch_actions.css.scssc
452
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_blank_slates.scssc
453
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_breadcrumbs.scssc
454
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_buttons.scssc
455
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_columns.scssc
456
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_comments.css.scssc
457
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_date_picker.css.scssc
458
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_dropdown_menu.scssc
459
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_flash_messages.css.scssc
460
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_grid.scssc
461
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_links.scssc
462
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_pagination.scssc
463
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_panels.scssc
464
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_popovers.css.scssc
465
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_scopes.scssc
466
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_status_tags.scssc
467
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_tables.css.scssc
468
+ - spec/dummy/tmp/cache/sass/7f31076cc0ed50f35bd0098f8e2a34720ee15633/_table_tools.css.scssc
469
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/print.css.scssc
470
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_base.css.scssc
471
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_forms.css.scssc
472
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_header.css.scssc
473
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_mixins.css.scssc
474
+ - spec/dummy/tmp/cache/sass/89a136914378618e18c0f75bc8c0f78e84403b0f/_typography.css.scssc
475
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_button.scssc
476
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_clearfix.scssc
477
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_font-face.scssc
478
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_font-family.scssc
479
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_hide-text.scssc
480
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_html5-input-types.scssc
481
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_position.scssc
482
+ - spec/dummy/tmp/cache/sass/a28435efd4cb26f8ebc9e55bbaf23e3537a13190/_timing-functions.scssc
483
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_deprecated-webkit-gradient.scssc
484
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_flex-grid.scssc
485
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_grid-width.scssc
486
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_linear-gradient.scssc
487
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_modular-scale.scssc
488
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_radial-gradient.scssc
489
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_render-gradients.scssc
490
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_tint-shade.scssc
491
+ - spec/dummy/tmp/cache/sass/bb2f93296c9b1e89237438ea63572f38aae290c3/_transition-property-name.scssc
492
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_animation.scssc
493
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_appearance.scssc
494
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background-image.scssc
495
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background-size.scssc
496
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_background.scssc
497
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_border-image.scssc
498
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_border-radius.scssc
499
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_box-shadow.scssc
500
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_box-sizing.scssc
501
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_columns.scssc
502
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_flex-box.scssc
503
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_inline-block.scssc
504
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_linear-gradient.scssc
505
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_prefixer.scssc
506
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_radial-gradient.scssc
507
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_transform.scssc
508
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_transition.scssc
509
+ - spec/dummy/tmp/cache/sass/da77e6f9a782ec4d4cbe7e3a439e89684c300b51/_user-select.scssc
510
+ - spec/dummy/tmp/cache/sass/ee5b745f862b39ff22bf2068a6582c3ee05d1a79/_dashboard.scssc
511
+ - spec/dummy/tmp/cache/sass/ee5b745f862b39ff22bf2068a6582c3ee05d1a79/_logged_out.scssc
512
+ - spec/dummy/tmp/pids/server.pid
513
+ - spec/rules/evaluators/definitions_spec.rb
514
+ - spec/rules/evaluators_spec.rb
515
+ - spec/rules/parameters/attribute_spec.rb
516
+ - spec/rules/parameters_spec.rb
517
+ - spec/rules/rule_set_spec.rb
518
+ - spec/rules/rule_spec.rb
519
+ - spec/spec_helper.rb