active_dynamic 0.4.0 → 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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 561ff35f6f9d9ccfd7925b6717bc139ab9d6ac10
|
4
|
+
data.tar.gz: c846f231edd33786e866070ca378f2734a4c80b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 789f970d6b430f58ba8898c40897c7a38f94ff4acb1346348451777a282f685555551efa608f022162f2058ad3083dabf2123246dcc83378d1dff4688746f068
|
7
|
+
data.tar.gz: e8132be0560081f460f658c9e08d52d1a1bc55e43c401e62bf17b07492d0117e709ac3b47e666cfd0b79e3f8ed11f1e36bdeb5345a766aa4de144286e15d4e32
|
data/README.md
CHANGED
@@ -56,9 +56,12 @@ class ProfileAttributeProvider
|
|
56
56
|
# You can get it from the configuration file, DB, etc., depending on your app logic
|
57
57
|
def call
|
58
58
|
[
|
59
|
-
# attribute definition has to specify attribute name
|
60
|
-
ActiveDynamic::AttributeDefinition.new('
|
61
|
-
|
59
|
+
# attribute definition has to specify attribute display name
|
60
|
+
ActiveDynamic::AttributeDefinition.new('biography'),
|
61
|
+
|
62
|
+
# Optionally you can provide datatype, system name, and default value.
|
63
|
+
# If system name is not specified, it will be generated automatically from display name
|
64
|
+
ActiveDynamic::AttributeDefinition.new('age', datatype: ActiveDynamic::DataType::Integer, default_value: 18)
|
62
65
|
]
|
63
66
|
end
|
64
67
|
|
@@ -8,6 +8,11 @@ module ActiveDynamic
|
|
8
8
|
@name = options[:system_name] || display_name.gsub(/[^a-zA-Z\s]/, ''.freeze).gsub(/\s+/, '_'.freeze)
|
9
9
|
@datatype = options[:datatype]
|
10
10
|
@value = options[:default_value]
|
11
|
+
@required = options[:required]
|
12
|
+
end
|
13
|
+
|
14
|
+
def required?
|
15
|
+
!!@required
|
11
16
|
end
|
12
17
|
|
13
18
|
end
|
@@ -27,14 +27,16 @@ module ActiveDynamic
|
|
27
27
|
end
|
28
28
|
|
29
29
|
def generate_accessors(fields)
|
30
|
-
fields.
|
30
|
+
fields.each do |field|
|
31
31
|
|
32
|
-
|
33
|
-
|
32
|
+
self.class.validates_presence_of(field.name) if field.required?
|
33
|
+
|
34
|
+
define_singleton_method(field.name) do
|
35
|
+
_custom_fields[field.name]
|
34
36
|
end
|
35
37
|
|
36
|
-
define_singleton_method("#{field}=") do |value|
|
37
|
-
_custom_fields[field] = value.strip
|
38
|
+
define_singleton_method("#{field.name}=") do |value|
|
39
|
+
_custom_fields[field.name] = value.strip if value
|
38
40
|
end
|
39
41
|
|
40
42
|
end
|
@@ -6,9 +6,10 @@ class CreateActiveDynamicAttributesTable < ActiveRecord::Migration[4.2]
|
|
6
6
|
t.string :customizable_type, limit: 50
|
7
7
|
|
8
8
|
t.string :display_name, null: false
|
9
|
-
t.string :name
|
9
|
+
t.string :name
|
10
10
|
t.text :value
|
11
|
-
t.integer :datatype
|
11
|
+
t.integer :datatype
|
12
|
+
t.boolean :required, null: false, default: false
|
12
13
|
|
13
14
|
t.timestamps
|
14
15
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: active_dynamic
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Constantine Lebedev
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|