lorj 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/Dockerfile +19 -0
  3. data/Rakefile +48 -7
  4. data/build/build_with_proxy.sh +49 -0
  5. data/files/bundle.sh +19 -0
  6. data/files/proxy.sh +23 -0
  7. data/lib/compat/1.8/lorj_meta.rb +44 -0
  8. data/lib/compat/lorj_meta.rb +40 -0
  9. data/lib/core/compat/1.8/core_object_data.rb +36 -0
  10. data/lib/core/compat/1.8/lorj_data.rb +41 -0
  11. data/lib/core/compat/core_object_data.rb +33 -0
  12. data/lib/core/compat/lorj_data.rb +39 -0
  13. data/lib/core/core.rb +21 -0
  14. data/lib/core/core_internal.rb +3 -1
  15. data/lib/core/core_object_data.rb +14 -10
  16. data/lib/core/core_object_params.rb +1 -1
  17. data/lib/core/core_process.rb +20 -5
  18. data/lib/core/core_setup_encrypt.rb +4 -2
  19. data/lib/core/definition.rb +3 -1
  20. data/lib/core/lorj_basecontroller.rb +15 -2
  21. data/lib/core/lorj_baseprocess.rb +15 -1
  22. data/lib/core/lorj_data.rb +10 -18
  23. data/lib/core/lorj_keypath.rb +35 -14
  24. data/lib/lorj/compat.rb +99 -0
  25. data/lib/lorj/version.rb +2 -2
  26. data/lib/lorj.rb +1 -0
  27. data/lib/lorj_account.rb +1 -0
  28. data/lib/lorj_defaults.rb +1 -1
  29. data/lib/lorj_meta.rb +15 -16
  30. data/lorj.gemspec +12 -7
  31. data/spec/05_lorj_keypath_spec.rb +98 -57
  32. data/spec/06_lorj_object_data_spec.rb +15 -15
  33. data/spec/09_prc_spec.rb +3 -0
  34. data/spec/10_lorj_log_spec.rb +2 -3
  35. data/spec/11_lorj_defaults_spec.rb +2 -3
  36. data/spec/12_lorj_config_spec.rb +2 -1
  37. data/spec/13_lorj_account_spec.rb +2 -1
  38. data/spec/20_lorj_meta_spec.rb +14 -10
  39. data/spec/21_lorj_processes_spec.rb +7 -5
  40. data/spec/22_lorj_core_spec.rb +2 -4
  41. data/spec/spec_helper.rb +34 -0
  42. metadata +60 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4650a17061896bba5bafad8e12d15be96a37a532
4
- data.tar.gz: 9ed6bb8936335cc1fa1c1236e95ef1c17a56e7e3
3
+ metadata.gz: 794f05ad532df448906a4c02b3a8037b3633ead3
4
+ data.tar.gz: b5f2c8e2dcd69cee39b5ed7931765878581b6e20
5
5
  SHA512:
6
- metadata.gz: b9842cbc6ccf9d6068a76a0b82948a1c6196e10f5d46d9a40d12166961d2a328e5514a95e761387ef6a634783e851386cfcd0f48de4c4c4eba35c1d6bf9c56f1
7
- data.tar.gz: f499cab40cd49a2494ff67e59a38704e4a193acff174b1df7dacf547f9ba13bce7c6796e344c63f00f01c043f4d54a70a9da51ec0326cb90c96686187b7a5adc
6
+ metadata.gz: 0d9610ee767426066b0507f791c6fbc52764bb42cebdf9479bdd9923a7e7080107dcc0294db7d420e8b287104d1cd290eb316464287669845ec78b6cfaf684b4
7
+ data.tar.gz: 113d5adb2e583a57ca190a7c9b41c78328beb41f357974cb1db8d6bf0a20522030719978e332bb44c01f392c5d54c5968f4f17b2c523248b8e604cebb0bdfbf3
data/Dockerfile ADDED
@@ -0,0 +1,19 @@
1
+ FROM centos:6
2
+
3
+ COPY files/proxy.sh /tmp/proxy.sh
4
+ RUN /tmp/proxy.sh
5
+
6
+ RUN yum -y install \
7
+ libffi-devel \
8
+ libxml2-devel \
9
+ libxslt-devel \
10
+ perl \
11
+ ruby \
12
+ rubygems \
13
+ ruby-devel \
14
+ ; yum -y groupinstall "Development tools" \
15
+ ; yum clean all
16
+
17
+ RUN gem install --no-rdoc --no-ri bundler rake rspec && rm -fr /root/.gem
18
+
19
+ COPY files/bundle.sh /tmp/bundle.sh
data/Rakefile CHANGED
@@ -16,11 +16,18 @@
16
16
 
