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
@@ -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