redress 0.4.2 → 0.5.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/README.md +5 -0
- data/lib/redress.rb +5 -0
- data/lib/redress/form.rb +3 -10
- data/lib/redress/hooks/active_model.rb +21 -0
- data/lib/redress/identity.rb +1 -1
- data/lib/redress/utils/model_name_string.rb +39 -0
- metadata +22 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcc21824a6395eda1bf8c8c9dab35e5ff6e87e458d3d696ec5ebf59a03c26217
|
4
|
+
data.tar.gz: 12969e57fc763d657da28fb4f74cc923e7932282a034741f944dc3f6664b252c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cc0980ae192ae4bffe7ca1f96f2a7eea931a9120d72d3a94a90d4578f1cbfa234fb45661705bc79fa312c0724b8a61c8501a2a4fb2180cce1947337654701195
|
7
|
+
data.tar.gz: 026f35ad1df1922b4bb2ca06da41c0a2d158be430e85c3fda2b9eeab0231e17a82a9bd51c55a914c9a7541221797590cea696581262d0a91f86fac9af8488441
|
data/README.md
CHANGED
data/lib/redress.rb
CHANGED
data/lib/redress/form.rb
CHANGED
@@ -1,18 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'hashie/mash'
|
4
|
-
require 'active_model'
|
5
4
|
require 'dry-struct'
|
6
5
|
|
7
6
|
require 'redress/utils/parse_attributes_from_params'
|
8
7
|
require 'redress/utils/build_form_from_model'
|
9
8
|
require 'redress/utils/attributes_hash'
|
9
|
+
require 'redress/utils/model_name_string'
|
10
10
|
|
11
11
|
module Redress
|
12
12
|
class Form < Dry::Struct
|
13
|
-
include ActiveModel::Validations
|
14
|
-
include ActiveModel::Conversion
|
15
|
-
|
16
13
|
DEFAULT_NAME = 'Form'
|
17
14
|
SPLITTER = '::'
|
18
15
|
|
@@ -21,12 +18,8 @@ module Redress
|
|
21
18
|
transform_keys(&:to_sym)
|
22
19
|
transform_types(&:omittable)
|
23
20
|
|
24
|
-
def self.model_name
|
25
|
-
ActiveModel::Name.new(self, nil, mimicked_model_name.to_s.camelize)
|
26
|
-
end
|
27
|
-
|
28
21
|
def self.mimic(model_name)
|
29
|
-
@model_name = model_name.
|
22
|
+
@model_name = Redress::Utils::ModelNameString.new(model_name).to_sym
|
30
23
|
end
|
31
24
|
|
32
25
|
def self.mimicked_model_name
|
@@ -37,7 +30,7 @@ module Redress
|
|
37
30
|
class_name = name.split(SPLITTER).last
|
38
31
|
return :form if class_name == DEFAULT_NAME
|
39
32
|
|
40
|
-
class_name.chomp(DEFAULT_NAME).
|
33
|
+
Redress::Utils::ModelNameString.new(class_name.chomp(DEFAULT_NAME)).to_sym
|
41
34
|
end
|
42
35
|
|
43
36
|
def self.from_params(params, options = nil)
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_model'
|
4
|
+
|
5
|
+
module Redress
|
6
|
+
module Hooks
|
7
|
+
module ActiveModel
|
8
|
+
def self.included(base)
|
9
|
+
base.extend(ClassMethods)
|
10
|
+
base.include(::ActiveModel::Validations)
|
11
|
+
base.include(::ActiveModel::Conversion)
|
12
|
+
end
|
13
|
+
|
14
|
+
module ClassMethods
|
15
|
+
def model_name
|
16
|
+
::ActiveModel::Name.new(self, nil, mimicked_model_name.to_s.camelize)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/redress/identity.rb
CHANGED
@@ -0,0 +1,39 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Redress
|
4
|
+
module Utils
|
5
|
+
class ModelNameString
|
6
|
+
attr_reader :original
|
7
|
+
|
8
|
+
def initialize(original)
|
9
|
+
@original = original.to_s
|
10
|
+
end
|
11
|
+
|
12
|
+
def to_sym
|
13
|
+
underscore_original.to_sym
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def underscore_original
|
19
|
+
if original.respond_to?(:underscore)
|
20
|
+
original.underscore
|
21
|
+
else
|
22
|
+
underscore(original)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
# File activesupport/lib/active_support/inflector/methods.rb, line 92
|
27
|
+
def underscore(camel_cased_word)
|
28
|
+
return camel_cased_word unless /[A-Z-]|::/.match?(camel_cased_word)
|
29
|
+
|
30
|
+
word = camel_cased_word.to_s.gsub('::', '/')
|
31
|
+
word.gsub!(/([A-Z\d]+)([A-Z][a-z])/, '\1_\2')
|
32
|
+
word.gsub!(/([a-z\d])([A-Z])/, '\1_\2')
|
33
|
+
word.tr!('-', '_')
|
34
|
+
word.downcase!
|
35
|
+
word
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redress
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Igor Galeta
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: activemodel
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 4.2.0
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: 4.2.0
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: dry-struct
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +72,28 @@ dependencies:
|
|
86
72
|
requirements:
|
87
73
|
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: 5.
|
75
|
+
version: '5.2'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
80
|
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: 5.
|
82
|
+
version: '5.2'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: activemodel
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 4.2.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 4.2.0
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: coveralls
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,10 +234,12 @@ files:
|
|
234
234
|
- lib/redress.rb
|
235
235
|
- lib/redress/command.rb
|
236
236
|
- lib/redress/form.rb
|
237
|
+
- lib/redress/hooks/active_model.rb
|
237
238
|
- lib/redress/identity.rb
|
238
239
|
- lib/redress/types.rb
|
239
240
|
- lib/redress/utils/attributes_hash.rb
|
240
241
|
- lib/redress/utils/build_form_from_model.rb
|
242
|
+
- lib/redress/utils/model_name_string.rb
|
241
243
|
- lib/redress/utils/parse_attributes_from_params.rb
|
242
244
|
homepage: https://github.com/galetahub/redress
|
243
245
|
licenses:
|
@@ -258,7 +260,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
258
260
|
- !ruby/object:Gem::Version
|
259
261
|
version: '0'
|
260
262
|
requirements: []
|
261
|
-
|
263
|
+
rubyforge_project:
|
264
|
+
rubygems_version: 2.7.6
|
262
265
|
signing_key:
|
263
266
|
specification_version: 4
|
264
267
|
summary: Build maintainable Ruby apps
|