lorj 1.0.11 → 1.0.12

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 (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
@@ -331,7 +331,7 @@ module Lorj
331
331
  list.each do |oElem|
332
332
  is_found = true
333
333
  sQuery.each do |key, value|
334
- if oElem[key] != value
334
+ unless _qs_check_query_valid?(oElem, key, value)
335
335
  is_found = false
336
336
  break
337
337
  end
@@ -340,6 +340,20 @@ module Lorj
340
340
  end
341
341
  end
342
342
 
343
+ def _qs_check_query_valid?(elem, key, value)
344
+ if value.is_a?(Array)
345
+ path = value.clone
346
+ v = path.pop
347
+ return false if elem[key].nil?
348
+ where = elem[key].rh_get(path)
349
+ return true if where.is_a?(Array) && where.flatten.include?(v)
350
+ return true if where == v
351
+ else
352
+ return true if elem[key] == value
353
+ end
354
+ false
355
+ end
356
+
343
357
  def _qs_info_init(sInfoMsg)
344
358
  info = {
345
359
  :notfound => "No %s '%s' found",
@@ -12,6 +12,14 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
+ file_dir = File.join(File.dirname(__FILE__), 'compat')
16
+ compat_version = RUBY_VERSION[0..2]
17
+ file = File.basename(__FILE__)
18
+
19
+ lib = File.join(file_dir, compat_version, file)
20
+ lib = File.join(file_dir, file) unless File.exist?(lib)
21
+ load lib if File.exist?(lib)
22
+
15
23
  # - Lorj::Data : Defines how to manage Objects data between processes,
16
24
  # controllers and internally in the core of Lorj.
17
25
  module Lorj
@@ -205,24 +213,6 @@ module Lorj
205
213
  get(*key)
206
214
  end
207
215
 
208
- # Set Lorj::data attribute value for an :object
209
- #
210
- # * *Args* :
211
- # - +keys+ : attribute keys
212
- # - +value+: Value to set
213
- #
214
- # * *Returns* :
215
- # true
216
- #
217
- # * *Raises* :
218
- # No exceptions
219
- #
220
- def []=(*key, value)
221
- return false if @type == :list
222
- @data.rh_set(value, :attrs, key)
223
- true
224
- end
225
-
226
216
  # Get value from Lorj::data
227
217
  # Depending on Lorj::Data type, you can get:
228
218
  # - :object
@@ -482,6 +472,8 @@ module Lorj
482
472
  @is_registered = false
483
473
  self
484
474
  end
475
+
476
+ include Lorj::DataRubySpec::Public
485
477
  end
486
478
 
487
479
  #
@@ -49,6 +49,15 @@ module Lorj
49
49
  # puts oKey.tree # => [:test,:test2,:test3]
50
50
  # puts oKey.key_tree # => ':test/:test2/:test3'
51
51
  #
52
+ # oKey = KeyPath([:test, '{/.*/}', :test3])
53
+ # puts oKey.to_s # => 'test/{\/.*\/}/test3'
54
+ # puts oKey.key # => :test3
55
+ # puts oKey.key[0] # => :test
56
+ # puts oKey.key[1] # => '{/.*/}'
57
+ # puts oKey.fpath # => ':test/{\/.*\/}/:test3'
58
+ # puts oKey.tree # => [:test, '{/.*/}',:test3]
59
+ # puts oKey.key_tree # => ':test/{\/.*\/}/:test3'
60
+ #
52
61
  class KeyPath
53
62
  def initialize(sKeyPath = nil, max_level = -1)
54
63
  @keypath = []
@@ -83,22 +92,24 @@ module Lorj
83
92
 
84
93
  def fpath
85
94
  return nil if @keypath.length == 0
86
- key_access = @keypath.clone
87
- key_access.each_index do |iIndex|
88
- next unless key_access[iIndex].is_a?(Symbol)
89
- key_access[iIndex] = ':' + key_access[iIndex].to_s
95
+ akey = @keypath.clone
96
+ akey.each_index do |i|
97
+ akey[i] = akey[i].gsub(%r{/}, '\/') if akey[i].is_a?(String)
98
+ next unless akey[i].is_a?(Symbol)
99
+ akey[i] = ':' + akey[i].to_s
90
100
  end
91
- key_access.join('/')
101
+ akey.join('/')
92
102
  end
93
103
 
94
104
  def to_s
95
105
  return nil if @keypath.length == 0
96
- key_access = @keypath.clone
97
- key_access.each_index do |iIndex|
98
- next unless key_access[iIndex].is_a?(Symbol)
99
- key_access[iIndex] = key_access[iIndex].to_s
106
+ akey = @keypath.clone
107
+ akey.each_index do |i|
108
+ akey[i] = akey[i].gsub(%r{/}, '\/') if akey[i].is_a?(String)
109
+ next unless akey[i].is_a?(Symbol)
110
+ akey[i] = akey[i].to_s
100
111
  end
101
- key_access.join('/')
112
+ akey.join('/')
102
113
  end
103
114
 
104
115
  def key(iIndex = -1)
@@ -116,11 +127,21 @@ module Lorj
116
127
  # rubocop: disable Style/RegexpLiteral
117
128
  if %r{[^\\/]?/[^/]} =~ sKeyPath || %r{:[^:/]} =~ sKeyPath
118
129
  # rubocop: enable Style/RegexpLiteral
119
- # keypath to interpret
120
- res = sKeyPath.split('/')
130
+ res = []
131
+ # split then rejoin / prefixed by \
132
+ sKeyPath.split('/').each do |s|
133
+ if res[-1] && res[-1].match(/\\$/)
134
+ res[-1][-1] = ''
135
+ res[-1] += '/' + s
136
+ else
137
+ res << s
138
+ end
139
+ end
140
+
121
141
  res.each_index do |iIndex|
122
- next unless res[iIndex].is_a?(String)
123
- res[iIndex] = res[iIndex][1..-1].to_sym if res[iIndex][0] == ':'
142
+ # Ruby 1.8 : 'ab'[1] => 98 and 'ab'[1, 1] => 'b'
143
+ # Ruby 1.9 + : 'ab'[1] => 'b' and 'ab'[1, 1] => 'b'
144
+ res[iIndex] = res[iIndex][1..-1].to_sym if res[iIndex][0, 1] == ':'
124
145
  end
125
146
  @keypath = res
126
147
  else
@@ -0,0 +1,99 @@
1
+ # encoding: UTF-8
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
+ # Ruby 1.8 case
18
+ module Kernel
19
+ # Defined in ruby 1.9
20
+ unless defined?(__callee__)
21
+ def __callee__
22
+ caller[0] =~ /`([^']*)'/ && Regexp.last_match(1)
23
+ end
24
+ end
25
+ end
26
+
27
+ # Lorj Module Compatibility
28
+ module Lorj
29
+ # BaseProcess Compatibility
30
+ class BaseProcess
31
+ # Adapt instance_methods
32
+ def self._instance_methods
33
+ # Ruby 1.8 : Object.instance_methods => Array of string
34
+ # Ruby 1.9+ : Object.instance_methods => Array of symbol
35
+ return instance_methods unless RUBY_VERSION.match(/1\.8/)
36
+
37
+ instance_methods.collect(&:to_sym)
38
+ end
39
+ end
40
+ end
41
+
42
+ # Redefine string representation of Array
43
+ class Array
44
+ def to_s
45
+ '[' + map do |a|
46
+ if a.is_a?(String)
47
+ "\"#{a}\""
48
+ elsif a.is_a?(Symbol)
49
+ ":#{a}"
50
+ else
51
+ a.to_s
52
+ end
53
+ end.join(', ') + ']'
54
+ end
55
+ end
56
+
57
+ # Redefine string representation of Hash
58
+ class Hash
59
+ def to_s
60
+ local = []
61
+ each do |a, b|
62
+ if a.is_a?(String)
63
+ k = "\"#{a}\""
64
+ elsif a.is_a?(Symbol)
65
+ k = ":#{a}"
66
+ else
67
+ k = a.to_s
68
+ end
69
+
70
+ if b.is_a?(String)
71
+ v = "\"#{b}\""
72
+ elsif b.is_a?(Symbol)
73
+ v = ":#{b}"
74
+ else
75
+ v = b.to_s
76
+ end
77
+ local << "#{k}=>#{v}"
78
+ end
79
+ '{' + local.join(', ') + '}'
80
+ end
81
+ end
82
+
83
+ # Support for encode 64 without \n
84
+ module Base64
85
+ # Returns the Base64-encoded version of +bin+.
86
+ # This method complies with RFC 4648.
87
+ # No line feeds are added.
88
+ def strict_encode64(bin)
89
+ [bin].pack('m0')
90
+ end
91
+
92
+ # Returns the Base64-decoded version of +str+.
93
+ # This method complies with RFC 4648.
94
+ # ArgumentError is raised if +str+ is incorrectly padded or contains
95
+ # non-alphabet characters. Note that CR or LF are also rejected.
96
+ def strict_decode64(str)
97
+ str.unpack('m0').first
98
+ end
99
+ end
data/lib/lorj/version.rb CHANGED
@@ -16,6 +16,6 @@
16
16
 
17
17
  # Lorj version
18
18
  module Lorj
19
- VERSION = '1.0.11'
20
- DATE = '2015-05-20'
19
+ VERSION = '1.0.12'
20
+ DATE = '2015-06-15'
21
21
  end
data/lib/lorj.rb CHANGED
@@ -18,6 +18,7 @@
18
18
  #++
19
19
 
20
20
  require 'lorj/version'
21
+ require 'lorj/compat' # Code introduced to support Ruby 1.8
21
22
 
22
23
  # This is the lorj base library.
23
24
 
data/lib/lorj_account.rb CHANGED
@@ -63,6 +63,7 @@ module Lorj
63
63
  # This class limits ERB template to access only to config object data.
64
64
  class ERBConfig
65
65
  attr_reader :config
66
+ attr_accessor :data
66
67
 
67
68
  def initialize(config)
68
69
  @config = config
data/lib/lorj_defaults.rb CHANGED
@@ -125,7 +125,7 @@ module Lorj
125
125
  end
126
126
 
127
127
  # Remove inherited method []=
128
- def []=(*_keys, _value)
128
+ def []=(*_prop)
129
129
  end
130
130
 
131
131
  # Load yaml documents (defaults)
data/lib/lorj_meta.rb CHANGED
@@ -18,6 +18,14 @@
18
18
  require 'rubygems'
19
19
  require 'yaml'
20
20
 
21
+ file_dir = File.join(File.dirname(__FILE__), 'compat')
22
+ compat_version = RUBY_VERSION[0..2]
23
+ file = File.basename(__FILE__)
24
+
25
+ lib = File.join(file_dir, compat_version, file)
26
+ lib = File.join(file_dir, file) unless File.exist?(lib)
27
+ load lib if File.exist?(lib)
28
+
21
29
  # Lorj module implements Lorj::Config
22
30
  # Lorj exposes defaults, as attribute to access the Lorj::Defaults instance.
23
31
  module Lorj
@@ -484,6 +492,11 @@ module Lorj
484
492
 
485
493
  arr = p_get(:keys => [:keys, data])
486
494
  return nil unless arr.is_a?(Array) && arr[0]
495
+ if /1\.8/ =~ RUBY_VERSION && arr.length > 1
496
+ PrcLib.warning('Avoid using Lorj::MetaAppConfig.first_section(%s) with'\
497
+ ' Ruby 1.8 and searching for the first section as it do'\
498
+ ' not preserve the order of Hash keys.', data)
499
+ end
487
500
  [arr[0], data]
488
501
  end
489
502
 
@@ -644,22 +657,6 @@ module Lorj
644
657
  p_set(:keys => keys, :name => layer, :value => options)
645
658
  end
646
659
 
647
- # layer setting function
648
- #
649
- # * *Args*
650
- # - +type+ : :sections by default. Define the section type name.
651
- # - +section+ : Symbol. Section name of the data to define.
652
- # - +keys+ : 1 Symbol or more Symbols. Name of the data and options.
653
- # - +options+ : Hash. List of options
654
- #
655
- # * *Returns*
656
- # - The value set or nil
657
- #
658
- def []=(type, section, *keys, options)
659
- return nil if keys.length == 0
660
- set(type, section, keys, options)
661
- end
662
-
663
660
  # section/data removal function
664
661
  #
665
662
  # * *Args*
@@ -741,6 +738,8 @@ module Lorj
741
738
 
742
739
  p_set(:keys => keys, :name => layer, :value => value.merge(options))
743
740
  end
741
+
742
+ include Lorj::MetaRubySpec::Public
744
743
  end
745
744
 
746
745
  module_function
data/lorj.gemspec CHANGED
@@ -30,18 +30,23 @@ Gem::Specification.new do |spec|
30
30
  spec.add_development_dependency 'bundler'
31
31
  spec.add_development_dependency 'rake', '~> 10.0'
32
32
  spec.add_development_dependency 'rspec', '~> 3.1.0'
33
- spec.add_development_dependency 'rubocop', '>= 0.29.0'
34
- spec.add_development_dependency 'byebug' unless less_than_two
33
+ spec.add_development_dependency 'rdoc'
35
34
  spec.rdoc_options << \
36
35
  '--title Lorj - The Process Controllers framework system' << \
37
36
  '--main README.md'
38
37
 
39
- spec.add_runtime_dependency 'config_layers', '~>0.1.3'
40
- # spec.add_runtime_dependency 'git', '>=1.2.7'
41
- # spec.add_runtime_dependency 'rbx-require-relative', '~>0.0.7'
38
+ spec.add_runtime_dependency 'config_layers', '~>0.1.4'
42
39
  spec.add_runtime_dependency 'highline', '~> 1.6.21'
43
40
  spec.add_runtime_dependency 'ansi', '>= 1.4.3'
44
- # spec.add_runtime_dependency 'bundler'
45
41
  spec.add_runtime_dependency 'encryptor', '1.3.0'
46
- # spec.add_runtime_dependency 'json', '1.7.5'
42
+ spec.add_runtime_dependency 'json'
43
+ if RUBY_VERSION.match(/1\.8/)
44
+ spec.add_development_dependency "ruby-debug"
45
+ elsif RUBY_VERSION.match(/1\.9/)
46
+ spec.add_development_dependency "debugger"
47
+ spec.add_development_dependency "rubocop", "~> 0.30.0"
48
+ else
49
+ spec.add_development_dependency "byebug"
50
+ spec.add_development_dependency "rubocop", "~> 0.30.0"
51
+ end
47
52
  end
@@ -15,189 +15,230 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
 
18
- # require 'byebug'
18
+ require 'rubygems'
19
+ require 'spec_helper'
19
20
 
20
21
  $LOAD_PATH << File.join(File.dirname(__FILE__), '..', 'lib/core')
21
22
 
22
- require 'lorj_keypath'
23
+ require 'lorj'
23
24
 
24
- describe 'Lorj::KeyPath,' do
25
- context 'initialize with :test' do
25
+ describe 'Lorj::KeyPath' do
26
+ context '.new(:test)' do
26
27
  before(:all) do
27
28
  @o_key = Lorj::KeyPath.new(:test)
28
29
  end
29
- it 'Test method #length' do
30
+ it '#length return 1' do
30
31
  expect(@o_key.length).to eq(1)
31
32
  end
32
- it 'Test method #to_s' do
33
+ it '#to_s return "test"' do
33
34
  expect(@o_key.to_s).to eq('test')
34
35
  end
35
- it 'Test method #key' do
36
+ it '#key return :test' do
36
37
  expect(@o_key.key).to eq(:test)
37
38
  end
38
- it 'Test method #key(0)' do
39
+ it '#key(0) return :test' do
39
40
  expect(@o_key.key(0)).to eq(:test)
40
41
  end
41
- it 'Test method #key(1)' do
42
+ it '#key(1) return nil' do
42
43
  expect(@o_key.key(1)).to eq(nil)
43
44
  end
44
- it 'Test method #fpath' do
45
+ it '#fpath return ":test"' do
45
46
  expect(@o_key.fpath).to eq(':test')
46
47
  end
47
- it 'Test method #tree' do
48
+ it '#tree return :test' do
48
49
  expect(@o_key.key).to eq(:test)
49
50
  end
50
- it 'Test method #key_tree' do
51
+ it '#key_tree return :test' do
51
52
  expect(@o_key.key_tree).to eq(:test)
52
53
  end
53
54
  end
54
55
 
55
- context 'initialize with [:test,:test2,:test3]' do
56
+ context '.new([:test,:test2,:test3])' do
56
57
  before(:all) do
57
58
  @o_key = Lorj::KeyPath.new([:test, :test2, :test3])
58
59
  end
59
- it 'Test method #length' do
60
+ it '#length return 3' do
60
61
  expect(@o_key.length).to eq(3)
61
62
  end
62
- it 'Test method #to_s' do
63
+ it '#to_s return "test/test2/test"' do
63
64
  expect(@o_key.to_s).to eq('test/test2/test3')
64
65
  end
65
- it 'Test method #key' do
66
+ it '#key return :test3' do
66
67
  expect(@o_key.key).to eq(:test3)
67
68
  end
68
- it 'Test method #key(0)' do
69
+ it '#key(0) return :test' do
69
70
  expect(@o_key.key(0)).to eq(:test)
70
71
  end
71
- it 'Test method #key(1)' do
72
+ it '#key(1) return :test2' do
72
73
  expect(@o_key.key(1)).to eq(:test2)
73
74
  end
74
- it 'Test method #fpath' do
75
+ it '#fpath return ":test/:test2/:test3"' do
75
76
  expect(@o_key.fpath).to eq(':test/:test2/:test3')
76
77
  end
77
- it 'Test method #tree' do
78
+ it '#tree return [:test, :test2, :test3]' do
78
79
  expect(@o_key.tree).to eq([:test, :test2, :test3])
79
80
  end
80
- it 'Test method #key_tree' do
81
+ it '#key_tree return ":test/:test2/:test"' do
81
82
  expect(@o_key.key_tree).to eq(':test/:test2/:test3')
82
83
  end
83
84
  end
84
85
 
85
- context 'initialize with string test1/test2' do
86
+ context '.new([:test, "/", :test3])' do
87
+ before(:all) do
88
+ @o_key = Lorj::KeyPath.new([:test, '/', :test3])
89
+ end
90
+ it '#length return 3' do
91
+ expect(@o_key.length).to eq(3)
92
+ end
93
+ it '#to_s return "test/\//test"' do
94
+ expect(@o_key.to_s).to eq('test/\//test3')
95
+ end
96
+ it '#key return :test3' do
97
+ expect(@o_key.key).to eq(:test3)
98
+ end
99
+ it '#key(0) return :test' do
100
+ expect(@o_key.key(0)).to eq(:test)
101
+ end
102
+ it '#key(1) return "/"' do
103
+ expect(@o_key.key(1)).to eq('/')
104
+ end
105
+ it '#fpath return ":test/\//:test3"' do
106
+ expect(@o_key.fpath).to eq(':test/\//:test3')
107
+ end
108
+ it '#tree return [:test, "/", :test3]' do
109
+ expect(@o_key.tree).to eq([:test, '/', :test3])
110
+ end
111
+ it '#key_tree return ":test/\//:test3"' do
112
+ expect(@o_key.key_tree).to eq(':test/\//:test3')
113
+ end
114
+ end
115
+
116
+ context '.new(":test/\//test3")' do
117
+ before(:all) do
118
+ @o_key = Lorj::KeyPath.new(':test/\//test3')
119
+ end
120
+ it 'is equivalent to .new([:test, "/", "test3"])' do
121
+ compare = Lorj::KeyPath.new([:test, '/', 'test3'])
122
+ expect(@o_key.tree).to eq(compare.tree)
123
+ end
124
+ end
125
+
126
+ context '.new("test1/test2")' do
86
127
  before(:all) do
87
128
  @o_key = Lorj::KeyPath.new('test1/test2')
88
129
  end
89
- it 'Test method #length' do
130
+ it '#length return 2' do
90
131
  expect(@o_key.length).to eq(2)
91
132
  end
92
- it 'Test method #to_s' do
133
+ it '#to_s return "test1/test2"' do
93
134
  expect(@o_key.to_s).to eq('test1/test2')
94
135
  end
95
- it 'Test method #key' do
136
+ it '#key return "test2"' do
96
137
  expect(@o_key.key).to eq('test2')
97
138
  end
98
- it 'Test method #key(0)' do
139
+ it '#key(0) return "test"' do
99
140
  expect(@o_key.key(0)).to eq('test1')
100
141
  end
101
- it 'Test method #key(1)' do
142
+ it '#key(1) return "test2"' do
102
143
  expect(@o_key.key(1)).to eq('test2')
103
144
  end
104
- it 'Test method #fpath' do
145
+ it '#fpath return "test1/test2"' do
105
146
  expect(@o_key.fpath).to eq('test1/test2')
106
147
  end
107
- it 'Test method #tree' do
148
+ it '#tree return %w(test1 test2)' do
108
149
  expect(@o_key.tree).to eq(%w(test1 test2))
109
150
  end
110
- it 'Test method #key_tree' do
151
+ it '#key_tree return "test1/test2"' do
111
152
  expect(@o_key.key_tree).to eq('test1/test2')
112
153
  end
113
154
  end
114
155
 
115
- context 'initialize with string :test' do
156
+ context '.new(":test")' do
116
157
  before(:all) do
117
158
  @o_key = Lorj::KeyPath.new(':test')
118
159
  end
119
- it 'Test method #length' do
160
+ it '#length return 1' do
120
161
  expect(@o_key.length).to eq(1)
121
162
  end
122
- it 'Test method #to_s' do
163
+ it '#to_s return "test"' do
123
164
  expect(@o_key.to_s).to eq('test')
124
165
  end
125
- it 'Test method #key' do
166
+ it '#key return :test' do
126
167
  expect(@o_key.key).to eq(:test)
127
168
  end
128
- it 'Test method #key(0)' do
169
+ it '#key(0) return :test' do
129
170
  expect(@o_key.key(0)).to eq(:test)
130
171
  end
131
- it 'Test method #key(1)' do
172
+ it '#key(1) return nil' do
132
173
  expect(@o_key.key(1)).to eq(nil)
133
174
  end
134
- it 'Test method #fpath' do
175
+ it '#fpath return ":test"' do
135
176
  expect(@o_key.fpath).to eq(':test')
136
177
  end
137
- it 'Test method #tree' do
178
+ it '#tree return [:test]' do
138
179
  expect(@o_key.tree).to eq([:test])
139
180
  end
140
- it 'Test method #key_tree' do
181
+ it '#key_tree return :test' do
141
182
  expect(@o_key.key_tree).to eq(:test)
142
183
  end
143
184
  end
144
185
 
145
- context 'initialize with string test' do
186
+ context '.new("test")' do
146
187
  before(:all) do
147
188
  @o_key = Lorj::KeyPath.new('test')
148
189
  end
149
- it 'Test method #length' do
190
+ it '#length return 1' do
150
191
  expect(@o_key.length).to eq(1)
151
192
  end
152
- it 'Test method #to_s' do
193
+ it '#to_s return "test"' do
153
194
  expect(@o_key.to_s).to eq('test')
154
195
  end
155
- it 'Test method #key' do
196
+ it '#key return "test"' do
156
197
  expect(@o_key.key).to eq('test')
157
198
  end
158
- it 'Test method #key(0)' do
199
+ it '#key(0) return "test"' do
159
200
  expect(@o_key.key(0)).to eq('test')
160
201
  end
161
- it 'Test method #key(1)' do
202
+ it '#key(1) return nil' do
162
203
  expect(@o_key.key(1)).to eq(nil)
163
204
  end
164
- it 'Test method #fpath' do
205
+ it '#fpath return "test"' do
165
206
  expect(@o_key.fpath).to eq('test')
166
207
  end
167
- it 'Test method #tree' do
208
+ it '#tree return "test"' do
168
209
  expect(@o_key.tree).to eq(['test'])
169
210
  end
170
- it 'Test method #key_tree' do
211
+ it '#key_tree return "test"' do
171
212
  expect(@o_key.key_tree).to eq('test')
172
213
  end
173
214
  end
174
215
 
175
- context 'initialize with nil' do
216
+ context '.new(nil)' do
176
217
  before(:all) do
177
218
  @o_key = Lorj::KeyPath.new(nil)
178
219
  end
179
- it 'Test method #length' do
220
+ it '#length return 0' do
180
221
  expect(@o_key.length).to eq(0)
181
222
  end
182
- it 'Test method #to_s' do
223
+ it '#to_s return nil' do
183
224
  expect(@o_key.to_s).to eq(nil)
184
225
  end
185
- it 'Test method #key' do
226
+ it '#key return nil' do
186
227
  expect(@o_key.key).to eq(nil)
187
228
  end
188
- it 'Test method #key(0)' do
229
+ it '#key(0) return nil' do
189
230
  expect(@o_key.key(0)).to eq(nil)
190
231
  end
191
- it 'Test method #key(1)' do
232
+ it '#key(1) return nil' do
192
233
  expect(@o_key.key(1)).to eq(nil)
193
234
  end
194
- it 'Test method #fpath' do
235
+ it '#fpath return nil' do
195
236
  expect(@o_key.fpath).to eq(nil)
196
237
  end
197
- it 'Test method #tree' do
238
+ it '#tree return []' do
198
239
  expect(@o_key.tree).to eq([])
199
240
  end
200
- it 'Test method #key_tree' do
241
+ it '#key_tree return nil' do
201
242
  expect(@o_key.key_tree).to eq(nil)
202
243
  end
203
244
  end