فهرست منبع

Move Session and Cli to base dir. Include Events/Metafields in classes themselves

Denis Odorcic 13 سال پیش
والد
کامیت
77a251ac47

+ 7 - 3
lib/shopify_api.rb

@@ -1,3 +1,5 @@
+$:.unshift File.dirname(__FILE__)
+
 require 'active_resource'
 require 'active_support/core_ext/class/attribute_accessors'
 require 'digest/md5'
@@ -7,7 +9,9 @@ require 'shopify_api/limits'
 
 module ShopifyAPI
   include Limits
-  require 'shopify_api/resources'
-  require 'shopify_api/metafields'
-  require 'shopify_api/events'
 end
+
+require 'shopify_api/events'
+require 'shopify_api/metafields'
+require 'shopify_api/resources'
+require 'shopify_api/session'

+ 0 - 0
lib/shopify_api/resources/cli.rb → lib/shopify_api/cli.rb


+ 4 - 5
lib/shopify_api/events.rb

@@ -1,8 +1,7 @@
 module ShopifyAPI
-  EVENT_ENABLED_CLASSES = %w( Order Product CustomCollection SmartCollection Page Blog Article )
-  
-  # Include Events module in all enabled classes
-  EVENT_ENABLED_CLASSES.each do |klass|
-    "ShopifyAPI::#{klass}".constantize.send(:include, Events)
+  module Events
+    def events
+      Event.find(:all, :params => {:resource => self.class.collection_name, :resource_id => id})
+    end
   end
 end

+ 15 - 5
lib/shopify_api/metafields.rb

@@ -1,8 +1,18 @@
 module ShopifyAPI
-  METAFIELD_ENABLED_CLASSES = %w( Order Product CustomCollection SmartCollection Page Blog Article Variant)
-  
-  # Include Metafields module in all enabled classes
-  METAFIELD_ENABLED_CLASSES.each do |klass|
-    "ShopifyAPI::#{klass}".constantize.send(:include, Metafields)
+  module Metafields
+    def metafields
+      Metafield.find(:all, :params => {:resource => self.class.collection_name, :resource_id => id})
+    end
+
+    def add_metafield(metafield)
+      raise ArgumentError, "You can only add metafields to resource that has been saved" if new?
+
+      metafield.prefix_options = {
+        :resource => self.class.collection_name,
+        :resource_id => id
+      }
+      metafield.save
+      metafield
+    end
   end
 end

+ 0 - 1
lib/shopify_api/resources.rb

@@ -25,7 +25,6 @@ require 'shopify_api/resources/province'
 require 'shopify_api/resources/recurring_application_charge'
 require 'shopify_api/resources/redirect'
 require 'shopify_api/resources/script_tag'
-require 'shopify_api/resources/session'
 require 'shopify_api/resources/shipping_address'
 require 'shopify_api/resources/shipping_line'
 require 'shopify_api/resources/shop'

+ 3 - 0
lib/shopify_api/resources/article.rb

@@ -1,5 +1,8 @@
 module ShopifyAPI
   class Article < Base
+    include Events
+    include Metafields
+
     self.prefix = "/admin/blogs/:blog_id/"
     
     def comments

+ 3 - 0
lib/shopify_api/resources/blog.rb

@@ -1,5 +1,8 @@
 module ShopifyAPI
   class Blog < Base
+    include Events
+    include Metafields
+
     def articles
       Article.find(:all, :params => { :blog_id => id })
     end

+ 3 - 2
lib/shopify_api/resources/custom_collection.rb

@@ -1,7 +1,8 @@
 module ShopifyAPI
-  # Custom collection
-  #
   class CustomCollection < Base
+    include Events
+    include Metafields
+
     def products
       Product.find(:all, :params => {:collection_id => self.id})
     end

+ 0 - 6
lib/shopify_api/resources/event.rb

@@ -7,10 +7,4 @@ module ShopifyAPI
       options[:resource].nil? ? "/admin/" : "/admin/#{options[:resource]}/#{options[:resource_id]}/"
     end
   end
-  
-  module Events
-    def events
-      Event.find(:all, :params => {:resource => self.class.collection_name, :resource_id => id})
-    end
-  end
 end

+ 0 - 17
lib/shopify_api/resources/metafield.rb

@@ -1,21 +1,4 @@
 module ShopifyAPI
-  module Metafields
-    def metafields
-      Metafield.find(:all, :params => {:resource => self.class.collection_name, :resource_id => id})
-    end
-    
-    def add_metafield(metafield)
-      raise ArgumentError, "You can only add metafields to resource that has been saved" if new?
-      
-      metafield.prefix_options = {
-        :resource => self.class.collection_name,
-        :resource_id => id
-      }
-      metafield.save
-      metafield
-    end
-  end
-  
   class Metafield < Base
     self.prefix = "/admin/:resource/:resource_id/"
     

+ 3 - 0
lib/shopify_api/resources/order.rb

@@ -1,5 +1,8 @@
 module ShopifyAPI
   class Order < Base
+    include Events
+    include Metafields
+
     def close;  load_attributes_from_response(post(:close, {}, only_id)); end
     def open;   load_attributes_from_response(post(:open, {}, only_id)); end
 

+ 2 - 0
lib/shopify_api/resources/page.rb

@@ -1,4 +1,6 @@
 module ShopifyAPI
   class Page < Base
+    include Events
+    include Metafields
   end
 end

+ 2 - 0
lib/shopify_api/resources/product.rb

@@ -1,5 +1,7 @@
 module ShopifyAPI
   class Product < Base
+    include Events
+    include Metafields
 
     # Share all items of this store with the 
     # shopify marketplace

+ 3 - 0
lib/shopify_api/resources/smart_collection.rb

@@ -1,5 +1,8 @@
 module ShopifyAPI
   class SmartCollection < Base
+    include Events
+    include Metafields
+
     def products
       Product.find(:all, :params => {:collection_id => self.id})
     end

+ 2 - 0
lib/shopify_api/resources/variant.rb

@@ -1,5 +1,7 @@
 module ShopifyAPI
   class Variant < Base
+    include Metafields
+
     self.prefix = "/admin/products/:product_id/"
     
     def self.prefix(options={})

+ 0 - 0
lib/shopify_api/resources/session.rb → lib/shopify_api/session.rb