erp_rules 3.0.0 → 3.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 (51) hide show
  1. data/app/models/customer_txn_context.rb +11 -0
  2. data/app/models/environment_txn_context.rb +11 -0
  3. data/app/models/search_txn_context.rb +11 -0
  4. data/lib/erp_rules/engine.rb +14 -0
  5. data/lib/erp_rules/extensions/active_record/acts_as_business_rule.rb +30 -0
  6. data/lib/erp_rules/extensions/active_record/acts_as_search_filter.rb +28 -0
  7. data/lib/erp_rules/extensions/active_record/has_rule_context.rb +31 -0
  8. data/lib/erp_rules/extensions.rb +3 -0
  9. data/lib/erp_rules/rules_engine/context.rb +59 -31
  10. data/lib/erp_rules/rules_engine/context_builder.rb +70 -0
  11. data/lib/erp_rules/rules_engine/pricing_engine.rb +18 -0
  12. data/lib/erp_rules/rules_engine/ruleby/engine.rb +24 -0
  13. data/lib/erp_rules/rules_engine/rules_facade.rb +42 -42
  14. data/lib/erp_rules/rules_engine.rb +4 -1
  15. data/lib/erp_rules/search/search_base.rb +64 -0
  16. data/lib/erp_rules/version.rb +7 -1
  17. data/lib/erp_rules.rb +6 -0
  18. data/spec/dummy/Rakefile +7 -0
  19. data/spec/dummy/app/assets/javascripts/application.js +9 -0
  20. data/spec/dummy/app/assets/stylesheets/application.css +7 -0
  21. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  22. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  23. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  24. data/spec/dummy/config/application.rb +44 -0
  25. data/spec/dummy/config/boot.rb +10 -0
  26. data/spec/dummy/config/database.yml +8 -0
  27. data/spec/dummy/config/environment.rb +5 -0
  28. data/spec/dummy/config/environments/spec.rb +27 -0
  29. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  30. data/spec/dummy/config/initializers/inflections.rb +10 -0
  31. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  32. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  33. data/spec/dummy/config/initializers/session_store.rb +8 -0
  34. data/spec/dummy/config/initializers/wrap_parameters.rb +12 -0
  35. data/spec/dummy/config/locales/en.yml +5 -0
  36. data/spec/dummy/config/routes.rb +3 -0
  37. data/spec/dummy/config.ru +4 -0
  38. data/spec/dummy/public/404.html +26 -0
  39. data/spec/dummy/public/422.html +26 -0
  40. data/spec/dummy/public/500.html +26 -0
  41. data/spec/dummy/public/favicon.ico +0 -0
  42. data/spec/dummy/script/rails +6 -0
  43. data/spec/lib/erp_rules/extensions/active_record/acts_as_business_rule_spec.rb +20 -0
  44. data/spec/lib/erp_rules/extensions/active_record/acts_as_search_filter_spec.rb +12 -0
  45. data/spec/lib/erp_rules/extensions/active_record/has_rule_context_spec.rb +29 -0
  46. data/spec/lib/erp_rules/rules_engine/context_builder_spec.rb +5 -0
  47. data/spec/lib/erp_rules/rules_engine/context_spec.rb +64 -0
  48. data/spec/lib/erp_rules/rules_engine/ruleby/engine_spec.rb +26 -0
  49. data/spec/lib/erp_rules/rules_engine/rules_facade_spec.rb +29 -0
  50. data/spec/spec_helper.rb +60 -0
  51. metadata +104 -16
