active_method 1.0.0 → 1.1.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/README.md +21 -0
- data/lib/active_method/base.rb +1 -1
- data/lib/active_method/version.rb +1 -1
- data/lib/active_method.rb +5 -1
- metadata +2 -3
- data/Gemfile.lock +0 -50
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 403381f7108f07fea213db2b68c9abc71277b1e50e523a7c15118920c186bbd5
|
4
|
+
data.tar.gz: e87f9c937daf923d37934de40d04bb24adecc5c2bdcd8ce2eadbe7d3d302df27
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e64c462061a8e6e574ebf345ee48cd4a450925acc6260b2c1ffa9f4d905bf5c9c72c773a6023eefc0d6805798d642285eaee59f7d946adaec2cefa0bb5306c93
|
7
|
+
data.tar.gz: 350d6b978759a527f0a613b292297c361f939e2081b40721d9693baed446f5918ea63065fe2f3437d965a392b5d1d5e95f6377e818985f11e4429e924fd28567
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
## [Unreleased]
|
2
2
|
|
3
|
+
## [1.1.1] - 2022-10-08
|
4
|
+
|
5
|
+
- Change owner method define from `self.calss.define_method` to `self.define_singleton_method`
|
6
|
+
|
7
|
+
## [1.1.0] - 2022-10-08
|
8
|
+
|
9
|
+
- Support `module_function`
|
10
|
+
|
3
11
|
## [1.0.0] - 2022-09-16
|
4
12
|
|
5
13
|
- Now you can use `.active_method` through `include ActiveMethod`
|
data/README.md
CHANGED
@@ -87,6 +87,27 @@ Bar.call(1, 3, c: 4, d: 5)
|
|
87
87
|
# => buzz
|
88
88
|
```
|
89
89
|
|
90
|
+
### Work on module
|
91
|
+
|
92
|
+
```ruby
|
93
|
+
class Hi < ActiveMethod::Base
|
94
|
+
argument :name
|
95
|
+
|
96
|
+
def call
|
97
|
+
"Hi, #{name}"
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
module Say
|
102
|
+
include ActiveMethod
|
103
|
+
|
104
|
+
active_method :hi, module_function: true
|
105
|
+
end
|
106
|
+
|
107
|
+
Say.hi('John')
|
108
|
+
# => "Hi, John"
|
109
|
+
```
|
110
|
+
|
90
111
|
## Development
|
91
112
|
|
92
113
|
```bash
|
data/lib/active_method/base.rb
CHANGED
@@ -105,7 +105,7 @@ module ActiveMethod
|
|
105
105
|
@__method_owner = owner
|
106
106
|
|
107
107
|
instance_name = Util.snake_case(owner.class.name.split("::").last)
|
108
|
-
self.
|
108
|
+
self.define_singleton_method instance_name do
|
109
109
|
@__method_owner
|
110
110
|
end
|
111
111
|
end
|
data/lib/active_method.rb
CHANGED
@@ -12,12 +12,16 @@ module ActiveMethod
|
|
12
12
|
end
|
13
13
|
|
14
14
|
module ClassMethods
|
15
|
-
def active_method(name, method_class = nil)
|
15
|
+
def active_method(name, method_class = nil, **options)
|
16
16
|
method_class ||= Util.constantize self, Util.camel_case(name)
|
17
17
|
|
18
18
|
define_method name do |*args|
|
19
19
|
method_class[self].call(*args)
|
20
20
|
end
|
21
|
+
|
22
|
+
if options[:module_function]
|
23
|
+
module_function name
|
24
|
+
end
|
21
25
|
end
|
22
26
|
end
|
23
27
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_method
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hopper Gee
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-10-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Refactor your obscure method to a method object
|
14
14
|
email:
|
@@ -20,7 +20,6 @@ files:
|
|
20
20
|
- CHANGELOG.md
|
21
21
|
- CODE_OF_CONDUCT.md
|
22
22
|
- Gemfile
|
23
|
-
- Gemfile.lock
|
24
23
|
- LICENSE.txt
|
25
24
|
- README.md
|
26
25
|
- Rakefile
|
data/Gemfile.lock
DELETED
@@ -1,50 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
active_method (0.1.0)
|
5
|
-
|
6
|
-
GEM
|
7
|
-
remote: https://rubygems.org/
|
8
|
-
specs:
|
9
|
-
concurrent-ruby (1.1.10)
|
10
|
-
debug (1.6.2)
|
11
|
-
irb (>= 1.3.6)
|
12
|
-
reline (>= 0.3.1)
|
13
|
-
docile (1.4.0)
|
14
|
-
io-console (0.5.11)
|
15
|
-
irb (1.4.1)
|
16
|
-
reline (>= 0.3.0)
|
17
|
-
matrixeval (0.4.3)
|
18
|
-
concurrent-ruby
|
19
|
-
rainbow (~> 3.1)
|
20
|
-
terminal-table
|
21
|
-
matrixeval-ruby (0.4.0)
|
22
|
-
matrixeval (~> 0.4.2)
|
23
|
-
minitest (5.16.2)
|
24
|
-
rainbow (3.1.1)
|
25
|
-
rake (13.0.6)
|
26
|
-
reline (0.3.1)
|
27
|
-
io-console (~> 0.5)
|
28
|
-
simplecov (0.21.2)
|
29
|
-
docile (~> 1.1)
|
30
|
-
simplecov-html (~> 0.11)
|
31
|
-
simplecov_json_formatter (~> 0.1)
|
32
|
-
simplecov-html (0.12.3)
|
33
|
-
simplecov_json_formatter (0.1.4)
|
34
|
-
terminal-table (3.0.2)
|
35
|
-
unicode-display_width (>= 1.1.1, < 3)
|
36
|
-
unicode-display_width (2.2.0)
|
37
|
-
|
38
|
-
PLATFORMS
|
39
|
-
arm64-darwin-21
|
40
|
-
|
41
|
-
DEPENDENCIES
|
42
|
-
active_method!
|
43
|
-
debug
|
44
|
-
matrixeval-ruby
|
45
|
-
minitest (~> 5.0)
|
46
|
-
rake (~> 13.0)
|
47
|
-
simplecov
|
48
|
-
|
49
|
-
BUNDLED WITH
|
50
|
-
2.3.12
|