artdeco 1.1.0 → 1.2.0

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.
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
 
@@ -1,3 +1,3 @@
1
1
  module Artdeco
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artdeco
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: