acts-as-optionable 0.3.0 → 0.3.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.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.3.
|
1
|
+
0.3.1
|
@@ -40,6 +40,14 @@ class Option < ActiveRecord::Base
|
|
40
40
|
name.humanize.titleize
|
41
41
|
end
|
42
42
|
|
43
|
+
def to_h
|
44
|
+
option_hash = {}
|
45
|
+
option_hash["value"] = value
|
46
|
+
option_hash["default"] = default if default
|
47
|
+
option_hash["kind"] = kind if kind
|
48
|
+
option_hash.dup
|
49
|
+
end
|
50
|
+
|
43
51
|
# def default_value
|
44
52
|
# @config['default']
|
45
53
|
# end
|
@@ -48,17 +48,12 @@ module ActiveRecord
|
|
48
48
|
# Return a pure hash filled from the options. Use this if you want access to the data
|
49
49
|
# as a hash without interfacing with Option methods
|
50
50
|
def options_and_defaults_hash
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
options[key] = {}
|
55
|
-
options[key]["value"] = option.value
|
56
|
-
options[key]["default"] = option.default if option.default
|
57
|
-
options[key]["kind"] = option.kind if option.kind
|
51
|
+
options_and_defaults.inject({}) do |memo, option|
|
52
|
+
memo[option[0]] = option[1].to_h
|
53
|
+
memo
|
58
54
|
end
|
59
|
-
options
|
60
55
|
end
|
61
|
-
|
56
|
+
|
62
57
|
# Returns an instance of options where option names are callable as methods
|
63
58
|
#
|
64
59
|
# Example:
|
@@ -69,8 +64,9 @@ module ActiveRecord
|
|
69
64
|
def options_values_struct
|
70
65
|
options = {}
|
71
66
|
options_and_defaults.each do |name, option|
|
72
|
-
|
73
|
-
options[
|
67
|
+
opt_key = name.to_s
|
68
|
+
options[opt_key] = option.value
|
69
|
+
options["#{opt_key}_kind"] = option.kind
|
74
70
|
end
|
75
71
|
OpenStruct.new(options)
|
76
72
|
end
|
@@ -5,7 +5,8 @@ module ActiveRecord
|
|
5
5
|
module ClassMethods
|
6
6
|
# Setup a default value at the class level.
|
7
7
|
def specify_option(option_name, opts = {})
|
8
|
-
|
8
|
+
name = option_name.to_s
|
9
|
+
optionable_specified_options[name] = Option.new_readonly(:name => name, :default => opts[:default], :kind => opts[:kind])
|
9
10
|
end
|
10
11
|
|
11
12
|
# Returns a hash of options specified at the class level
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 3
|
8
|
-
-
|
9
|
-
version: 0.3.
|
8
|
+
- 1
|
9
|
+
version: 0.3.1
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Brendon Murphy
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-04-
|
17
|
+
date: 2010-04-29 00:00:00 -07:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|