htmlgrid 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.txt +4 -0
- data/lib/htmlgrid/composite.rb +15 -13
- data/lib/htmlgrid/version.rb +1 -1
- data/test/test_composite.rb +23 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 429bd52a98041fb93eaca98d1768c33f5b597fcb
|
4
|
+
data.tar.gz: feb3061e2a0a4417fad883ab1ad6a7a25d9cbe81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50a6229fc0748b68ac6673c6e33260b6786c60f2569c41d9399faccba30aadd660667fe38edd1cc9db116751c1accaae004910b01cccee4ed1c7d3c39ec03bc4
|
7
|
+
data.tar.gz: 6be80e669e1c8dd1597f30fc77b25410c0020394ede7c7de78aa8fa79fd730b343d89826b43d77eb2ad502665d6cf8f8acdd89614a63c698f29ea2c0e04cf7c1
|
data/History.txt
CHANGED
data/lib/htmlgrid/composite.rb
CHANGED
@@ -51,6 +51,21 @@ module HtmlGrid
|
|
51
51
|
CSS_ID = nil
|
52
52
|
DEFAULT_CLASS = Value
|
53
53
|
LOOKANDFEEL_MAP = {}
|
54
|
+
|
55
|
+
def self.component(klass, key, name=nil)
|
56
|
+
methname = klass.to_s.downcase.gsub('::', '_') << '_' << key.to_s
|
57
|
+
define_method(methname) { |*args|
|
58
|
+
model, session = args
|
59
|
+
args = [model.send(key), session || @session, self]
|
60
|
+
if(name)
|
61
|
+
args.unshift(name)
|
62
|
+
lookandfeel_map.store(methname.to_sym, name.to_sym)
|
63
|
+
end
|
64
|
+
klass.new(*args)
|
65
|
+
}
|
66
|
+
methname.to_sym
|
67
|
+
end
|
68
|
+
|
54
69
|
def init
|
55
70
|
super
|
56
71
|
setup_grid()
|
@@ -102,19 +117,6 @@ module HtmlGrid
|
|
102
117
|
def symbol_map
|
103
118
|
@symbol_map ||= self::class::SYMBOL_MAP.dup
|
104
119
|
end
|
105
|
-
def AbstractComposite.component(klass, key, name=nil)
|
106
|
-
methname = klass.to_s.downcase.gsub('::', '_') << '_' << key.to_s
|
107
|
-
define_method(methname) { |*args|
|
108
|
-
model, session = args
|
109
|
-
args = [model.send(key), session, self]
|
110
|
-
if(name)
|
111
|
-
args.unshift(name)
|
112
|
-
lookandfeel_map.store(methname.to_sym, name.to_sym)
|
113
|
-
end
|
114
|
-
klass.new(*args)
|
115
|
-
}
|
116
|
-
methname.to_sym
|
117
|
-
end
|
118
120
|
end
|
119
121
|
class TagComposite < AbstractComposite
|
120
122
|
def compose(model=@model)
|
data/lib/htmlgrid/version.rb
CHANGED
data/test/test_composite.rb
CHANGED
@@ -88,6 +88,9 @@ module CompositeTest
|
|
88
88
|
public :labels?
|
89
89
|
end
|
90
90
|
class StubCompositeModel
|
91
|
+
def qux
|
92
|
+
'qux'
|
93
|
+
end
|
91
94
|
end
|
92
95
|
class StubCompositeLookandfeel
|
93
96
|
def event_url(one)
|
@@ -109,6 +112,9 @@ module CompositeTest
|
|
109
112
|
def error(key)
|
110
113
|
end
|
111
114
|
end
|
115
|
+
|
116
|
+
class StubCompositeSession2 < StubCompositeSession; end
|
117
|
+
|
112
118
|
class StubCompositeForm < HtmlGrid::Form
|
113
119
|
COMPONENTS = {
|
114
120
|
[0, 0] => StubComposite
|
@@ -141,6 +147,23 @@ module CompositeTest
|
|
141
147
|
@composite = StubComposite.new(
|
142
148
|
StubCompositeModel.new, StubCompositeSession.new)
|
143
149
|
end
|
150
|
+
|
151
|
+
def test_component_session_fallback_assignment_without_session_argment
|
152
|
+
StubComposite.component(StubComposite, :qux)
|
153
|
+
model = StubCompositeModel.new
|
154
|
+
session1 = StubCompositeSession.new
|
155
|
+
composite = StubComposite.new(model, session1)
|
156
|
+
# via instance variable (without argument)
|
157
|
+
composite = composite.compositetest_stubcomposite_qux(model)
|
158
|
+
assert_kind_of(StubCompositeSession, composite.session)
|
159
|
+
assert_equal(session1, composite.session)
|
160
|
+
# via argument
|
161
|
+
session2 = StubCompositeSession2.new
|
162
|
+
composite = composite.compositetest_stubcomposite_qux(model, session2)
|
163
|
+
assert_kind_of(StubCompositeSession2, composite.session)
|
164
|
+
assert_equal(session2, composite.session)
|
165
|
+
end
|
166
|
+
|
144
167
|
def test_create_method
|
145
168
|
foo = nil
|
146
169
|
foo = @composite.create(:foo, @composite.model)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: htmlgrid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaomi Hatakeyama, Zeno R.R. Davatz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-08-
|
11
|
+
date: 2016-08-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sbsm
|