rule-interface 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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