shopify_api.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. require 'active_resource'
  2. require 'active_support/core_ext/class/attribute_accessors'
  3. require 'digest/md5'
  4. require 'base64'
  5. require 'active_resource/connection_ext'
  6. require 'shopify_api/limits'
  7. module ShopifyAPI
  8. include Limits
  9. METAFIELD_ENABLED_CLASSES = %w( Order Product CustomCollection SmartCollection Page Blog Article Variant)
  10. EVENT_ENABLED_CLASSES = %w( Order Product CustomCollection SmartCollection Page Blog Article )
  11. module Countable
  12. def count(options = {})
  13. Integer(get(:count, options))
  14. end
  15. end
  16. class Base < ActiveResource::Base
  17. extend Countable
  18. end
  19. ignore_files = ['cli.rb']
  20. Dir[File.join(File.dirname(__FILE__), 'shopify_api', '**/*.rb')].each do |file|
  21. require file unless ignore_files.include?(File.basename(file))
  22. end
  23. # Include Metafields module in all enabled classes
  24. METAFIELD_ENABLED_CLASSES.each do |klass|
  25. "ShopifyAPI::#{klass}".constantize.send(:include, Metafields)
  26. end
  27. # Include Events module in all enabled classes
  28. EVENT_ENABLED_CLASSES.each do |klass|
  29. "ShopifyAPI::#{klass}".constantize.send(:include, Events)
  30. end
  31. end