17
17
  require 'bundler/gem_tasks'
18
18
  require 'rspec/core/rake_task'
19
- require 'rubocop/rake_task'
19
+ require 'rubocop/rake_task' unless RUBY_VERSION.match(/1\.8/)
20
20
  require 'rdoc/task'
21
+ require 'json'
21
22
 
22
23
  task :default => [:lint, :spec]
23
24
 
25
+ desc 'Run all specs (locally + docker).'
26
+ task :spec => [:spec_local, :spec18]
27
+
28
+ desc 'Run acceptance test (docker - specs).'
29
+ task :acceptance => [:spec18]
30
+
24
31
  desc 'Generate lorj documentation'
25
32
  RDoc::Task.new do |rdoc|
26
33
  rdoc.main = 'README.md'
@@ -28,16 +35,50 @@ RDoc::Task.new do |rdoc|
28
35
  end
29
36
 
30
37
  desc 'Run the specs.'
31
- RSpec::Core::RakeTask.new do |t|
38
+ RSpec::Core::RakeTask.new(:spec_local) do |t|
32
39
  t.pattern = 'spec/*_spec.rb'
33
40
  t.rspec_opts = '-f doc'
34
41
  end
35
42
 
36
- desc 'Run RuboCop on the project'
37
- RuboCop::RakeTask.new(:lint) do |task|
38
- task.formatters = ['progress']
39
- task.verbose = true
40
- task.fail_on_error = true
43
+ if RUBY_VERSION.match(/1\.8/)
44
+ desc 'no lint with ruby 1.8'
45
+ task :lint
46
+ else
47
+ desc 'Run RuboCop on the project'
48
+ RuboCop::RakeTask.new(:lint) do |task|
49
+ task.formatters = ['progress']
50
+ task.verbose = true
51
+ task.fail_on_error = true
52
+ end
53
+ end
54
+
55
+ # rubocop: disable Style/SpecialGlobalVars
56
+
57
+ desc 'Run spec with docker for ruby 1.8'
58
+ task :spec18 do
59
+ begin
60
+ `docker`
61
+ rescue
62
+ puts 'Unable to run spec against ruby 1.8: docker not found'
63
+ else
64
+ cmd = 'build/build_with_proxy.sh -t ruby/1.8'
65
+ puts "Running #{cmd}"
66
+ system(cmd)
67
+ image_id = `docker images ruby/1.8`.split("\n")[1].split[2]
68
+ res = `docker inspect -f '{{json .}}' lorj`
69
+ c_img = ''
70
+ c_img = JSON.parse(res)['Image'][0..11] if $?.exitstatus == 0
71
+
72
+ if $?.exitstatus == 0 && image_id == c_img && ENV['RSPEC_DEBUG'].nil?
73
+ system('docker start -ai lorj')
74
+ else
75
+ `docker rm lorj` if $?.exitstatus == 0
76
+ cmd = "docker run -e RSPEC_DEBUG=#{ENV['RSPEC_DEBUG']} -it --name "\
77
+ 'lorj -v $(pwd):/src -w /src ruby/1.8 /tmp/bundle.sh'
78
+ puts "Running #{cmd}"
79
+ system(cmd)
80
+ end
81
+ end
41
82
  end
