Sha256: fec2f7ed92abbbfc14d4190da4256a6d1ea0f9638eb80fbfedc25b75c6426cc3
Contents?: true
Size: 1.22 KB
Versions: 12
Compression:
Stored size: 1.22 KB
Contents
module GraphQL # The parent type for scalars, eg {GraphQL::STRING_TYPE}, {GraphQL::INT_TYPE} # # @example defining a type for Time # TimeType = GraphQL::ScalarType.define do # name "Time" # description "Time since epoch in seconds" # # coerce_input ->(value) { Time.at(Float(value)) } # coerce_result ->(value) { value.to_f } # end # class ScalarType < GraphQL::BaseType accepts_definitions :coerce, :coerce_input, :coerce_result def coerce=(proc) self.coerce_input = proc self.coerce_result = proc end def validate_non_null_input(value) result = Query::InputValidationResult.new if coerce_non_null_input(value).nil? result.add_problem("Could not coerce value #{JSON.dump(value)} to #{name}") end result end def coerce_non_null_input(value) @coerce_input_proc.call(value) end def coerce_input=(proc) if !proc.nil? @coerce_input_proc = proc end end def coerce_result(value) @coerce_result_proc.call(value) end def coerce_result=(proc) if !proc.nil? @coerce_result_proc = proc end end def kind GraphQL::TypeKinds::SCALAR end end end
Version data entries
12 entries across 12 versions & 1 rubygems