lipa 0.2.1 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/NEWS.md +6 -1
- data/lib/lipa/kind.rb +13 -0
- data/lib/lipa/node.rb +8 -3
- data/lib/lipa/version.rb +1 -1
- data/spec/kind_spec.rb +11 -2
- data/spec/node_spec.rb +2 -0
- data/spec/spec_helper.rb +6 -3
- metadata +8 -8
data/NEWS.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
+
2011-10-20 Release-0.2.2
|
2
|
+
|
3
|
+
- Fixed issue [#1](https://github.com/flipback/lipa/issues/1) in template functional.
|
4
|
+
Lambda expressions is not supporting. Use `Proc.new {}` for added calculation in your trees
|
5
|
+
|
1
6
|
2011-10-19 Release-0.2.1
|
2
7
|
|
3
|
-
- Fixed bug in Lipa::
|
8
|
+
- Fixed bug in Lipa::Bunch class. Now is working:
|
4
9
|
|
5
10
|
```Ruby
|
6
11
|
t = Lipa::Tree.new("1") do
|
data/lib/lipa/kind.rb
CHANGED
@@ -39,6 +39,19 @@ module Lipa
|
|
39
39
|
#
|
40
40
|
# alias #kind is #template
|
41
41
|
class Kind < Node
|
42
|
+
def method_missing(name, *args, &block)
|
43
|
+
unless Node.add_node(name, self, *args, &block)
|
44
|
+
# only assigment
|
45
|
+
if args.size == 1
|
46
|
+
name = name.to_s
|
47
|
+
name["="] = "" if name["="]
|
48
|
+
@attrs[name.to_sym] = args[0]
|
49
|
+
else
|
50
|
+
super
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
42
55
|
end
|
43
56
|
end
|
44
57
|
|
data/lib/lipa/node.rb
CHANGED
@@ -46,7 +46,6 @@ module Lipa
|
|
46
46
|
|
47
47
|
def initialize(name, attrs = {}, &block)
|
48
48
|
@attrs = {}
|
49
|
-
@attrs[:name] = name.to_s
|
50
49
|
|
51
50
|
#init attrs from template
|
52
51
|
if attrs[:kind]
|
@@ -55,6 +54,7 @@ module Lipa
|
|
55
54
|
end
|
56
55
|
|
57
56
|
@attrs.merge! attrs
|
57
|
+
@attrs[:name] = name.to_s
|
58
58
|
instance_eval &block if block_given?
|
59
59
|
end
|
60
60
|
|
@@ -67,7 +67,7 @@ module Lipa
|
|
67
67
|
|
68
68
|
val = @attrs[name]
|
69
69
|
if val.class == Proc
|
70
|
-
val
|
70
|
+
instance_eval &(val)
|
71
71
|
else
|
72
72
|
val
|
73
73
|
end
|
@@ -150,7 +150,12 @@ module Lipa
|
|
150
150
|
if init_class
|
151
151
|
args[1] ||= {}
|
152
152
|
args[1][:parent] = parent
|
153
|
-
|
153
|
+
child_name = args[0].to_sym
|
154
|
+
|
155
|
+
existen_child = parent.attrs[:children][child_name]
|
156
|
+
args[1] = existen_child.attrs.merge(args[1]) if existen_child
|
157
|
+
|
158
|
+
parent.attrs[:children][child_name] = init_class.send(:new, *args, &block )
|
154
159
|
else
|
155
160
|
nil
|
156
161
|
end
|
data/lib/lipa/version.rb
CHANGED
data/spec/kind_spec.rb
CHANGED
@@ -2,15 +2,24 @@ require File.dirname(__FILE__) + "/spec_helper"
|
|
2
2
|
|
3
3
|
describe Lipa::Kind do
|
4
4
|
it 'should create brunch from template' do
|
5
|
-
tree
|
5
|
+
tree.group_3.obj_x.attr_0.should eql("from_kind")
|
6
6
|
end
|
7
7
|
|
8
8
|
it 'should support local changing in instances' do
|
9
|
-
tree
|
9
|
+
tree.group_3.obj_x.attr_1.should eql("from_instance")
|
10
10
|
end
|
11
11
|
|
12
12
|
it 'should create init method with name template' do
|
13
13
|
tree.folder_1.some_file.size.should eql(1024)
|
14
14
|
tree.folder_1.some_file.ext.should eql("txt")
|
15
15
|
end
|
16
|
+
|
17
|
+
it 'should create node with your name' do
|
18
|
+
tree.folder_1.name.should eql("folder_1")
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'should have lazy calculation' do
|
22
|
+
tree.group_3.obj_x.attr_2.should eql(2)
|
23
|
+
tree.group_3.obj_x.attr_3.should eql(4)
|
24
|
+
end
|
16
25
|
end
|
data/spec/node_spec.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
@@ -6,7 +6,7 @@ TREE ||= Lipa::Tree.new "lipa" do
|
|
6
6
|
|
7
7
|
node :obj_1, :attr_1 => 5 do
|
8
8
|
attr_2 3
|
9
|
-
attr_3
|
9
|
+
attr_3 Proc.new{attr_1 + attr_2}
|
10
10
|
|
11
11
|
node :obj_2
|
12
12
|
node :obj_3
|
@@ -21,15 +21,18 @@ TREE ||= Lipa::Tree.new "lipa" do
|
|
21
21
|
|
22
22
|
# Template
|
23
23
|
kind :kind_group do
|
24
|
-
node :obj_x
|
25
|
-
|
24
|
+
node :obj_x do
|
25
|
+
attr_0 "from_kind"
|
26
26
|
attr_1 "from_kind"
|
27
|
+
attr_2 0
|
28
|
+
attr_3 Proc.new{ attr_2 * 2}
|
27
29
|
end
|
28
30
|
end
|
29
31
|
|
30
32
|
node :group_3, :kind => :kind_group do
|
31
33
|
node :obj_x do
|
32
34
|
attr_1 "from_instance"
|
35
|
+
attr_2 2
|
33
36
|
end
|
34
37
|
end
|
35
38
|
#or
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lipa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-10-
|
12
|
+
date: 2011-10-20 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &11366740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *11366740
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: bundler
|
27
|
-
requirement: &
|
27
|
+
requirement: &11366060 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *11366060
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &11362040 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *11362040
|
47
47
|
description:
|
48
48
|
email: atimin@gmail.com
|
49
49
|
executables: []
|