shopify_api 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +13 -4
 - data/VERSION +1 -1
 - data/lib/shopify_api.rb +29 -3
 - data/shopify_api.gemspec +2 -2
 - data/test/shopify_api_test.rb +10 -0
 - metadata +4 -4
 
    
        data/CHANGELOG
    CHANGED
    
    | 
         @@ -1,5 +1,14 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
              - Add latest changes from Shopify including asset support, token validation and a common base class
         
     | 
| 
      
 1 
     | 
    
         
            +
            == Version 1.1.0 (September 24, 2010)
         
     | 
| 
       3 
2 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 3 
     | 
    
         
            +
            * Add new Events API for Shop, Order, Product, CustomCollection, SmartCollection, Page, Blog and Article
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Add new 'compact' product image size variant
         
     | 
| 
      
 5 
     | 
    
         
            +
            * Rails 3 fix: attribute_accessors has to be explicitly included since activesupport 3.0.0
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            == Version 1.0.6
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            * Add metafields
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Add latest changes from Shopify including asset support, token validation and a common base class
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
            == Version 1.0.0
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            * extracting ShopifyAPI from Shopify into Gem
         
     | 
    
        data/VERSION
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            1.0 
     | 
| 
      
 1 
     | 
    
         
            +
            1.1.0
         
     | 
    
        data/lib/shopify_api.rb
    CHANGED
    
    | 
         @@ -1,9 +1,11 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'active_resource'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'active_support/core_ext/class/attribute_accessors'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'digest/md5'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
5 
     | 
    
         
             
            module ShopifyAPI
         
     | 
| 
       5 
6 
     | 
    
         
             
              METAFIELD_ENABLED_CLASSES = %w( Order Product CustomCollection SmartCollection Page Blog Article Variant)
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
              EVENT_ENABLED_CLASSES = %w( Order Product CustomCollection SmartCollection Page Blog Article )
         
     | 
| 
      
 8 
     | 
    
         
            +
              
         
     | 
| 
       7 
9 
     | 
    
         
             
              module Countable
         
     | 
| 
       8 
10 
     | 
    
         
             
                def count(options = {})
         
     | 
| 
       9 
11 
     | 
    
         
             
                  Integer(get(:count, options))
         
     | 
| 
         @@ -26,7 +28,13 @@ module ShopifyAPI 
     | 
|
| 
       26 
28 
     | 
    
         
             
                  metafield
         
     | 
| 
       27 
29 
     | 
    
         
             
                end
         
     | 
| 
       28 
30 
     | 
    
         
             
              end
         
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
              module Events
         
     | 
| 
      
 33 
     | 
    
         
            +
                def events
         
     | 
| 
      
 34 
     | 
    
         
            +
                  Event.find(:all, :params => {:resource => self.class.collection_name, :resource_id => id})
         
     | 
| 
      
 35 
     | 
    
         
            +
                end
         
     | 
| 
      
 36 
     | 
    
         
            +
              end
         
     | 
| 
      
 37 
     | 
    
         
            +
                
         
     | 
| 
       30 
38 
     | 
    
         
             
              # 
         
     | 
| 
       31 
39 
     | 
    
         
             
              #  The Shopify API authenticates each call via HTTP Authentication, using
         
     | 
| 
       32 
40 
     | 
    
         
             
              #    * the application's API key as the username, and
         
     | 
| 
         @@ -194,6 +202,10 @@ module ShopifyAPI 
     | 
|
| 
       194 
202 
     | 
    
         
             
                  metafield.save
         
     | 
| 
       195 
203 
     | 
    
         
             
                  metafield
         
     | 
| 
       196 
204 
     | 
    
         
             
                end
         
     | 
| 
      
 205 
     | 
    
         
            +
                
         
     | 
| 
      
 206 
     | 
    
         
            +
                def events
         
     | 
| 
      
 207 
     | 
    
         
            +
                  Event.find(:all)
         
     | 
| 
      
 208 
     | 
    
         
            +
                end
         
     | 
| 
       197 
209 
     | 
    
         
             
              end               
         
     | 
| 
       198 
210 
     | 
    
         | 
| 
       199 
211 
     | 
    
         
             
              # Custom collection
         
     | 
| 
         @@ -295,7 +307,7 @@ module ShopifyAPI 
     | 
|
| 
       295 
307 
     | 
    
         
             
                self.prefix = "/admin/products/:product_id/"
         
     | 
| 
       296 
308 
     | 
    
         | 
| 
       297 
309 
     | 
    
         
             
                # generate a method for each possible image variant
         
     | 
| 
       298 
     | 
    
         
            -
                [:pico, :icon, :thumb, :small, :medium, :large, :original].each do |m|
         
     | 
| 
      
 310 
     | 
    
         
            +
                [:pico, :icon, :thumb, :small, :compact, :medium, :large, :original].each do |m|
         
     | 
| 
       299 
311 
     | 
    
         
             
                  reg_exp_match = "/\\1_#{m}.\\2"
         
     | 
| 
       300 
312 
     | 
    
         
             
                  define_method(m) { src.gsub(/\/(.*)\.(\w{2,4})/, reg_exp_match) }
         
     | 
| 
       301 
313 
     | 
    
         
             
                end
         
     | 
| 
         @@ -362,6 +374,15 @@ module ShopifyAPI 
     | 
|
| 
       362 
374 
     | 
    
         
             
              class Webhook < Base
         
     | 
