rails-decorators 0.1.2 → 0.1.3

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec67073e5ac42f93a6562db0f05a8a7318ad8d02
4
- data.tar.gz: 97cfc1cdfc645779e28f0551f10d9042e67ae4e3
3
+ metadata.gz: 875c3e96ecb6c4a7339b307287bef2e778164db2
4
+ data.tar.gz: 179a6c2a9806c330ccb3023a419bc17221e15655
5
5
  SHA512:
6
- metadata.gz: b686212057e7eecd03eeeac9096d3f2e9bd476c002b9c2accb2be9d936f6df87be62eb524d5411bed0863441982747ddc5208eef5807caa062e7ea787b7e5a78
7
- data.tar.gz: e1dc50f10708a33b9b9409fdbfe527cc8d6623b8a824a5504331792c0f3c52090831f278e33eac610b1aafe541bff63665e89281565fd0dfd76287c616fc220a
6
+ metadata.gz: 892a7fd15ef1a64e2c5ceec3da6e6021d69bea39d93c1d9df431a991e3bc08e035deec240075006d39c39ead2867cb6179d0593842264a110a875061da57d72b
7
+ data.tar.gz: 9f80385e0abe704655b0f942533c2721085027c1759192a746445c13fa4d18f5dc178c44b188ed91dc499320646bb9b7a5b5b604a1be992a7b0be764a44ac30e
data/README.md CHANGED
@@ -24,7 +24,7 @@ end
24
24
  module Ecommerce
25
25
  decorate Product do
26
26
  decorated do
27
- # Class methods may be called here.
27
+ # Class methods may be called here. Evaluates after prepending module.
28
28
  attr_writer :on_sale
29
29
  end
30
30
 
@@ -74,7 +74,7 @@ module Ecommerce
74
74
  Product.send(:prepend, Product::Decorator)
75
75
  Product.singleton_class.send(:prepend, Product::Decorator::ClassMethods)
76
76
  Product.class_eval do
77
- # Class methods may be called here.
77
+ # Class methods may be called here. Evaluates after prepending module.
78
78
  attr_writer :on_sale
79
79
  end
80
80
  end
@@ -51,7 +51,8 @@ module Rails
51
51
  )
52
52
  end
53
53
 
54
- decorator_name = "#{options[:with].to_s.camelize}#{target.to_s.demodulize}Decorator"
54
+ namespace = target.to_s.remove('::')
55
+ decorator_name = "#{options[:with].to_s.camelize}#{namespace}Decorator"
55
56
 
56
57
  if target.const_defined?(decorator_name)
57
58
  # We are probably reloading in Rails development env if this happens
@@ -85,6 +86,10 @@ module Rails
85
86
  end
86
87
 
87
88
  def prepend_features(base)
89
+ if instance_variable_defined?(:@_before_decorate_block)
90
+ base.class_eval(&@_before_decorate_block)
91
+ end
92
+
88
93
  super
89
94
 
90
95
  if const_defined?(:ClassMethodsDecorator)
@@ -98,6 +103,10 @@ module Rails
98
103
  end
99
104
  end
100
105
 
106
+ def before_decorate(&block)
107
+ instance_variable_set(:@_before_decorate_block, block)
108
+ end
109
+
101
110
  def decorated(&block)
102
111
  instance_variable_set(:@_decorated_block, block)
103
112
  end
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module Decorators
3
- VERSION = "0.1.2"
3
+ VERSION = "0.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-decorators
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Crouse
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-18 00:00:00.000000000 Z
11
+ date: 2018-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -84,7 +84,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
84
  version: '0'
85
85
  requirements: []
86
86
  rubyforge_project:
87
- rubygems_version: 2.6.11
87
+ rubygems_version: 2.6.14.1
88
88
  signing_key:
89
89
  specification_version: 4
90
90
  summary: Rails::Decorators provides a clean, familiar API for decorating the behavior