@@ -0,0 +1,8 @@
1
+ # Warning: The database defined as "test" will be erased and
2
+ # re-generated from your development database when you run "rake".
3
+ # Do not set this db to the same as development or production.
4
+ spec:
5
+ adapter: sqlite3
6
+ database: db/spec.sqlite3
7
+ pool: 5
8
+ timeout: 5000
@@ -0,0 +1,5 @@
1
+ # Load the rails application
2
+ require File.expand_path('../application', __FILE__)
3
+
4
+ # Initialize the rails application
5
+ Dummy::Application.initialize!
@@ -0,0 +1,27 @@
1
+ Dummy::Application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb
3
+
4
+ # In the development environment your application's code is reloaded on
5
+ # every request. This slows down response time but is perfect for development
6
+ # since you don't have to restart the web server when you make code changes.
7
+ config.cache_classes = false
8
+
9
+ # Log error messages when you accidentally call methods on nil.
10
+ config.whiny_nils = true
11
+
12
+ # Show full error reports and disable caching
13
+ config.consider_all_requests_local = true
14
+ config.action_controller.perform_caching = false
15
+
16
+ # Don't care if the mailer can't send
17
+ config.action_mailer.raise_delivery_errors = false
18
+
19
+ # Print deprecation notices to the Rails logger
20
+ config.active_support.deprecation = :log
21
+
22
+ # Only use best-standards-support built into browsers
23
+ config.action_dispatch.best_standards_support = :builtin
24
+
25
+ # Do not compress assets
26
+ config.assets.compress = false
27
+ end
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # You can add backtrace silencers for libraries that you're using but don't wish to see in your backtraces.
4
+ # Rails.backtrace_cleaner.add_silencer { |line| line =~ /my_noisy_library/ }
5
+
6
+ # You can also remove all the silencers if you're trying to debug a problem that might stem from framework code.
7
+ # Rails.backtrace_cleaner.remove_silencers!
@@ -0,0 +1,10 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new inflection rules using the following format
4
+ # (all these examples are active by default):
5
+ # ActiveSupport::Inflector.inflections do |inflect|
6
+ # inflect.plural /^(ox)$/i, '\1en'
7
+ # inflect.singular /^(ox)en/i, '\1'
8
+ # inflect.irregular 'person', 'people'
9
+ # inflect.uncountable %w( fish sheep )
10
+ # end
@@ -0,0 +1,5 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Add new mime types for use in respond_to blocks:
4
+ # Mime::Type.register "text/richtext", :rtf
5
+ # Mime::Type.register_alias "text/html", :iphone
@@ -0,0 +1,7 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ # Your secret key for verifying the integrity of signed cookies.
4
+ # If you change this key, all old signed cookies will become invalid!
5
+ # Make sure the secret is at least 30 characters and all random,
6
+ # no regular words or you'll be exposed to dictionary attacks.
7
+ Dummy::Application.config.secret_token = 'ae0d58840f73a49e40850c9d815a6a135e169865cdb8721cec7f335a738af09f3483de0f99d7c131f8fdecf2d8b508f8fd5e2e33c8d0565dcc9030eadb227695'
@@ -0,0 +1,8 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Dummy::Application.config.session_store :cookie_store, :key => '_dummy_session'
4
+
5
+ # Use the database for sessions instead of the cookie-based default,
6
+ # which shouldn't be used to store highly confidential information
7
+ # (create the session table with "rails generate session_migration")
8
+ # Dummy::Application.config.session_store :active_record_store
@@ -0,0 +1,12 @@
1
+ # Be sure to restart your server when you modify this file.
2
+ #
3
+ # This file contains settings for ActionController::ParamsWrapper which
4
+ # is enabled by default.
5
+
6
+ # Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array.
7
+ ActionController::Base.wrap_parameters :format => [:json]
8
+
9
+ # Disable root element in JSON by default.
10
+ if defined?(ActiveRecord)
11
+ ActiveRecord::Base.include_root_in_json = false
12
+ end
@@ -0,0 +1,5 @@
1
+ # Sample localization file for English. Add more files in this directory for other locales.
2
+ # See https://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
3
+
4
+ en:
5
+ hello: "Hello world"
@@ -0,0 +1,3 @@
1
+ Rails.application.routes.draw do
2
+ mount ErpRules::Engine => "/erp_rules"
3
+ end
@@ -0,0 +1,4 @@
1
+ # This file is used by Rack-based servers to start the application.
2
+
3
+ require ::File.expand_path('../config/environment', __FILE__)
4
+ run Dummy::Application
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ <p>We've been notified about this issue and we'll take a look at it shortly.</p>
24
+ </div>
25
+ </body>
26
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,20 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::Extensions::ActiveRecord::ActsAsBusinessRule do
4
+
5
+ before(:each) do
6
+ TestClass = Class.new(ActiveRecord::Base) do
7
+ acts_as_business_rule
8
+ set_table_name "role_types"
9
+ end
10
+ end
11
+
12
+ it "should provide an is_match? method to an ActiveRecord::Base class" do
13
+ @test_obj = TestClass.new
14
+ @test_obj.respond_to?(:is_match?).should eq(true)
15
+ end
16
+
17
+ it "should provide a get_matches! method as a singleton" do
18
+ TestClass.respond_to?(:get_matches!).should eq(true)
19
+ end
20
+ end
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::Extensions::ActiveRecord::ActsAsSearchFilter do
4
+
5
+ before(:each) do
6
+ TestClass = Class.new(ActiveRecord::Base) do
7
+ acts_as_search_filter
8
+ set_table_name "role_types"
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,29 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::Extensions::ActiveRecord::HasRuleContext do
4
+
5
+ before(:each) do
6
+ TestClass = Class.new(ActiveRecord::Base) do
7
+ has_rule_context
8
+ set_table_name "role_types"
9
+ end
10
+ end
11
+
12
+ it "should provide a get_context method to an ActiveRecord::Base class" do
13
+
14
+ @test_obj = TestClass.new
15
+ @test_obj.respond_to?(:get_context).should eq(true)
16
+ end
17
+
18
+ it "should return a hash with the attributes of the model" do
19
+
20
+ @obj = TestClass.new
21
+ @obj.internal_identifier = "test_obj"
22
+ @obj.save
23
+
24
+ @result = @obj.get_context()
25
+ @result.has_key?("internal_identifier").should eq(true)
26
+ @result["internal_identifier"].should eq("test_obj")
27
+ end
28
+
29
+ end
@@ -0,0 +1,5 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::RulesEngine::ContextBuilder do
4
+
5
+ end
@@ -0,0 +1,64 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::RulesEngine::Context do
4
+
5
+ it "should add item and be able to retrieve it" do
6
+
7
+ subject[:test_val] = "test"
8
+
9
+ subject[:test_val].should eq("test")
10
+ end
11
+
12
+ it "should handle float values correctly" do
13
+
14
+ subject[:test_val] = 179.5
15
+
16
+ subject[:test_val].should eq(179.5)
17
+ end
18
+
19
+ it "should find a hash item as if it were a method on an object" do
20
+
21
+ subject[:test_val] = "test"
22
+
23
+ subject.test_val.should eq("test")
24
+ end
25
+
26
+ it "should set the value if the method name passed has an '='" do
27
+
28
+ subject.send("test_val=", "test")
29
+
30
+ subject.test_val.should eq("test")
31
+ end
32
+
33
+ it "should handle nested items" do
34
+
35
+ subject[:test_key1] = {:test_key2 => "blah1",
36
+ :test_key3 => "blah2"}
37
+
38
+ subject.test_key1.test_key2.should eq("blah1")
39
+ end
40
+
41
+ it "should convert all hashes to Context objects when initalized with a hash" do
42
+
43
+ data = {:search_ctxt =>
44
+ {:offer_ctxt =>
45
+ {:valid_offers => [1,2],
46
+ :invalid_offers => [3]
47
+ }
48
+ }
49
+ }
50
+
51
+ ctx = ErpRules::RulesEngine::Context.new(data)
52
+
53
+ ctx.search_ctxt.offer_ctxt.valid_offers.should include(1)
54
+ end
55
+
56
+ it "should covert hashes to Context obj's when set via method syntax" do
57
+
58
+ subject.test_key1 = {:test_key2 => "blah1",
59
+ :test_key3 => "blah2"}
60
+
61
+ subject.test_key1.test_key2.should eq("blah1")
62
+ end
63
+
64
+ end
@@ -0,0 +1,26 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::RulesEngine::Ruleby::Engine do
4
+
5
+ before(:each) do
6
+
7
+ RuleBook = Class.new(Ruleby::Rulebook) do
8
+ def rules
9
+ rule :last_name_is_smith, {:priority => 1},[ErpRules::RulesEngine::Context, :context, m.customer_last_name == 'Smith'] do |v|
10
+ v[:context].valid_offers << 2
11
+ end
12
+ end
13
+ end
14
+ @rule_context = ErpRules::RulesEngine::Context.new
15
+ end
16
+
17
+ it "should invoke ruleby and execute context against a rulebook" do
18
+ @rule_context[:customer_last_name] = "Smith"
19
+ @rule_context[:valid_offers] = []
20
+
21
+ @context = ErpRules::RulesEngine::Ruleby::Engine.invoke(RuleBook, @rule_context)
22
+ @context[:valid_offers].should include(2)
23
+ end
24
+
25
+
26
+ end
@@ -0,0 +1,29 @@
1
+ require "spec_helper"
2
+
3
+ describe ErpRules::RulesEngine::RulesFacade do
4
+
5
+ before(:each) do
6
+ #ErpRules::RulesEngine::Ruleby::Engine
7
+
8
+ RuleBook = Class.new(Ruleby::Rulebook) do
9
+ def rules
10
+ rule :last_name_is_smith, {:priority => 1},[ErpRules::RulesEngine::Context, :context, m.customer_last_name == 'Smith'] do |v|
11
+ v[:context].valid_offers << 2
12
+ end
13
+ end
14
+ end
15
+ @rule_context = ErpRules::RulesEngine::Context.new
16
+ end
17
+
18
+ it 'should invoke the rules engine class passed in' do
19
+ @rule_context[:customer_last_name] = "Smith"
20
+ @rule_context[:valid_offers] = []
21
+
22
+ @result_ctx = subject.invoke(RuleBook,
23
+ @rule_context,
24
+ ErpRules::RulesEngine::Ruleby::Engine)
25
+ @result_ctx[:valid_offers].should include(2)
26
+ end
27
+
28
+ it 'should add a directives map if they exist'
29
+ end
@@ -0,0 +1,60 @@
1
+ require 'spork'
2
+ require 'rake'
3
+
4
+ Spork.prefork do
5
+ # Loading more in this block will cause your tests to run faster. However,
6
+ # if you change any configuration or code from libraries loaded here, you'll
7
+ # need to restart spork for it take effect.
8
+
9
+ ENGINE_RAILS_ROOT=File.join(File.dirname(__FILE__), '../')
10
+ DUMMY_APP_ROOT=File.join(File.dirname(__FILE__), '/dummy')
11
+
12
+ require 'active_support'
13
+ require 'active_model'
14
+ require 'active_record'
15
+ require 'action_controller'
16
+
17
+ # Configure Rails Envinronment
18
+ ENV["RAILS_ENV"] = "spec"
19
+ require File.expand_path(DUMMY_APP_ROOT + "/config/environment.rb", __FILE__)
20
+
21
+ ActiveRecord::Base.configurations = YAML::load(IO.read(DUMMY_APP_ROOT + "/config/database.yml"))
22
+ ActiveRecord::Base.establish_connection(ENV["DB"] || "spec")
23
+ ActiveRecord::Migration.verbose = false
24
+
25
+ # Requires supporting ruby files with custom matchers and macros, etc,
26
+ # in spec/support/ and its subdirectories.
27
+ Dir[File.join(ENGINE_RAILS_ROOT, "spec/support/**/*.rb")].each {|f| require f }
28
+
29
+ require 'rspec/rails'
30
+ require 'erp_dev_svcs'
31
+
32
+ RSpec.configure do |config|
33
+ config.use_transactional_fixtures = true
34
+ config.include Sorcery::TestHelpers::Rails
35
+ config.include ErpDevSvcs
36
+ config.include ErpDevSvcs::ControllerSupport, :type => :controller
37
+ end
38
+ end
39
+
40
+ Spork.each_run do
41
+ #We have to execute the migrations from dummy app directory
42
+ Dir.chdir DUMMY_APP_ROOT
43
+ `rake db:drop`
44
+ Dir.chdir ENGINE_RAILS_ROOT
45
+
46
+ #We have to execute the migrations from dummy app directory
47
+ Dir.chdir DUMMY_APP_ROOT
48
+ `rake db:migrate`
49
+ Dir.chdir ENGINE_RAILS_ROOT
50
+
51
+ ErpDevSvcs::FactorySupport.load_engine_factories
52
+
53
+ require 'simplecov'
54
+ SimpleCov.start 'rails' do
55
+ add_filter "spec/"
56
+ end
57
+ #Need to explictly load the files in lib/ until we figure out how to
58
+ #get rails to autoload them for spec like it used to...
59
+ Dir[File.join(ENGINE_RAILS_ROOT, "lib/**/*.rb")].each {|f| load f}
60
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erp_rules
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-06 00:00:00.000000000Z
12
+ date: 2012-05-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: erp_base_erp_svcs
16
- requirement: &2157188000 !ruby/object:Gem::Requirement
15
+ name: ruleby
16
+ requirement: &72388760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,18 +21,29 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157188000
24
+ version_requirements: *72388760
25
+ - !ruby/object:Gem::Dependency
26
+ name: erp_txns_and_accts
27
+ requirement: &72387130 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 3.0.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *72387130
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: erp_dev_svcs
27
- requirement: &2157187560 !ruby/object:Gem::Requirement
38
+ requirement: &72384290 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
- - - ! '>='
41
+ - - =
31
42
  - !ruby/object:Gem::Version
