artdeco 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +3 -0
- data/lib/artdeco/version.rb +1 -1
- data/lib/artdeco.rb +1 -0
- data/test/artdeco_test.rb +11 -0
- metadata +1 -1
data/README.md
CHANGED
@@ -49,6 +49,9 @@ Modules for decoration may be given explicitly:
|
|
49
49
|
|
50
50
|
Artdeco.decorate(user, self, decorator: [ Customer, Admin ] )
|
51
51
|
|
52
|
+
Also works for enumerations (anything which responds to :map):
|
53
|
+
@articles = Article.all
|
54
|
+
Artdeco.decorate(@articles, self)
|
52
55
|
|
53
56
|
For conveniance decorated objects may decorate other objects:
|
54
57
|
|
data/lib/artdeco/version.rb
CHANGED
data/lib/artdeco.rb
CHANGED
@@ -8,6 +8,7 @@ module Artdeco
|
|
8
8
|
|
9
9
|
def decorate model, *decorator_classes
|
10
10
|
return nil if model.nil?
|
11
|
+
return model.map{|m| decorate(m,*decorator_classes)} if model.respond_to?(:map)
|
11
12
|
decorator_classes = @decorator_classes || default_decorator_class(model) if decorator_classes.empty?
|
12
13
|
[decorator_classes].flatten.each{|dc|model.extend dc}
|
13
14
|
h = self.h
|
data/test/artdeco_test.rb
CHANGED
@@ -124,4 +124,15 @@ class ArtdecoTest < MiniTest::Unit::TestCase
|
|
124
124
|
assert_equal FooHelper, h.class
|
125
125
|
assert_respond_to h, :hi
|
126
126
|
end
|
127
|
+
|
128
|
+
def test_decorate_enums
|
129
|
+
models = [Foo.new, Foo.new]
|
130
|
+
Artdeco.decorate models, view_context: FooHelper.new, params: {}
|
131
|
+
|
132
|
+
models.each do |model|
|
133
|
+
assert_respond_to model, :h
|
134
|
+
assert_respond_to model, :ho
|
135
|
+
assert_respond_to model, :decorate
|
136
|
+
end
|
137
|
+
end
|
127
138
|
end
|