42
83
 
43
84
  task :build => [:lint, :spec]
@@ -0,0 +1,49 @@
1
+ #!/bin/bash
2
+ #
3
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ function usage
18
+ {
19
+ echo "usage is $0 [--help][-t user/repo:version]
20
+ where :
21
+ - help: is the current help
22
+ - t : Tag the image built. Respect the tag format use by docker -t option.
23
+ "
24
+ }
25
+
26
+ if [ "p$1" = "p--help" ]
27
+ then
28
+ usage
29
+ exit
30
+ fi
31
+
32
+ if [ "p$1" = "p-t" ] && [ "p$2" != "" ]
33
+ then
34
+ TAG="-t $2"
35
+ fi
36
+
37
+ if [ "$http_proxy" = "" ]
38
+ then
39
+ echo "Currently, no proxy is set. Running docker without proxy"
40
+ docker build $TAG
41
+ exit
42
+ fi
43
+
44
+ mkdir .tmp
45
+ awk '$0 ~ /RUN \/tmp\/proxy.sh/ { print "ENV http_proxy '"$http_proxy"'" }
46
+ $0 ~ // { print $0 } ' Dockerfile > .tmp/Dockerfile
47
+ cp -rp files tmp .tmp/
48
+ docker build $TAG .tmp
49
+ rm -fr .tmp
data/files/bundle.sh ADDED
@@ -0,0 +1,19 @@
1
+ #!/bin/bash
2
+ #
3
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ cd /src
18
+ bundle
19
+ rake spec_local
data/files/proxy.sh ADDED
@@ -0,0 +1,23 @@
1
+ #!/bin/bash
2
+ #
3
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ if [ "$http_proxy" != "" ]
18
+ then
19
+ echo "proxy setting to '$http_proxy'"
20
+ export http_proxy=$http_proxy
21
+ export https_proxy=$http_proxy
22
+ sed -i -e '/^\[main\]/aproxy='"$http_proxy" /etc/yum.conf
23
+ fi
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Lorj
19
+ # Specific ALL Ruby functions, but incompatible with some other version.
20
+ module MetaRubySpec
21
+ # Public functions
22
+ module Public
23
+ # layer setting function
24
+ #
25
+ # * *Args*
26
+ # - +type+ : :sections by default. Define the section type name.
27
+ # - +section+ : Symbol. Section name of the data to define.
28
+ # - +keys+ : 1 Symbol or more Symbols. Name of the data and options.
29
+ # - +options+ : Hash. List of options
30
+ #
31
+ # * *Returns*
32
+ # - The value set or nil
33
+ #
34
+ def []=(type, section, *prop)
35
+ keys = prop.clone
36
+ options = {}
37
+ options = keys.pop if keys[-1].is_a?(Hash)
38
+
39
+ return nil if keys.length == 0
40
+ set(type, section, keys, options)
41
+ end
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,40 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Lorj
19
+ # Specific ALL Ruby functions, but incompatible with some other version.
20
+ module MetaRubySpec
21
+ # Public functions
22
+ module Public
23
+ # layer setting function
24
+ #
25
+ # * *Args*
26
+ # - +type+ : :sections by default. Define the section type name.
27
+ # - +section+ : Symbol. Section name of the data to define.
28
+ # - +keys+ : 1 Symbol or more Symbols. Name of the data and options.
29
+ # - +options+ : Hash. List of options
30
+ #
31
+ # * *Returns*
32
+ # - The value set or nil
33
+ #
34
+ def []=(type, section, *keys, options)
35
+ return nil if keys.length == 0
36
+ set(type, section, keys, options)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,36 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Lorj
19
+ # Specific ALL Ruby functions, but incompatible with some other version.
20
+ module ObjectDataRubySpec
21
+ # Public functions
22
+ module Public
23
+ # Functions used to set simple data/Object for controller/process function
24
+ # call.
25
+ # TODO: to revisit this function, as we may consider simple data, as
26
+ # Lorj::Data object
27
+ def []=(*prop)
28
+ key = prop.clone
29
+ value = key.pop
30
+
31
+ return nil if [:object, :query].include?(key[0])
32
+ @params.rh_set(value, key)
33
+ end
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,41 @@
1
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Lorj
16
+ # Specific ALL Ruby functions, but incompatible with some other version.
17
+ module DataRubySpec
18
+ # Public functions
19
+ module Public
20
+ # Set Lorj::data attribute value for an :object
21
+ #
22
+ # * *Args* :
23
+ # - +keys+ : attribute keys
24
+ # - +value+: Value to set
25
+ #
26
+ # * *Returns* :
27
+ # true
28
+ #
29
+ # * *Raises* :
30
+ # No exceptions
31
+ #
32
+ def []=(*prop)
33
+ key = prop.clone
34
+ value = key.pop
35
+ return false if @type == :list
36
+ @data.rh_set(value, :attrs, key)
37
+ true
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,33 @@
1
+ #!/usr/bin/env ruby
2
+ # encoding: UTF-8
3
+
4
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+
18
+ module Lorj
19
+ # Specific ALL Ruby functions, but incompatible with some other version.
20
+ module ObjectDataRubySpec
21
+ # Public functions
22
+ module Public
23
+ # Functions used to set simple data/Object for controller/process function
24
+ # call.
25
+ # TODO: to revisit this function, as we may consider simple data, as
26
+ # Lorj::Data object
27
+ def []=(*key, value)
28
+ return nil if [:object, :query].include?(key[0])
29
+ @params.rh_set(value, key)
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,39 @@
1
+ # (c) Copyright 2014 Hewlett-Packard Development Company, L.P.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Lorj
16
+ # Specific ALL Ruby functions, but incompatible with some other version.
17
+ module DataRubySpec
18
+ # Public functions
19
+ module Public
20
+ # Set Lorj::data attribute value for an :object
21
+ #
22
+ # * *Args* :
23
+ # - +keys+ : attribute keys
24
+ # - +value+: Value to set
25
+ #
26
+ # * *Returns* :
27
+ # true
28
+ #
29
+ # * *Raises* :
30
+ # No exceptions
31
+ #
32
+ def []=(*key, value)
33
+ return false if @type == :list
34
+ @data.rh_set(value, :attrs, key)
35
+ true
36
+ end
37
+ end
38
+ end
39
+ end
data/lib/core/core.rb CHANGED
@@ -294,6 +294,27 @@ module Lorj
294
294
  @core_object.process_setup(oCloudObj)
