class Kanji::Type
Public Class Methods
new(params)
click to toggle source
# File lib/kanji/type.rb, line 13 def initialize(params) result = self.class.resolve(:schema).call(params) if result.success? register :value, -> { self.class.resolve(:value_object).new(params) } else errors = parse_error_messages(result) raise ValidationError, "Schema validation failed - #{errors}" end self.class.instance_variable_get(:@_values).each do |key, value| register key.to_sym, value end if repo = self.class.resolve(:repo) register :repo, repo end end
Public Instance Methods
method_missing(method_name, *args, &block)
click to toggle source
Calls superclass method
# File lib/kanji/type.rb, line 40 def method_missing(method_name, *args, &block) if resolve(:value).respond_to?(method_name) resolve(:value).send(method_name, *args) else super(method_name, *args, &block) end end
respond_to_missing?(method_name, include_private = false)
click to toggle source
Calls superclass method
# File lib/kanji/type.rb, line 48 def respond_to_missing?(method_name, include_private = false) if resolve(:value).respond_to?(method_name) true else super(method_name, include_private) end end
to_h()
click to toggle source
# File lib/kanji/type.rb, line 32 def to_h resolve(:value).to_h end
to_json()
click to toggle source
# File lib/kanji/type.rb, line 36 def to_json to_h.to_json end
Private Instance Methods
parse_error_messages(result)
click to toggle source
# File lib/kanji/type.rb, line 58 def parse_error_messages(result) result.messages(full: true).values.flatten.join(",") end