32
- version: '0'
43
+ version: 3.0.1
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *2157187560
46
+ version_requirements: *72384290
36
47
  description: The Rules Module of CompassAE includes classes which act as helpers in
37
48
  externalizing the execution context of CompassAE value objects for processing by
38
49
  a rules engine. It also includes an integration with Ruleby, which is a pure ruby
@@ -43,22 +54,66 @@ executables: []
43
54
  extensions: []
44
55
  extra_rdoc_files: []
45
56
  files:
46
- - app/assets/javascripts/erp_rules/application.js
47
57
  - app/assets/stylesheets/erp_rules/application.css
48
- - app/controllers/erp_rules/application_controller.rb
49
- - app/helpers/erp_rules/application_helper.rb
58
+ - app/assets/javascripts/erp_rules/application.js
50
59
  - app/views/layouts/erp_rules/application.html.erb
60
+ - app/models/customer_txn_context.rb
61
+ - app/models/environment_txn_context.rb
62
+ - app/models/search_txn_context.rb
63
+ - app/helpers/erp_rules/application_helper.rb
64
+ - app/controllers/erp_rules/application_controller.rb
51
65
  - config/routes.rb
66
+ - lib/tasks/erp_rules_tasks.rake
67
+ - lib/erp_rules.rb
68
+ - lib/erp_rules/rules_engine.rb
52
69
  - lib/erp_rules/engine.rb
