module Substance::Objects::Output
Public Instance Methods
ensure_validation_before(method)
click to toggle source
Calls superclass method
# File lib/substance/objects/output.rb, line 40 def ensure_validation_before(method) around_method method do |*args, **opts| raise NotValidatedError unless validated_output?(method) # TODO: replace with `super(...)` when <= 2.6 support is dropped if RUBY_VERSION < "2.7" && opts.blank? super(*args) else super(*args, **opts) end end end
inherited(base)
click to toggle source
Calls superclass method
# File lib/substance/objects/output.rb, line 25 def inherited(base) base._outputs = _outputs.dup super end
output(output, default: nil, &block)
click to toggle source
# File lib/substance/objects/output.rb, line 32 def output(output, default: nil, &block) _outputs << output define_attribute output define_default output, static: default, &block ensure_validation_before output ensure_validation_before "#{output}=".to_sym end
output_struct()
click to toggle source
# File lib/substance/objects/output.rb, line 60 def output_struct Struct.new(*_outputs) end
outputs()
click to toggle source
# File lib/substance/objects/output.rb, line 54 def outputs return {} if _outputs.empty? output_struct.new(*_outputs.map(&method(:public_send))) end
validated_output?(method)
click to toggle source
# File lib/substance/objects/output.rb, line 64 def validated_output?(method) validated? || begin attr_name = method.to_s.delete("=").to_sym _options.include?(attr_name) || _arguments.include?(attr_name) end end