Module: ShopifyToolkit::Schema
Constant Summary collapse
- SCHEMA_PATH =
"config/shopify/schema.rb"- OWNER_TYPES =
%i[ api_permissions articles blogs carttransforms collections companies company_locations customers delivery_customizations discounts draftorders fulfillment_constraint_rules gift_card_transactions locations markets orders order_routing_location_rules pages payment_customizations products productvariants selling_plans shops validations ].freeze
Constants included from AdminClient
Instance Method Summary collapse
- #convert_validations_gids_to_types(validations, metafield_type) ⇒ Object
- #define(&block) ⇒ Object
- #dump! ⇒ Object
- #load! ⇒ Object
Methods included from Migration::Logging
#announce, #say, #say_with_time, #write
Methods included from MetaobjectUtilities
#convert_validations_types_to_gids, #get_metaobject_definition_gid, #get_metaobject_definition_type_by_gid, #is_metaobject_reference_type?
Methods included from AdminClient
#api_version, #handle_shopify_admin_client_errors, #shopify_admin_client
Methods included from MetaobjectStatements
#add_field_validations_to_metaobject, #apply_pending_field_validations, log_time
Methods included from MetafieldStatements
define, #get_metafield_gid, log_time
Instance Method Details
#convert_validations_gids_to_types(validations, metafield_type) ⇒ Object
85 86 87 88 89 90 91 |
# File 'lib/shopify_toolkit/schema.rb', line 85 def convert_validations_gids_to_types(validations, ) return validations unless validations&.any? && () validations.filter_map do |validation| (validation) end end |
#define(&block) ⇒ Object
81 82 83 |
# File 'lib/shopify_toolkit/schema.rb', line 81 def define(&block) instance_eval(&block) end |
#dump! ⇒ Object
71 72 73 74 75 76 77 78 79 |
# File 'lib/shopify_toolkit/schema.rb', line 71 def dump! schema_path = Rails.root.join(SCHEMA_PATH) announce "Dumping metafield schema to #{schema_path}" say_with_time "Generating schema" do content = generate_schema_content File.write(schema_path, content) end end |
#load! ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/shopify_toolkit/schema.rb', line 46 def load! path = Rails.root.join(SCHEMA_PATH) unless path.exist? logger.warn "Schema file not found at #{path}." return end announce "Loading metafield schema from #{path}" # Parse the schema file to separate metaobject and metafield definitions schema_content = File.read(path) say_with_time "Executing metaobject definitions" do # Execute only metaobject definitions first (schema_content) apply_pending_field_validations end say_with_time "Executing metafield definitions" do # Execute only metafield definitions after all metaobjects exist (schema_content) end end |