active_method 1.3.0 → 1.4.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +4 -2
- data/lib/active_method/base.rb +24 -3
- data/lib/active_method/version.rb +1 -1
- data/matrixeval.yml +7 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4fab4e210742187e5e4a9beec876bd7fda51e8c35f5ead5727dc0ca70312f11b
|
4
|
+
data.tar.gz: fbcbb425512417164afb2dcf7b109a08285ba703cecb19eb8f65db013f2f08b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a1195ca092a70e1f51147b7d5db82910e46af2ae2a4923800012a6f26d17fbd8d01e2c0f342ef79a2d44255f2524d02d5557a55c964633648358d466af276967
|
7
|
+
data.tar.gz: bd67e7208be9c451d1e1d72e0d5d85be81ae49143093d9325c36218136226481832d45e1cbd621c9ad4d4269349d16ff211a4254065d99c7edd7d802abd2c746
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -52,7 +52,7 @@ User.new.foo('aa', 3, c: 'cc', d: 5)
|
|
52
52
|
#=> a: aa, b: 3, c: cc, d: 5
|
53
53
|
```
|
54
54
|
|
55
|
-
###
|
55
|
+
### Customize the owner name of the method
|
56
56
|
|
57
57
|
```ruby
|
58
58
|
class User
|
@@ -63,8 +63,10 @@ class User
|
|
63
63
|
end
|
64
64
|
|
65
65
|
class Hi < ActiveMethod::Base
|
66
|
+
onwer :support
|
67
|
+
|
66
68
|
def call
|
67
|
-
puts "Hi, I'm a #{
|
69
|
+
puts "Hi, I'm a #{support.fromal_name}. Please call me #{user.name}"
|
68
70
|
end
|
69
71
|
end
|
70
72
|
|
data/lib/active_method/base.rb
CHANGED
@@ -29,9 +29,14 @@ module ActiveMethod
|
|
29
29
|
class_variable_get(:@@keyword_arguments)
|
30
30
|
end
|
31
31
|
|
32
|
+
def owner_name
|
33
|
+
class_variable_get(:@@owner_name)
|
34
|
+
end
|
35
|
+
|
32
36
|
def inherited(subclass)
|
33
37
|
subclass.init_arguments
|
34
38
|
subclass.init_keyword_arguments
|
39
|
+
subclass.init_owner_name
|
35
40
|
end
|
36
41
|
|
37
42
|
protected
|
@@ -42,6 +47,8 @@ module ActiveMethod
|
|
42
47
|
parse_argument(method_name, *args)
|
43
48
|
when 'keyword_argument'
|
44
49
|
parse_keyword_argument(*args)
|
50
|
+
when 'owner'
|
51
|
+
parse_method_owner(*args)
|
45
52
|
else
|
46
53
|
super
|
47
54
|
end
|
@@ -67,6 +74,10 @@ module ActiveMethod
|
|
67
74
|
end
|
68
75
|
end
|
69
76
|
|
77
|
+
def parse_method_owner(name)
|
78
|
+
class_variable_set(:@@owner_name, name)
|
79
|
+
end
|
80
|
+
|
70
81
|
def init_arguments
|
71
82
|
return if self.class_variable_defined?(:@@arguments)
|
72
83
|
|
@@ -78,6 +89,12 @@ module ActiveMethod
|
|
78
89
|
|
79
90
|
self.class_variable_set(:@@keyword_arguments, [])
|
80
91
|
end
|
92
|
+
|
93
|
+
def init_owner_name
|
94
|
+
return if self.class_variable_defined?(:@@owner_name)
|
95
|
+
|
96
|
+
self.class_variable_set(:@@owner_name, nil)
|
97
|
+
end
|
81
98
|
end
|
82
99
|
|
83
100
|
def initialize(*args)
|
@@ -104,9 +121,13 @@ module ActiveMethod
|
|
104
121
|
def __set_owner(owner)
|
105
122
|
@__method_owner = owner
|
106
123
|
|
107
|
-
|
108
|
-
|
109
|
-
|
124
|
+
@__owner_name = self.class.owner_name
|
125
|
+
if @__owner_name.nil?
|
126
|
+
klass = owner.is_a?(Class) ? owner : owner.class
|
127
|
+
@__owner_name = Util.snake_case(klass.name.split("::").last)
|
128
|
+
end
|
129
|
+
|
130
|
+
self.define_singleton_method @__owner_name do
|
110
131
|
@__method_owner
|
111
132
|
end
|
112
133
|
end
|
data/matrixeval.yml
CHANGED
@@ -18,9 +18,15 @@ matrix:
|
|
18
18
|
container:
|
19
19
|
image: ruby:3.0.4
|
20
20
|
- key: 3.1
|
21
|
-
default: true
|
22
21
|
container:
|
23
22
|
image: ruby:3.1.2
|
23
|
+
- key: 3.2
|
24
|
+
container:
|
25
|
+
image: ruby:3.2.4
|
26
|
+
- key: 3.3
|
27
|
+
default: true
|
28
|
+
container:
|
29
|
+
image: ruby:3.3.4
|
24
30
|
# - key: jruby-9.3
|
25
31
|
# container:
|
26
32
|
# image: jruby:9.3
|
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.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hopper Gee
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Refactor your obscure method to a method object
|
14
14
|
email:
|