rule-interface 1.0.1 → 1.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: df48071317f3e7c2a3658336622f33eeeff83d5f
4
- data.tar.gz: cbbed253c8c4b3c89058b319dbca309151ff94c0
3
+ metadata.gz: 524f8431dd91bd47d798334f77bed731e5525072
4
+ data.tar.gz: 3c64436cf12b292c4c4da96b13f17f58ecb2a847
5
5
  SHA512:
6
- metadata.gz: 04730760cc896899e398580baa989e6c9ef1c9cb2eeec8e2c1700237b05418e6d1e99bad914b32021f53813da1235d9f7e65de0c7ec887a3b2a88d4a1428a16d
7
- data.tar.gz: beb1f891b323850b2ebdff4158e9de63d896e12113942ce6886975e7b13afb7bec2b3371abcbf40678cb31b790781d6d4a76697dd194dd268fd38cf7febdd8b4
6
+ metadata.gz: 3fff9269d46e83c0e95ae22418d2c0370f1ff9bb1563b2d19331236f573450460585f0ff5766e7ea0548d00c97b58e083180342eaa6957c0bb1d7434ee4a8990
7
+ data.tar.gz: eba32c7218cb1e4a5ed1a3807501a5e5fe0afff65932e58995b0f0ab89c5710d274272d6b08b9c67c3853cbdc3722914d8e5f085cfd85705f9a258c991f6db9d
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rule-interface (1.0.0)
4
+ rule-interface (1.0.2)
5
5
  activesupport (~> 3)
6
6
  rest-client (~> 1)
7
7
 
data/README.md CHANGED
@@ -20,10 +20,28 @@ Or install it yourself as:
20
20
 
21
21
  $ gem install rule-interface
22
22
 
23
- ## Usage
23
+ ## Configuration
24
+
25
+ ENV variable can be used to configure KIE server details
26
+
27
+ `KIE_SERVER_USERNAME`, `KIE_SERVER_PASSWORD`, `KIE_SERVER_HOSTNAME`
24
28
 
29
+ You can also configure the KIE server details programmatically
30
+
31
+ ```ruby
32
+ RuleInterface::Configuration::kiesever_config = {
33
+ username: 'blah',
34
+ password: 'blah',
35
+ hostname: 'http://url',
36
+ }
25
37
  ```
26
- RuleExecutor.execute!(
38
+
39
+ All the attribute specified in the above configuration is optional. If specified, it will overwrite ENV configuration for that attribute
40
+
41
+ ## Usage
42
+
43
+ ```ruby
44
+ RuleInterface.execute!(
27
45
  data_hash: {
28
46
  product: [
29
47
  {
@@ -3,15 +3,31 @@ module RuleInterface
3
3
 
4
4
  class << self
5
5
 
6
- #ex - {:username=>"kieserver", :password=>"kieserver1!", :hostname=>"http://rule-engine-..."}
6
+ # eg: {
7
+ # username: 'blah',
8
+ # password: 'blah',
9
+ # hostname: 'http://url'
10
+ #}
7
11
  def kiesever_config=(config)
12
+ @cached = false
8
13
  @kiesever_config = config
9
14
  end
10
15
 
11
16
  def kiesever_config
12
- unless defined? @kiesever_config && @kiesever_config.present?
13
- raise Error::CommonError, 'Configuration for rule engine is not yet set'
14
- end
17
+ return @kiesever_config if @cached
18
+
19
+ @kiesever_config ||= {}
20
+
21
+ @kiesever_config[:username] ||= ENV['KIE_SERVER_USERNAME'].presence
22
+ @kiesever_config[:password] ||= ENV['KIE_SERVER_PASSWORD'].presence
23
+ @kiesever_config[:hostname] ||= ENV['KIE_SERVER_HOSTNAME'].presence
24
+
25
+ raise Error::ConfigError, 'KIE server username missing' if @kiesever_config[:username].blank?
26
+ raise Error::ConfigError, 'KIE server password missing' if @kiesever_config[:password].blank?
27
+ raise Error::ConfigError, 'KIE server hostname missing' if @kiesever_config[:hostname].blank?
28
+
29
+ @cached = true
30
+
15
31
  @kiesever_config
16
32
  end
17
33
 
@@ -43,6 +43,10 @@ module RuleInterface
43
43
  private
44
44
 
45
45
  def insert_object(data_object:, object_type:, package:, return_object: true)
46
+ if return_object && data_object[:id].blank?
47
+ raise Error::CommonError, "Object must have an id attribute: #{data_object.to_json}"
48
+ end
49
+
46
50
  data_object = data_object.inject({}) do |m, (k,v)|
47
51
  m[k.to_s.camelize(:lower).to_sym] = v; m
48
52
  end
@@ -51,7 +55,7 @@ module RuleInterface
51
55
  insert_object = {}
52
56
  insert_object[:insert] = {}
53
57
  insert_object[:insert]['return-object'] = return_object
54
- insert_object[:insert]['out-identifier'] = "#{object_type}_#{data_object[:id]}" if return_object
58
+ insert_object[:insert]['out-identifier'] = "#{object_type}##{data_object[:id]}" if return_object
55
59
 
56
60
  object = {}
57
61
  object_name = "#{package}.#{object_type}"
@@ -4,5 +4,7 @@ module RuleInterface
4
4
  class Base < StandardError; end
5
5
 
6
6
  class CommonError < Base; end
7
+
8
+ class ConfigError < Base; end
7
9
  end
8
10
  end
@@ -1,3 +1,3 @@
1
1
  module RuleInterface
2
- VERSION = '1.0.1'.freeze
2
+ VERSION = '1.0.2'.freeze
3
3
  end
@@ -5,7 +5,6 @@ require 'rule-interface/version'
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "rule-interface"
7
7
  s.version = RuleInterface::VERSION
8
- s.date = '2017-11-27'
9
8
  s.authors = ['Ranveer']
10
9
  s.email = ['ranveernitk@gmail.com', 'tech_team@nestaway.com']
11
10
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rule-interface
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ranveer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-27 00:00:00.000000000 Z
11
+ date: 2017-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -132,7 +132,7 @@ files:
132
132
  - lib/rule-interface.rb
133
133
  - lib/rule-interface/configuartion.rb
134
134
  - lib/rule-interface/converter.rb
135
- - lib/rule-interface/errors.rb
135
+ - lib/rule-interface/error.rb
136
136
  - lib/rule-interface/rule_executor.rb
137
137
  - lib/rule-interface/version.rb
138
138
  - rule-interface.gemspec