295
295
  end
296
296
 
297
+ # Function to add an object to Lorj cache.
298
+ #
299
+ # This function is typically used when a previous query has been
300
+ # executed and you want to keep the object in lorj cache.
301
+ # Lorj cache is used by create/delete/etc... To avoid requerying or
302
+ # creating those objects (+dependencies) if missing.
303
+ #
304
+ # * *Args* :
305
+ # - +oObject+ : object to register.
306
+ # - +sObjectType+ : Object type to register.
307
+ # By default, the object type is determined by the Object itself
308
+ # if this object is an ObjectData. Otherwise, you need to define the
309
+ # object type.
310
+ #
311
+ # * *Raises* :
312
+ # No exceptions
313
+ def register(oObject, sObjectType = nil) #:doc:
314
+ return nil if !oObject || !@core_object
315
+ @core_object.register(oObject, sObjectType)
316
+ end
317
+
297
318
  # Core parameters are:
298
319
  # the_config : Optional. An instance of a configuration system which *HAVE*
299
320
  # to provide get/set/exist?/[]/[]=
@@ -467,7 +467,9 @@ module Lorj
467
467
 
468
468
  match_found = the_process_class.scan(/_[a-z]/)
469
469
  if match_found
470
- match_found.each { |str| the_process_class[str] = str[1].capitalize }
470
+ # Ruby 1.8 : 'ab'[1] => 98 and 'ab'[1, 1] => 'b'
471
+ # Ruby 1.9 + : 'ab'[1] => 'b' and 'ab'[1, 1] => 'b'
472
+ match_found.each { |str| the_process_class[str] = str[1, 1].capitalize }
471
473
  end