70
+ - lib/erp_rules/search/search_base.rb
53
71
  - lib/erp_rules/rules_engine/context.rb
72
+ - lib/erp_rules/rules_engine/pricing_engine.rb
73
+ - lib/erp_rules/rules_engine/ruleby/engine.rb
74
+ - lib/erp_rules/rules_engine/context_builder.rb
54
75
  - lib/erp_rules/rules_engine/rules_facade.rb
55
- - lib/erp_rules/rules_engine.rb
76
+ - lib/erp_rules/extensions.rb
77
+ - lib/erp_rules/extensions/active_record/acts_as_search_filter.rb
78
+ - lib/erp_rules/extensions/active_record/acts_as_business_rule.rb
79
+ - lib/erp_rules/extensions/active_record/has_rule_context.rb
56
80
  - lib/erp_rules/version.rb
57
- - lib/erp_rules.rb
58
- - lib/tasks/erp_rules_tasks.rake
59
81
  - GPL-3-LICENSE
60
82
  - Rakefile
61
83
  - README.rdoc
84
+ - spec/spec_helper.rb
85
+ - spec/lib/erp_rules/rules_engine/context_spec.rb
86
+ - spec/lib/erp_rules/rules_engine/rules_facade_spec.rb
87
+ - spec/lib/erp_rules/rules_engine/ruleby/engine_spec.rb
88
+ - spec/lib/erp_rules/rules_engine/context_builder_spec.rb
89
+ - spec/lib/erp_rules/extensions/active_record/has_rule_context_spec.rb
90
+ - spec/lib/erp_rules/extensions/active_record/acts_as_search_filter_spec.rb
91
+ - spec/lib/erp_rules/extensions/active_record/acts_as_business_rule_spec.rb
92
+ - spec/dummy/public/422.html
93
+ - spec/dummy/public/404.html
94
+ - spec/dummy/public/500.html
95
+ - spec/dummy/public/favicon.ico
96
+ - spec/dummy/config.ru
97
+ - spec/dummy/app/assets/stylesheets/application.css
98
+ - spec/dummy/app/assets/javascripts/application.js
99
+ - spec/dummy/app/views/layouts/application.html.erb
100
+ - spec/dummy/app/helpers/application_helper.rb
101
+ - spec/dummy/app/controllers/application_controller.rb
102
+ - spec/dummy/config/routes.rb
103
+ - spec/dummy/config/locales/en.yml
104
+ - spec/dummy/config/boot.rb
105
+ - spec/dummy/config/application.rb
106
+ - spec/dummy/config/environments/spec.rb
107
+ - spec/dummy/config/initializers/mime_types.rb
108
+ - spec/dummy/config/initializers/session_store.rb
109
+ - spec/dummy/config/initializers/backtrace_silencers.rb
110
+ - spec/dummy/config/initializers/wrap_parameters.rb
111
+ - spec/dummy/config/initializers/inflections.rb
112
+ - spec/dummy/config/initializers/secret_token.rb
113
+ - spec/dummy/config/environment.rb
114
+ - spec/dummy/config/database.yml
115
+ - spec/dummy/Rakefile
116
+ - spec/dummy/script/rails
62
117
  homepage: http://development.compassagile.com
