choron_support 0.1.9 → 0.1.11
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/.rubocop.yml +138 -6
- data/.rubocop_todo.yml +1 -0
- data/CHANGELOG.md +11 -3
- data/Gemfile.lock +1 -1
- data/README.md +2 -6
- data/choron_support.gemspec +8 -7
- data/docs/props.md +17 -217
- data/lib/choron_support/as_props.rb +34 -24
- data/lib/choron_support/domain_delegate.rb +1 -3
- data/lib/choron_support/helper.rb +7 -9
- data/lib/choron_support/props/attributes.rb +186 -349
- data/lib/choron_support/props/base.rb +12 -26
- data/lib/choron_support/props/ext/hash.rb +1 -1
- data/lib/choron_support/props/ext/relation.rb +1 -1
- data/lib/choron_support/props/private/setting.rb +40 -0
- data/lib/choron_support/queries/base.rb +1 -1
- data/lib/choron_support/scope_query.rb +3 -3
- data/lib/choron_support/set_mask_for.rb +5 -5
- data/lib/choron_support/version.rb +1 -1
- data/lib/choron_support.rb +7 -1
- metadata +15 -12
@@ -0,0 +1,40 @@
|
|
1
|
+
class ChoronSupport::Props::Private::Setting
|
2
|
+
class Error < StandardError; end
|
3
|
+
# デフォルト値を設定しない場合に使う値
|
4
|
+
NO_DEFAULT = Object.new.freeze
|
5
|
+
private_constant :NO_DEFAULT
|
6
|
+
SETTING_ATTRIBUTES = %i[method name to cast default if block].freeze
|
7
|
+
|
8
|
+
SETTING_ATTRIBUTES.each { |atr_name| attr_reader atr_name }
|
9
|
+
|
10
|
+
def initialize(params)
|
11
|
+
# 不正なオプションがあれば例外を発生させる
|
12
|
+
if (params.keys - SETTING_ATTRIBUTES).present?
|
13
|
+
raise Error,
|
14
|
+
"invalid params: #{(params.keys - SETTING_ATTRIBUTES).join(', ')}, valid params are #{SETTING_ATTRIBUTES.join(', ')}"
|
15
|
+
end
|
16
|
+
|
17
|
+
@method = params[:method]
|
18
|
+
@name = params[:name] || @method
|
19
|
+
@to = params[:to] || :model
|
20
|
+
@cast = params[:cast]
|
21
|
+
@default = params[:default] || NO_DEFAULT
|
22
|
+
@if = params[:if] || nil
|
23
|
+
@block = params[:block] || nil
|
24
|
+
|
25
|
+
check_params!
|
26
|
+
end
|
27
|
+
|
28
|
+
def set_default?
|
29
|
+
default != NO_DEFAULT
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def check_params!
|
35
|
+
raise Error, "name is required" if name.blank?
|
36
|
+
return unless method.blank?
|
37
|
+
|
38
|
+
raise Error, "method is required"
|
39
|
+
end
|
40
|
+
end
|
@@ -16,12 +16,12 @@ module ChoronSupport
|
|
16
16
|
|
17
17
|
def self.scope_query(query, specific: true, class_name: nil)
|
18
18
|
# 直接Queryクラスを指定されていたらすぐにscopeにプロキシして返す
|
19
|
-
if
|
20
|
-
query_class = class_name.to_s.constantize
|
21
|
-
else
|
19
|
+
if class_name.to_s.empty?
|
22
20
|
namespace = "Queries"
|
23
21
|
model_name = specific ? self.to_s : nil
|
24
22
|
query_class = ChoronSupport::Helper.generate_choron_class(namespace, model_name, query)
|
23
|
+
else
|
24
|
+
query_class = class_name.to_s.constantize
|
25
25
|
end
|
26
26
|
|
27
27
|
# ActiveRecordのscopeメソッドを呼びます
|
@@ -9,7 +9,7 @@ module ChoronSupport
|
|
9
9
|
MASKING_VALUES = { string: "****", else: nil }.freeze
|
10
10
|
|
11
11
|
included do
|
12
|
-
def self.set_mask_for(*method_symbols
|
12
|
+
def self.set_mask_for(*method_symbols)
|
13
13
|
method_symbols.each do |method_symbol|
|
14
14
|
self.instance_eval { private attr_accessor WITH_OUT_MASK_FLAG_VARIABLE_NAME }
|
15
15
|
define_method(method_symbol) do
|
@@ -34,11 +34,11 @@ module ChoronSupport
|
|
34
34
|
|
35
35
|
# マスクの値に関係なく元の値を取得するためのメソッドです。
|
36
36
|
define_method("danger_without_mask_#{method_symbol}") do
|
37
|
-
|
37
|
+
origin = nil
|
38
38
|
self.without_mask do |model|
|
39
|
-
|
39
|
+
origin = model.send(method_symbol)
|
40
40
|
end
|
41
|
-
|
41
|
+
origin
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
@@ -74,4 +74,4 @@ module ChoronSupport
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
77
|
-
end
|
77
|
+
end
|
data/lib/choron_support.rb
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ChoronSupport
|
4
|
+
module Domains; end
|
5
|
+
module Forms; end
|
6
|
+
module Props; end
|
7
|
+
module Props::Private; end
|
8
|
+
module Queries; end
|
9
|
+
|
4
10
|
SUPPORT_FILES = {
|
5
11
|
domains: "choron_support/domain_delegate",
|
6
12
|
queries: "choron_support/scope_query",
|
@@ -21,7 +27,7 @@ module ChoronSupport
|
|
21
27
|
module_names.to_a.each do |module_name|
|
22
28
|
case module_name.to_sym
|
23
29
|
when :all
|
24
|
-
SUPPORT_FILES.each do |
|
30
|
+
SUPPORT_FILES.each do |_key, file_name|
|
25
31
|
require file_name
|
26
32
|
end
|
27
33
|
else
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: choron_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- mksava
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-08-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -39,7 +39,7 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: factory_bot_rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
@@ -67,7 +67,7 @@ dependencies:
|
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
70
|
+
name: pry-byebug
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
@@ -81,7 +81,7 @@ dependencies:
|
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
84
|
+
name: pry-rails
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
@@ -95,7 +95,7 @@ dependencies:
|
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
|
-
name:
|
98
|
+
name: ridgepole
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
101
|
- - ">="
|
@@ -109,7 +109,7 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: rspec-parameterized
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
115
|
- - ">="
|
@@ -123,7 +123,7 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: simplecov
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
129
|
- - ">="
|
@@ -137,7 +137,7 @@ dependencies:
|
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
140
|
+
name: spring
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - ">="
|
@@ -151,7 +151,7 @@ dependencies:
|
|
151
151
|
- !ruby/object:Gem::Version
|
152
152
|
version: '0'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
|
-
name:
|
154
|
+
name: spring-commands-rspec
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
156
156
|
requirements:
|
157
157
|
- - ">="
|
@@ -165,7 +165,7 @@ dependencies:
|
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '0'
|
167
167
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
168
|
+
name: yard
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
170
170
|
requirements:
|
171
171
|
- - ">="
|
@@ -188,6 +188,7 @@ extra_rdoc_files: []
|
|
188
188
|
files:
|
189
189
|
- ".rspec"
|
190
190
|
- ".rubocop.yml"
|
191
|
+
- ".rubocop_todo.yml"
|
191
192
|
- CHANGELOG.md
|
192
193
|
- CODE_OF_CONDUCT.md
|
193
194
|
- Dockerfile
|
@@ -212,6 +213,7 @@ files:
|
|
212
213
|
- lib/choron_support/props/base.rb
|
213
214
|
- lib/choron_support/props/ext/hash.rb
|
214
215
|
- lib/choron_support/props/ext/relation.rb
|
216
|
+
- lib/choron_support/props/private/setting.rb
|
215
217
|
- lib/choron_support/queries/base.rb
|
216
218
|
- lib/choron_support/scope_query.rb
|
217
219
|
- lib/choron_support/set_mask_for.rb
|
@@ -226,6 +228,7 @@ metadata:
|
|
226
228
|
homepage_uri: https://github.com/mksava/choron_support
|
227
229
|
source_code_uri: https://github.com/mksava/choron_support
|
228
230
|
changelog_uri: https://github.com/mksava/choron_support/blob/main/CHANGELOG.md
|
231
|
+
rubygems_mfa_required: 'true'
|
229
232
|
post_install_message:
|
230
233
|
rdoc_options: []
|
231
234
|
require_paths:
|
@@ -234,7 +237,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
234
237
|
requirements:
|
235
238
|
- - ">="
|
236
239
|
- !ruby/object:Gem::Version
|
237
|
-
version:
|
240
|
+
version: '3.1'
|
238
241
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
239
242
|
requirements:
|
240
243
|
- - ">="
|