lite-decorator 2.0.0 → 2.0.1
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 +4 -4
- data/CHANGELOG.md +8 -0
- data/Gemfile.lock +1 -1
- data/README.md +8 -11
- data/lib/lite/decorator/{record.rb → delegator.rb} +3 -3
- data/lib/lite/decorator/{infered.rb → inference.rb} +1 -1
- data/lib/lite/decorator/version.rb +1 -1
- data/lib/lite/decorator.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86273c0729ff8bedae37cb2b0c05a502e368fab6aba0a9e32c639acddb9335ab
|
4
|
+
data.tar.gz: c06a5e0ee30f5f8f84a76ac39a6cb028ce4955cbb86d51e14671b608a0deb9c7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a049d6bd1d9a19fa4c34e233525e4bd40cb621470c4a52ff1758d886c3c3ac5e8b004e5e9abfdb231e6655074fdb7b406f3465e04ea7dd0fcde6c04388074b5a
|
7
|
+
data.tar.gz: 1243a68c3306d38f3c828fa75ec1fea227597934b9e80238ba7cab476e8d98dc843b08efa709d22a8753a7bf8864a923a786a23b1d7554d1bd10721560e0eccf
|
data/CHANGELOG.md
CHANGED
@@ -6,6 +6,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
6
6
|
|
7
7
|
## [Unreleased]
|
8
8
|
|
9
|
+
## [2.0.1] - 2024-09-23
|
10
|
+
### Changed
|
11
|
+
- Rename `Infered` to `Inference` and `Record` to `Delegator`
|
12
|
+
|
13
|
+
## [2.0.0] - 2024-09-22
|
14
|
+
### Changed
|
15
|
+
- Split inference from lazy delegation
|
16
|
+
|
9
17
|
## [1.3.1] - 2024-09-20
|
10
18
|
### Changed
|
11
19
|
- Memoize record decorator class
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -26,7 +26,6 @@ Or install it yourself as:
|
|
26
26
|
|
27
27
|
* [Setup](#setup)
|
28
28
|
* [Usage](#usage)
|
29
|
-
* [ActiveRecord](#active_record)
|
30
29
|
|
31
30
|
## Setup
|
32
31
|
|
@@ -75,33 +74,31 @@ collection = UserDecorator.new(users)
|
|
75
74
|
collection.map(&:full_name) #=> ["John Doe", "Jane Poe"]
|
76
75
|
```
|
77
76
|
|
78
|
-
|
77
|
+
#### Infered decoration
|
79
78
|
|
80
|
-
Including the `
|
79
|
+
Including the `Inference` module will setup a `decorator_class` and `decorator` method
|
81
80
|
that you can access via your PORO and ActiveRecord objects.
|
82
81
|
|
83
82
|
```ruby
|
84
|
-
class User
|
85
|
-
include Lite::Decorator::
|
83
|
+
class User
|
84
|
+
include Lite::Decorator::Inference
|
86
85
|
end
|
87
86
|
|
88
|
-
# Usage
|
89
87
|
user = User.first
|
90
88
|
user.decorator.full_name
|
91
89
|
```
|
92
90
|
|
93
|
-
|
91
|
+
#### Decorator delegation
|
94
92
|
|
95
|
-
Including the `
|
96
|
-
if it lived on the ActiveRecord object itself. If neither the class instance and the
|
93
|
+
Including the `Delegator` module will use method missing to delegate decorator methods as
|
94
|
+
if it lived on the PORO or ActiveRecord object itself. If neither the class instance and the
|
97
95
|
decorator contain the method, a `NoMethodError` just like normal.
|
98
96
|
|
99
97
|
```ruby
|
100
98
|
class User < ActiveRecord::Base
|
101
|
-
include Lite::Decorator::
|
99
|
+
include Lite::Decorator::Delegator
|
102
100
|
end
|
103
101
|
|
104
|
-
# Usage
|
105
102
|
user = User.first
|
106
103
|
user.full_name
|
107
104
|
```
|
@@ -2,10 +2,10 @@
|
|
2
2
|
|
3
3
|
module Lite
|
4
4
|
module Decorator
|
5
|
-
module
|
5
|
+
module Delegator
|
6
6
|
|
7
7
|
def self.included(base)
|
8
|
-
base.include
|
8
|
+
base.include Inference
|
9
9
|
end
|
10
10
|
|
11
11
|
private
|
@@ -25,7 +25,7 @@ module Lite
|
|
25
25
|
def respond_to_method?(method_name)
|
26
26
|
return respond_to_method_cache[method_name] if respond_to_method_cache.key?(method_name)
|
27
27
|
|
28
|
-
respond_to_method_cache[method_name] = decorator
|
28
|
+
respond_to_method_cache[method_name] = decorator&.public_methods&.include?(method_name)
|
29
29
|
end
|
30
30
|
|
31
31
|
def respond_to_missing?(method_name, include_private = false)
|
data/lib/lite/decorator.rb
CHANGED
@@ -4,5 +4,5 @@ require "generators/rails/decorator_generator" if defined?(Rails::Generators)
|
|
4
4
|
|
5
5
|
require "lite/decorator/version"
|
6
6
|
require "lite/decorator/base"
|
7
|
-
require "lite/decorator/
|
8
|
-
require "lite/decorator/
|
7
|
+
require "lite/decorator/inference"
|
8
|
+
require "lite/decorator/delegator"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lite-decorator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Juan Gomez
|
@@ -204,8 +204,8 @@ files:
|
|
204
204
|
- lib/generators/rails/templates/decorator.rb.tt
|
205
205
|
- lib/lite/decorator.rb
|
206
206
|
- lib/lite/decorator/base.rb
|
207
|
-
- lib/lite/decorator/
|
208
|
-
- lib/lite/decorator/
|
207
|
+
- lib/lite/decorator/delegator.rb
|
208
|
+
- lib/lite/decorator/inference.rb
|
209
209
|
- lib/lite/decorator/version.rb
|
210
210
|
- lite-decorator.gemspec
|
211
211
|
homepage: http://drexed.github.io/lite-decorator
|