sso-elements-fmk 0.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 +7 -0
- data/.idea/.gitignore +8 -0
- data/.idea/modules.xml +8 -0
- data/.idea/sso-elements-fmk.iml +59 -0
- data/.idea/vcs.xml +6 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/LICENSE.txt +165 -0
- data/README.md +39 -0
- data/Rakefile +8 -0
- data/lib/sso/elements/collection.rb +248 -0
- data/lib/sso/elements/config.rb +91 -0
- data/lib/sso/elements/configs/PW_1.0.2_v150.cfg +1227 -0
- data/lib/sso/elements/configs/PW_1.0.2_v152.cfg +1232 -0
- data/lib/sso/elements/element.rb +112 -0
- data/lib/sso/elements/field.rb +22 -0
- data/lib/sso/elements/fmk/version.rb +9 -0
- data/lib/sso/elements/fmk.rb +12 -0
- data/lib/sso/elements/samples/elements.data +0 -0
- data/sig/sso/elements/element.rbs +9 -0
- data/sig/sso/elements/fmk.rbs +8 -0
- data/sig/sso/elements/test_fmk.rbs +7 -0
- metadata +66 -0
@@ -0,0 +1,112 @@
|
|
1
|
+
module SSO
|
2
|
+
module Elements
|
3
|
+
class Element
|
4
|
+
attr_accessor :fields
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@fields = {}
|
8
|
+
end
|
9
|
+
|
10
|
+
def set_field(index, field)
|
11
|
+
@fields[index] = field
|
12
|
+
|
13
|
+
return if index == 'ID'
|
14
|
+
return if index == 'Name'
|
15
|
+
|
16
|
+
define_singleton_method(index) {@fields[index].value }
|
17
|
+
define_singleton_method("#{index}=") { |value| @fields[index].value = value }
|
18
|
+
end
|
19
|
+
|
20
|
+
def set_multi_field(index, field)
|
21
|
+
@fields[index] ||= []
|
22
|
+
@fields[index] << field
|
23
|
+
|
24
|
+
define_singleton_method(index) {@fields[index] }
|
25
|
+
end
|
26
|
+
|
27
|
+
def clone
|
28
|
+
element = Element.new
|
29
|
+
element.fields = {}
|
30
|
+
|
31
|
+
@fields.each do |name, field|
|
32
|
+
element.set_field(name, Field.new(field.type, field.value, field.index))
|
33
|
+
end
|
34
|
+
|
35
|
+
element
|
36
|
+
end
|
37
|
+
|
38
|
+
def field_names
|
39
|
+
@fields.keys
|
40
|
+
end
|
41
|
+
|
42
|
+
def [](index)
|
43
|
+
@fields[index].value
|
44
|
+
end
|
45
|
+
|
46
|
+
def []=(index, value)
|
47
|
+
@fields[index].value = value
|
48
|
+
end
|
49
|
+
|
50
|
+
def compact
|
51
|
+
result = {}
|
52
|
+
|
53
|
+
@fields.each do |name, field|
|
54
|
+
result[name] = field.value
|
55
|
+
end
|
56
|
+
|
57
|
+
result
|
58
|
+
end
|
59
|
+
|
60
|
+
def id
|
61
|
+
@fields['ID'].value
|
62
|
+
end
|
63
|
+
|
64
|
+
def id=(value)
|
65
|
+
@fields['ID'].value = value
|
66
|
+
end
|
67
|
+
|
68
|
+
def name
|
69
|
+
@fields['Name'].value
|
70
|
+
end
|
71
|
+
|
72
|
+
def name=(value)
|
73
|
+
@fields['Name'].value = value
|
74
|
+
end
|
75
|
+
|
76
|
+
def to_value
|
77
|
+
value = []
|
78
|
+
|
79
|
+
self.fields.values.each do |field|
|
80
|
+
if field.is_a?(Array)
|
81
|
+
field.each do |f|
|
82
|
+
value[f.index] = f.value
|
83
|
+
end
|
84
|
+
|
85
|
+
next
|
86
|
+
end
|
87
|
+
|
88
|
+
value[field.index] = field.value
|
89
|
+
end
|
90
|
+
|
91
|
+
value
|
92
|
+
end
|
93
|
+
|
94
|
+
def self.from_value(config, value)
|
95
|
+
element = Element.new
|
96
|
+
|
97
|
+
value.each_with_index do |data, index|
|
98
|
+
field = config.fields[index]
|
99
|
+
type = config.types[index]
|
100
|
+
|
101
|
+
if config.grouped_field_quantity[field] <= 1
|
102
|
+
element.set_field(field, Field.new(type, data, index))
|
103
|
+
else
|
104
|
+
element.set_multi_field(field, Field.new(type, data, index))
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
element
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module SSO
|
2
|
+
module Elements
|
3
|
+
class Field
|
4
|
+
attr_accessor :type,
|
5
|
+
:value,
|
6
|
+
:index
|
7
|
+
|
8
|
+
def initialize(type, value, index)
|
9
|
+
@type = type
|
10
|
+
@value = value
|
11
|
+
@index = index
|
12
|
+
end
|
13
|
+
|
14
|
+
def compact
|
15
|
+
{
|
16
|
+
type: @type,
|
17
|
+
value: @value
|
18
|
+
}
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
Binary file
|
metadata
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sso-elements-fmk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- kuroro
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2024-07-21 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
13
|
+
description: simple sso elements editor for ruby
|
14
|
+
email:
|
15
|
+
- kuroro-dev@protonmail.com
|
16
|
+
executables: []
|
17
|
+
extensions: []
|
18
|
+
extra_rdoc_files: []
|
19
|
+
files:
|
20
|
+
- ".idea/.gitignore"
|
21
|
+
- ".idea/modules.xml"
|
22
|
+
- ".idea/sso-elements-fmk.iml"
|
23
|
+
- ".idea/vcs.xml"
|
24
|
+
- CODE_OF_CONDUCT.md
|
25
|
+
- LICENSE.txt
|
26
|
+
- README.md
|
27
|
+
- Rakefile
|
28
|
+
- lib/sso/elements/collection.rb
|
29
|
+
- lib/sso/elements/config.rb
|
30
|
+
- lib/sso/elements/configs/PW_1.0.2_v150.cfg
|
31
|
+
- lib/sso/elements/configs/PW_1.0.2_v152.cfg
|
32
|
+
- lib/sso/elements/element.rb
|
33
|
+
- lib/sso/elements/field.rb
|
34
|
+
- lib/sso/elements/fmk.rb
|
35
|
+
- lib/sso/elements/fmk/version.rb
|
36
|
+
- lib/sso/elements/samples/elements.data
|
37
|
+
- sig/sso/elements/element.rbs
|
38
|
+
- sig/sso/elements/fmk.rbs
|
39
|
+
- sig/sso/elements/test_fmk.rbs
|
40
|
+
homepage: https://github.com/kuroro7/sso-elements-fmk
|
41
|
+
licenses:
|
42
|
+
- MIT
|
43
|
+
metadata:
|
44
|
+
homepage_uri: https://github.com/kuroro7/sso-elements-fmk
|
45
|
+
source_code_uri: https://github.com/kuroro7/sso-elements-fmk
|
46
|
+
changelog_uri: https://github.com/kuroro7/sso-elements-fmk
|
47
|
+
post_install_message:
|
48
|
+
rdoc_options: []
|
49
|
+
require_paths:
|
50
|
+
- lib
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ">="
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 3.0.0
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ">="
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '0'
|
61
|
+
requirements: []
|
62
|
+
rubygems_version: 3.5.11
|
63
|
+
signing_key:
|
64
|
+
specification_version: 4
|
65
|
+
summary: sso-elements-fmk
|
66
|
+
test_files: []
|