472
474
 
473
475
  the_process_class
@@ -16,6 +16,14 @@
16
16
 
17
17
  # rubocop: disable Metrics/AbcSize
18
18
 
19
+ file_dir = File.join(File.dirname(__FILE__), 'compat')
20
+ compat_version = RUBY_VERSION[0..2]
21
+ file = File.basename(__FILE__)
22
+
23
+ lib = File.join(file_dir, compat_version, file)
24
+ lib = File.join(file_dir, file) unless File.exist?(lib)
25
+ load lib if File.exist?(lib)
26
+
19
27
  # Module Lorj which contains several classes.
20
28
  #
21
29
  # Those classes describes :
@@ -130,15 +138,6 @@ module Lorj
130
138
  value
131
139
  end
132
140
 
133
- # Functions used to set simple data/Object for controller/process function
134
- # call.
135
- # TODO: to revisit this function, as we may consider simple data, as
136
- # Lorj::Data object
137
- def []=(*key, value)
138
- return nil if [:object, :query].include?(key[0])
139
- @params.rh_set(value, key)
140
- end
141
-
142
141
  # Add function. Add a Lorj::Data (data or list) to the ObjectData list.
143
142
  #
144
143
  # key can be an array, a string (converted to a symbol) or a symbol.
@@ -236,10 +235,13 @@ module Lorj
236
235
 
237
236
  def type?(key)
238
237
  return nil unless @params.rh_exist?(key)
239
- return :DataObject if @params[key].type == :object
238
+ return :DataObject if @params[key].class == Lorj::Data &&
239
+ @params[key].type == :object
240
240
  :data
241
241
  end
242
242
 
243
+ alias :'otype?' :'type?' if RUBY_VERSION =~ /1\.8/ # rubocop: disable Alias
244
+
243
245
  def to_s
244
246
  str = "-- Lorj::ObjectData --\n"
245
247
  str += "Usage internal\n" if @internal
@@ -247,6 +249,8 @@ module Lorj
247
249
  str
248
250
  end
249
251
 
252
+ include Lorj::ObjectDataRubySpec::Public
253
+
250
254
  private
251
255
 
252
256
  # Get function
@@ -112,7 +112,7 @@ module Lorj
112
112
  end
113
113
 
114
114
  if param_options[:decrypt].is_a?(TrueClass)
115
- value = _get_encrypted_value(value, _get_encrypt_key)
115
+ value = _get_encrypted_value(value, _get_encrypt_key, attr_name)
116
116
  end
117
117
 
118
118
  return unless param_options[:mapping]
@@ -127,7 +127,10 @@ module Lorj
127
127
 
128
128
  proc = PrcLib.model.meta_obj.rh_get(object_type, :lambdas, :delete_e)
129
129
 
130
- return nil if proc.nil?
130
+ if proc.nil?
131
+ _remove_instant_config(hConfig)
132
+ return nil
133
+ end
131
134
 
132
135
  # Check required parameters
133
136
  _process_load_dependencies(object_type, proc, :delete_e, __callee__)
@@ -208,11 +211,17 @@ module Lorj
208
211
 
209
212
  # Check if we can re-use a previous query
210
213
  list = query_cache(object_type, hQuery)
211
- return list unless list.nil?
214
+ unless list.nil?
215
+ _remove_instant_config(hConfig)
216
+ return list
217
+ end
212
218
 
213
219
  proc = PrcLib.model.meta_obj.rh_get(object_type, :lambdas, :query_e)
214
220
 
215
- return nil if proc.nil?
221
+ if proc.nil?
222
+ _remove_instant_config(hConfig)
223
+ return nil
224
+ end
216
225
 
