Class: Tengine::Support::Config::Definition::Field
- Inherits:
-
Object
- Object
- Tengine::Support::Config::Definition::Field
- Defined in:
- lib/tengine/support/config/definition/field.rb
Instance Attribute Summary collapse
-
#__block__ ⇒ Object
__block__ はactionの具体的な動作を保持します.
-
#__name__ ⇒ Object
Returns the value of attribute __name__.
-
#__parent__ ⇒ Object
Returns the value of attribute __parent__.
-
#__type__ ⇒ Object
Returns the value of attribute __type__.
-
#convertor ⇒ Object
convertor はfieldの変換ロジックを保持します.
-
#default ⇒ Object
Returns the value of attribute default.
-
#default_description ⇒ Object
Returns the value of attribute default_description.
-
#description ⇒ Object
Returns the value of attribute description.
-
#enum ⇒ Object
Returns the value of attribute enum.
-
#hidden ⇒ Object
Returns the value of attribute hidden.
-
#type ⇒ Object
Returns the value of attribute type.
Instance Method Summary collapse
- #accept_visitor(visitor) ⇒ Object
- #action? ⇒ Boolean
- #convert(value, context = self) ⇒ Object
- #default_value(context = __parent__) ⇒ Object
- #description_value ⇒ Object
- #field? ⇒ Boolean
- #hidden? ⇒ Boolean
-
#initialize(attrs = {}) ⇒ Field
constructor
A new instance of Field.
- #long_opt ⇒ Object
- #name_array ⇒ Object
- #root ⇒ Object
- #separator? ⇒ Boolean
- #short_opt ⇒ Object
- #to_hash ⇒ Object
- #update(attrs) ⇒ Object
Constructor Details
#initialize(attrs = {}) ⇒ Field
Returns a new instance of Field.
10 11 12 |
# File 'lib/tengine/support/config/definition/field.rb', line 10 def initialize(attrs = {}) attrs.each{|k, v| send("#{k}=", v)} end |
Instance Attribute Details
#__block__ ⇒ Object
__block__ はactionの具体的な動作を保持します
6 7 8 |
# File 'lib/tengine/support/config/definition/field.rb', line 6 def __block__ @__block__ end |
#__name__ ⇒ Object
Returns the value of attribute __name__.
5 6 7 |
# File 'lib/tengine/support/config/definition/field.rb', line 5 def __name__ @__name__ end |
#__parent__ ⇒ Object
Returns the value of attribute __parent__.
5 6 7 |
# File 'lib/tengine/support/config/definition/field.rb', line 5 def __parent__ @__parent__ end |
#__type__ ⇒ Object
Returns the value of attribute __type__.
5 6 7 |
# File 'lib/tengine/support/config/definition/field.rb', line 5 def __type__ @__type__ end |
#convertor ⇒ Object
convertor はfieldの変換ロジックを保持します
7 8 9 |
# File 'lib/tengine/support/config/definition/field.rb', line 7 def convertor @convertor end |
#default ⇒ Object
Returns the value of attribute default.
8 9 10 |
# File 'lib/tengine/support/config/definition/field.rb', line 8 def default @default end |
#default_description ⇒ Object
Returns the value of attribute default_description.
8 9 10 |
# File 'lib/tengine/support/config/definition/field.rb', line 8 def default_description @default_description end |
#description ⇒ Object
Returns the value of attribute description.
8 9 10 |
# File 'lib/tengine/support/config/definition/field.rb', line 8 def description @description end |
#enum ⇒ Object
Returns the value of attribute enum.
8 9 10 |
# File 'lib/tengine/support/config/definition/field.rb', line 8 def enum @enum end |
#hidden ⇒ Object
Returns the value of attribute hidden.
8 9 10 |
# File 'lib/tengine/support/config/definition/field.rb', line 8 def hidden @hidden end |
#type ⇒ Object
Returns the value of attribute type.
8 9 10 |
# File 'lib/tengine/support/config/definition/field.rb', line 8 def type @type end |
Instance Method Details
#accept_visitor(visitor) ⇒ Object
39 40 41 |
# File 'lib/tengine/support/config/definition/field.rb', line 39 def accept_visitor(visitor) visitor.visit(self) end |
#action? ⇒ Boolean
15 |
# File 'lib/tengine/support/config/definition/field.rb', line 15 def action?; @__type__ == :action; end |
#convert(value, context = self) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/tengine/support/config/definition/field.rb', line 60 def convert(value, context = self) return convertor.call(value) if convertor result = case self.type when :boolean then !!value when :integer then value.nil? ? nil : value.to_i when :string then value.nil? ? nil : value.to_s else value end result ||= default_value(context) if self.enum && !self.enum.include?(result) raise ArgumentError, "must be one of #{self.enum.inspect} but was #{result.inspect}" end result end |
#default_value(context = __parent__) ⇒ Object
31 32 33 |
# File 'lib/tengine/support/config/definition/field.rb', line 31 def default_value(context = __parent__) default.respond_to?(:to_proc) ? context.instance_eval(&default) : default end |
#description_value ⇒ Object
24 25 26 27 28 29 |
# File 'lib/tengine/support/config/definition/field.rb', line 24 def description_value [ __parent__.get_value(description), __parent__.get_value(default_description) ].join(' ') end |
#field? ⇒ Boolean
14 |
# File 'lib/tengine/support/config/definition/field.rb', line 14 def field?; @__type__ == :field; end |
#hidden? ⇒ Boolean
18 |
# File 'lib/tengine/support/config/definition/field.rb', line 18 def hidden?; !!self.hidden; end |
#long_opt ⇒ Object
56 57 58 |
# File 'lib/tengine/support/config/definition/field.rb', line 56 def long_opt '--' << name_array.join('-').gsub(%r{_}, '-') end |
#name_array ⇒ Object
43 44 45 |
# File 'lib/tengine/support/config/definition/field.rb', line 43 def name_array (__parent__ ? __parent__.name_array : []) + [__name__] end |
#root ⇒ Object
47 48 49 |
# File 'lib/tengine/support/config/definition/field.rb', line 47 def root __parent__ ? __parent__.root : nil end |
#separator? ⇒ Boolean
16 |
# File 'lib/tengine/support/config/definition/field.rb', line 16 def separator?; @__type__ == :separator; end |
#short_opt ⇒ Object
51 52 53 54 |
# File 'lib/tengine/support/config/definition/field.rb', line 51 def short_opt r = root.mapping[ name_array ] r ? "-#{r}" : nil end |
#to_hash ⇒ Object
35 36 37 |
# File 'lib/tengine/support/config/definition/field.rb', line 35 def to_hash __parent__.send(__name__) || default_value end |
#update(attrs) ⇒ Object
20 21 22 |
# File 'lib/tengine/support/config/definition/field.rb', line 20 def update(attrs) attrs.each{|k, v| send("#{k}=", v)} end |