redress 0.4.2 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|