Class: WebFunction::Type::Base
- Inherits:
-
Object
- Object
- WebFunction::Type::Base
- Defined in:
- lib/web_function/type/base.rb
Instance Attribute Summary collapse
-
#base_type ⇒ Object
readonly
Returns the value of attribute base_type.
-
#refinement ⇒ Object
readonly
Returns the value of attribute refinement.
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #format(format = :default) ⇒ Object
- #hash ⇒ Object
-
#initialize(base_type:, refinement: nil) ⇒ Base
constructor
A new instance of Base.
- #inspect ⇒ Object
- #objects ⇒ Object
- #to_s ⇒ Object
- #valid?(value) ⇒ Boolean
- #without_refinements ⇒ Object
Constructor Details
#initialize(base_type:, refinement: nil) ⇒ Base
Returns a new instance of Base.
8 9 10 11 |
# File 'lib/web_function/type/base.rb', line 8 def initialize(base_type:, refinement: nil) @base_type = base_type @refinement = refinement end |
Instance Attribute Details
#base_type ⇒ Object (readonly)
Returns the value of attribute base_type.
6 7 8 |
# File 'lib/web_function/type/base.rb', line 6 def base_type @base_type end |
#refinement ⇒ Object (readonly)
Returns the value of attribute refinement.
6 7 8 |
# File 'lib/web_function/type/base.rb', line 6 def refinement @refinement end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
42 43 44 |
# File 'lib/web_function/type/base.rb', line 42 def ==(other) other.is_a?(Base) && other.base_type == @base_type && other.refinement == @refinement end |
#format(format = :default) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/web_function/type/base.rb', line 21 def format(format = :default) case format when :compact @refinement || @base_type when :base @base_type when :default if @refinement "#{@base_type}.#{@refinement}" else @base_type end else raise ArgumentError, "unknown format: #{format.inspect}" end end |
#hash ⇒ Object
47 48 49 |
# File 'lib/web_function/type/base.rb', line 47 def hash [Base, @base_type, @refinement].hash end |
#inspect ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/web_function/type/base.rb', line 13 def inspect if @refinement "#<#{@base_type} #{@refinement}>" else "#<#{@base_type}>" end end |
#objects ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/web_function/type/base.rb', line 51 def objects if @base_type == "object" && @refinement [@refinement] else [] end end |
#to_s ⇒ Object
38 39 40 |
# File 'lib/web_function/type/base.rb', line 38 def to_s format(:default) end |
#valid?(value) ⇒ Boolean
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/web_function/type/base.rb', line 65 def valid?(value) case @base_type when "string" value.is_a?(String) && refinement_valid?(value) when "number" value.is_a?(Numeric) && !value.is_a?(Complex) && refinement_valid?(value) when "object" value.is_a?(Hash) when "boolean" value == true || value == false when "null" value.nil? else false end end |