63
118
  licenses: []
64
119
  post_install_message:
@@ -84,4 +139,37 @@ signing_key:
84
139
  specification_version: 3
85
140
  summary: The Rules Module of CompassAE includes classes which act as helpers in externalizing
86
141
  the execution context of CompassAE value objects for processing by a rules engine.
87
- test_files: []
142
+ test_files:
143
+ - spec/spec_helper.rb
144
+ - spec/lib/erp_rules/rules_engine/context_spec.rb
145
+ - spec/lib/erp_rules/rules_engine/rules_facade_spec.rb
146
+ - spec/lib/erp_rules/rules_engine/ruleby/engine_spec.rb
147
+ - spec/lib/erp_rules/rules_engine/context_builder_spec.rb
148
+ - spec/lib/erp_rules/extensions/active_record/has_rule_context_spec.rb
149
+ - spec/lib/erp_rules/extensions/active_record/acts_as_search_filter_spec.rb
150
+ - spec/lib/erp_rules/extensions/active_record/acts_as_business_rule_spec.rb
151
+ - spec/dummy/public/422.html
152
+ - spec/dummy/public/404.html
153
+ - spec/dummy/public/500.html
154
+ - spec/dummy/public/favicon.ico
155
+ - spec/dummy/config.ru
156
+ - spec/dummy/app/assets/stylesheets/application.css
157
+ - spec/dummy/app/assets/javascripts/application.js
158
+ - spec/dummy/app/views/layouts/application.html.erb
159
+ - spec/dummy/app/helpers/application_helper.rb
160
+ - spec/dummy/app/controllers/application_controller.rb
161
+ - spec/dummy/config/routes.rb
162
+ - spec/dummy/config/locales/en.yml
163
+ - spec/dummy/config/boot.rb
164
+ - spec/dummy/config/application.rb
165
+ - spec/dummy/config/environments/spec.rb
166
+ - spec/dummy/config/initializers/mime_types.rb
167
+ - spec/dummy/config/initializers/session_store.rb
168
+ - spec/dummy/config/initializers/backtrace_silencers.rb
169
+ - spec/dummy/config/initializers/wrap_parameters.rb
170
+ - spec/dummy/config/initializers/inflections.rb
171
+ - spec/dummy/config/initializers/secret_token.rb
172
+ - spec/dummy/config/environment.rb
173
+ - spec/dummy/config/database.yml
174
+ - spec/dummy/Rakefile
175
+ - spec/dummy/script/rails