Module: Graphiform
- Defined in:
- lib/graphiform.rb,
lib/graphiform/core.rb,
lib/graphiform/fields.rb,
lib/graphiform/helpers.rb,
lib/graphiform/version.rb,
lib/graphiform/skeleton.rb,
lib/graphiform/sort_enum.rb,
lib/graphiform/association_source.rb,
lib/graphiform/active_record_helpers.rb
Defined Under Namespace
Modules: ActiveRecordHelpers, Core, Fields, Helpers Classes: AssociationSource, SortEnum
Constant Summary collapse
- VERSION =
'0.4.0'.freeze
Class Method Summary collapse
- .configuration ⇒ Object
- .configure {|configuration| ... } ⇒ Object
- .create_skeleton ⇒ Object
- .included(base) ⇒ Object
Class Method Details
.configuration ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/graphiform.rb', line 24 def self.configuration @configuration ||= { scalar_mappings: { string: GraphQL::Types::String, text: GraphQL::Types::String, # nchar: GraphQL::Types::String, varchar: GraphQL::Types::String, date: GraphQL::Types::ISO8601Date, time: GraphQL::Types::ISO8601DateTime, datetime: GraphQL::Types::ISO8601DateTime, timestamp: GraphQL::Types::ISO8601DateTime, integer: GraphQL::Types::Int, float: GraphQL::Types::Float, decimal: GraphQL::Types::Float, boolean: GraphQL::Types::Boolean, json: GraphQL::Types::JSON, jsonb: GraphQL::Types::JSON, }, } end |
.configure {|configuration| ... } ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/graphiform.rb', line 51 def self.configure yield(configuration) if configuration[:field_class].present? && configuration[:argument_class].blank? raise GraphiformConfigurationError, 'If field_class is provided an argument class must also be provided' elsif configuration[:field_class].blank? && configuration[:argument_class].present? raise GraphiformConfigurationError, 'If argument_class is provided a field_class must also be provided' end end |
.create_skeleton ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/graphiform/skeleton.rb', line 5 def self.create_skeleton # Types Helpers.get_const_or_create('Types') do Module.new end Helpers.get_const_or_create('BaseObject', ::Types) do Class.new(::GraphQL::Schema::Object) end Helpers.get_const_or_create('BaseEdge', ::Types) do Class.new(::GraphQL::Types::Relay::BaseEdge) end Helpers.get_const_or_create('BaseConnection', ::Types) do Class.new(::GraphQL::Types::Relay::BaseConnection) end # Inputs Helpers.get_const_or_create('Inputs') do Module.new end Helpers.get_const_or_create('BaseInput', ::Inputs) do Class.new(::GraphQL::Schema::InputObject) end Helpers.get_const_or_create('Filters', ::Inputs) do Module.new end Helpers.get_const_or_create('BaseFilter', ::Inputs::Filters) do Class.new(::GraphQL::Schema::InputObject) end Helpers.get_const_or_create('Sorts', ::Inputs) do Module.new end Helpers.get_const_or_create('BaseSort', ::Inputs::Sorts) do Class.new(::GraphQL::Schema::InputObject) end Helpers.get_const_or_create('Groupings', ::Inputs) do Module.new end Helpers.get_const_or_create('BaseGrouping', ::Inputs::Groupings) do Class.new(::GraphQL::Schema::InputObject) end # Resolvers Helpers.get_const_or_create('Resolvers') do Module.new end Helpers.get_const_or_create('BaseResolver', ::Resolvers) do Class.new(::GraphQL::Schema::Resolver) end # Queries Helpers.get_const_or_create('Queries', ::Resolvers) do Module.new end Helpers.get_const_or_create('BaseQuery', ::Resolvers::Queries) do Class.new(::GraphQL::Schema::Resolver) end # Connection Queries Helpers.get_const_or_create('ConnectionQueries', ::Resolvers) do Module.new end Helpers.get_const_or_create('BaseQuery', ::Resolvers::ConnectionQueries) do Class.new(::GraphQL::Schema::Resolver) end # Enums Helpers.get_const_or_create('Enums') do Module.new end Helpers.get_const_or_create('BaseEnum', ::Enums) do Class.new(::GraphQL::Schema::Enum) end end |
.included(base) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/graphiform.rb', line 12 def self.included(base) Graphiform.create_skeleton base.class_eval do include Scopiform include Graphiform::ActiveRecordHelpers include Graphiform::Core include Graphiform::Fields end end |