class Playbook::Props::Base
Attributes
default[R]
deprecated[R]
kit[R]
name[R]
required[R]
Public Class Methods
new(default: nil, deprecated: false, required: false, name:, kit:)
click to toggle source
# File lib/playbook/props/base.rb, line 10 def initialize(default: nil, deprecated: false, required: false, name:, kit:) @default = default @deprecated = deprecated @required = required @name = name @kit = kit end
Public Instance Methods
validate(_value)
click to toggle source
# File lib/playbook/props/base.rb, line 31 def validate(_value) true end
validate!(input_value)
click to toggle source
# File lib/playbook/props/base.rb, line 22 def validate!(input_value) warn("#{kit} Kit: The prop '#{name}' is deprecated and will be removed in a future release!") if deprecated && input_value # TODO: add some color for pop raise(Playbook::Props::Error, "#{kit} prop '#{name}' of type #{inspect.class} is required and needs a value") if required && input_value.nil? validate(value(input_value)) || raise(Playbook::Props::Error, "#{kit} has invalid value of '#{input_value.inspect}' for prop '#{name}' of type #{inspect.class}") end
value(value)
click to toggle source
# File lib/playbook/props/base.rb, line 18 def value(value) value.nil? ? @default : value end
Private Instance Methods
log(message)
click to toggle source
# File lib/playbook/props/base.rb, line 41 def log(message) logger = ActiveSupport::Logger.new(STDOUT) @logger ||= ActiveSupport::TaggedLogging.new(logger) @logger.log(0, message) end
warn(message)
click to toggle source
# File lib/playbook/props/base.rb, line 37 def warn(message) log("Prop Warning: #{message}") end