| 
       363 
375 
     | 
    
         
             
              end
         
     | 
| 
       364 
376 
     | 
    
         | 
| 
      
 377 
     | 
    
         
            +
              class Event < Base
         
     | 
| 
      
 378 
     | 
    
         
            +
                self.prefix = "/admin/:resource/:resource_id/"
         
     | 
| 
      
 379 
     | 
    
         
            +
                
         
     | 
| 
      
 380 
     | 
    
         
            +
                # Hack to allow both Shop and other Events in through the same AR class
         
     | 
| 
      
 381 
     | 
    
         
            +
                def self.prefix(options={})
         
     | 
| 
      
 382 
     | 
    
         
            +
                  options[:resource].nil? ? "/admin/" : "/admin/#{options[:resource]}/#{options[:resource_id]}/"
         
     | 
| 
      
 383 
     | 
    
         
            +
                end
         
     | 
| 
      
 384 
     | 
    
         
            +
              end
         
     | 
| 
      
 385 
     | 
    
         
            +
              
         
     | 
| 
       365 
386 
     | 
    
         
             
              # Assets represent the files that comprise your theme.
         
     | 
| 
       366 
387 
     | 
    
         
             
              # There are different buckets which hold different kinds
         
     | 
| 
       367 
388 
     | 
    
         
             
              # of assets, each corresponding to one of the folders
         
     | 
| 
         @@ -471,4 +492,9 @@ module ShopifyAPI 
     | 
|
| 
       471 
492 
     | 
    
         
             
              METAFIELD_ENABLED_CLASSES.each do |klass|
         
     | 
| 
       472 
493 
     | 
    
         
             
                "ShopifyAPI::#{klass}".constantize.send(:include, Metafields)
         
     | 
| 
       473 
494 
     | 
    
         
             
              end
         
     | 
| 
      
 495 
     | 
    
         
            +
              
         
     | 
| 
      
 496 
     | 
    
         
            +
              # Include Events module in all enabled classes
         
     | 
| 
      
 497 
     | 
    
         
            +
              EVENT_ENABLED_CLASSES.each do |klass|
         
     | 
| 
      
 498 
     | 
    
         
            +
                "ShopifyAPI::#{klass}".constantize.send(:include, Events)
         
     | 
| 
      
 499 
     | 
    
         
            +
              end
         
     | 
| 
       474 
500 
     | 
    
         
             
            end
         
     | 
    
        data/shopify_api.gemspec
    CHANGED
    
    | 
         @@ -5,11 +5,11 @@ 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |s|
         
     | 
| 
       7 
7 
     | 
    
         
             
              s.name = %q{shopify_api}
         
     | 
| 
       8 
     | 
    
         
            -
              s.version = "1.0 
     | 
| 
      
 8 
     | 
    
         
            +
              s.version = "1.1.0"
         
     | 
| 
       9 
9 
     | 
    
         | 
| 
       10 
10 
     | 
    
         
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         
     | 
| 
       11 
11 
     | 
    
         
             
              s.authors = ["Tobias L\303\274tke", "Cody Fauser", "Dennis Theisen"]
         
     | 
| 
       12 
     | 
    
         
            -
              s.date = %q{2010-09- 
     | 
| 
      
 12 
     | 
    
         
            +
              s.date = %q{2010-09-24}
         
     | 
| 
       13 
13 
     | 
    
         
             
              s.description = %q{= Shopify API
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
            The Shopify API gem allows Ruby developers to programmatically access the admin section of Shopify stores.
         
     | 
    
        data/test/shopify_api_test.rb
    CHANGED
    
    | 
         @@ -29,5 +29,15 @@ class ShopifyApiTest < Test::Unit::TestCase 
     | 
|
| 
       29 
29 
     | 
    
         
             
                    session = ShopifyAPI::Session.new("testshop.myshopify.com", "any-token", {'foo' => 'bar'})
         
     | 
| 
       30 
30 
     | 
    
         
             
                  end
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                should "setup api_key and secret for all sessions" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                  ShopifyAPI::Session.setup(:api_key => "My test key", :secret => "My test secret")
         
     | 
| 
      
 35 
     | 
    
         
            +
                  assert_equal "My test key", ShopifyAPI::Session.api_key
         
     | 
| 
      
 36 
     | 
    
         
            +
                  assert_equal "My test secret", ShopifyAPI::Session.secret
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
                
         
     | 
| 
      
 39 
     | 
    
         
            +
                should "use 'https' protocol by default for all sessions" do
         
     | 
| 
      
 40 
     | 
    
         
            +
                  assert_equal 'https', ShopifyAPI::Session.protocol
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
       32 
42 
     | 
    
         
             
              end
         
     | 
| 
       33 
43 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: shopify_api
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 19
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 1
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 1
         
     | 
| 
       8 
9 
     | 
    
         
             
              - 0
         
     | 
| 
       9 
     | 
    
         
            -
               
     | 
| 
       10 
     | 
    
         
            -
              version: 1.0.6
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 1.1.0
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - "Tobias L\xC3\xBCtke"
         
     | 
| 
         @@ -17,7 +17,7 @@ autorequire: 
     | 
|
| 
       17 
17 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       18 
18 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
            date: 2010-09- 
     | 
| 
      
 20 
     | 
    
         
            +
            date: 2010-09-24 00:00:00 -04:00
         
     | 
| 
       21 
21 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       22 
22 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       23 
23 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     |