217
226
  # Check required parameters
218
227
  _process_load_dependencies(object_type, proc, :query_e, __callee__)
@@ -293,7 +302,10 @@ module Lorj
293
302
 
294
303
  proc = PrcLib.model.meta_obj.rh_get(object_type, :lambdas, :get_e)
295
304
 
296
- return nil if proc.nil?
305
+ if proc.nil?
306
+ _remove_instant_config(hConfig)
307
+ return nil
308
+ end
297
309
 
298
310
  # Check required parameters
299
311
  _process_load_dependencies(object_type, proc, :get_e, __callee__)
@@ -356,7 +368,10 @@ module Lorj
356
368
 
357
369
  proc = PrcLib.model.meta_obj.rh_get(object_type, :lambdas, :update_e)
358
370
 
359
- return nil if proc.nil?
371
+ if proc.nil?
372
+ _remove_instant_config(hConfig)
373
+ return nil
374
+ end
360
375
 
361
376
  _process_load_dependencies(object_type, proc, :update_e, __callee__)
362
377
 
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  require 'highline/import'
16
+ require 'encryptor'
16
17
 
17
18
  # Module Lorj which contains several classes.
18
19
  #
@@ -83,7 +84,7 @@ module Lorj
83
84
  return '' if enc_value.nil?
84
85
  value_hidden = ''
85
86
  begin
86
- value_hidden = '*' * _get_encrypted_value(enc_value, entr).length
87
+ value_hidden = '*' * _get_encrypted_value(enc_value, entr, sDesc).length
87
88
  rescue => e
88
89
  PrcLib.error('Unable to decrypt your %s. You will need to re-enter it.'\
89
90
  '\n%s', sDesc, e.message)
@@ -101,13 +102,14 @@ module Lorj
101
102
  # *parameters*:
102
103
  # - +default+ : encrypted default value
103
104
  # - +entropy+ : Entropy Hash
105
+ # - +sDesc+ : data description
104
106
  #
105
107
  # *return*:
106
108
  # - value : decrypted value.
107
109
  #
108
110
  # *raise*:
109
111
  #
110
- def _get_encrypted_value(enc_value, entr)
112
+ def _get_encrypted_value(enc_value, entr, sDesc)
111
113
  return '' if enc_value.nil?
112
114
  begin
113
115
  Encryptor.decrypt(
@@ -691,7 +691,9 @@ module Lorj
691
691
  handlers_dcl.each_key do |key|
692
692
  next unless handlers_options.key?(key)
693
693
 
694
- unless process_context.instance_methods.include?(handlers_options[key])
694
+ # Warning! Use BaseProcess._instance_methods Compatibility function
695
+ # instead of BaseProcess.instance_methods
696
+ unless process_context._instance_methods.include?(handlers_options[key])
695
697
  PrcLib.dcl_fail("'%s' parameter requires a valid instance method"\
696
698
  " '%s' in the process '%s'.",
697
699
  key, handlers_options[key], process_context)
@@ -87,8 +87,21 @@ module Lorj
87
87
  # * *Raises* :
88
88
  # - +Error+ if the key do not exist.
89
89
  def required?(oParams, *key)
90
- return if oParams.exist?(key)
91
-
90
+ if oParams.exist?(key)
91
+ if RUBY_VERSION =~ /1\.8/
92
+ # debugger # rubocop: disable Lint/Debugger
93
+ if oParams.otype?(*key) == :DataObject &&
94
+ oParams[key, :ObjectData].empty?
95
+ controller_error '%s is empty.', key
96
+ end
97
+ else
98
+ if oParams.type?(*key) == :DataObject &&
99
+ oParams[key, :ObjectData].empty?
100
+ controller_error '%s is empty.', key
101
+ end
102
+ end
103
+ return
104
+ end
92
105
  controller_error '%s is not set.', key
93
106
  end
94
107
  end