Class: Pineapples::Setting
- Inherits:
-
Object
- Object
- Pineapples::Setting
- Defined in:
- lib/pineapples/setting.rb
Constant Summary collapse
- VALID_TYPES =
[:boolean, :numeric, :string, :symbol]
Instance Attribute Summary collapse
-
#default ⇒ Object
readonly
Returns the value of attribute default.
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#question ⇒ Object
readonly
Returns the value of attribute question.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
-
#value ⇒ Object
Returns the value of attribute value.
Instance Method Summary collapse
- #ask_setting ⇒ Object
- #has_default? ⇒ Boolean
- #has_options? ⇒ Boolean
-
#initialize(name, options = {}) ⇒ Setting
constructor
A new instance of Setting.
- #valid_type?(type) ⇒ Boolean
Constructor Details
#initialize(name, options = {}) ⇒ Setting
Returns a new instance of Setting.
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/pineapples/setting.rb', line 8 def initialize(name, = {}) raise ArgumentError, "option name can't be nil" if name.nil? raise ArgumentError, "type can't be nil" if [:type].nil? type = [:type].to_sym raise ArgumentError, "Type :#{type} is not valid for options." if type && !valid_type?(type) @name = name @type = type || :string @default = [:default] @value = @default if @default @question = [:prompt] = Array([:options]) validate_type!(default) (default) end |
Instance Attribute Details
#default ⇒ Object (readonly)
Returns the value of attribute default.
3 4 5 |
# File 'lib/pineapples/setting.rb', line 3 def default @default end |
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/pineapples/setting.rb', line 3 def name @name end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
3 4 5 |
# File 'lib/pineapples/setting.rb', line 3 def end |
#question ⇒ Object (readonly)
Returns the value of attribute question.
3 4 5 |
# File 'lib/pineapples/setting.rb', line 3 def question @question end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
3 4 5 |
# File 'lib/pineapples/setting.rb', line 3 def type @type end |
#value ⇒ Object
Returns the value of attribute value.
4 5 6 |
# File 'lib/pineapples/setting.rb', line 4 def value @value end |
Instance Method Details
#ask_setting ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/pineapples/setting.rb', line 52 def ask_setting if else if boolean? ask_boolean else ask end end end |
#has_default? ⇒ Boolean
38 39 40 |
# File 'lib/pineapples/setting.rb', line 38 def has_default? @default || (@default == false) end |
#has_options? ⇒ Boolean
42 43 44 |
# File 'lib/pineapples/setting.rb', line 42 def .present? end |
#valid_type?(type) ⇒ Boolean
34 35 36 |
# File 'lib/pineapples/setting.rb', line 34 def valid_type?(type) VALID_TYPES.include?(type) end |