shopify_api 3.0.3 → 3.1.2

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.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Yjk3NThmNmE5YjE3NjgyNTBkNjQ0MmY0MDQ4MmJkN2YwZGMyZWU3MQ==
5
+ data.tar.gz: !binary |-
6
+ NDlhZjI5MGZmNTM0ZTlmOGE4ODY4YTFmYjQ5OTAyMGYxY2Y2NTBiOQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ NjIzNTA3MmZkZTllOWJiMGZhYWI3NWYwZDliNWJiYTNlM2NhYTI0MDQ1MzQ5
10
+ MWYzZTRjNjM4NzJjNzliOWEzMGYzNTA1NmFkNGM0YjY2NDhhYjNiYzZkODNl
11
+ NDkzNzVjNjcxY2E2YmY1NzM3YjQxZmI0YzcwNmNlOWExNTRmZjg=
12
+ data.tar.gz: !binary |-
13
+ YjlkODc5YjJjNDg3Nzk0NzkyZWJmYzBiZDg1N2RhOTgwYzYzOTk0NDEwOGU3
14
+ ZTI5YjBkMDNkZjk5MjE3NjNhN2ZhNGE2ZGJmM2YxMGE2YzRiOTA0N2JlYmZk
15
+ YzAzZWZkM2E2ZTYwYzQ2ZjVlYWNmMDdhMDRhNzk5ZDBlZWM0ZDY=
data/CHANGELOG CHANGED
@@ -1,3 +1,12 @@
1
+ == Version 3.1.2
2
+
3
+ * Includes port in domain URI (when other than http/80 or https/443)
4
+ * Adds access to CustomerSavedSearch
5
+ * Adds resources: Order::DefaultAddress, Client::ClientDetails, Announcement
6
+ * Allows access to Articles without a blog_id
7
+ * Moves encode and as_json overrides to ShopifyAPI::Base scope
8
+ * Exposes the `order` action in SmartCollection for general use
9
+
1
10
  == Version 3.0.3
2
11
 
3
12
  * Add a `customers` helper method to the CustomerGroup resource
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,48 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ shopify_api (3.1.2)
5
+ activeresource (>= 3.0.0)
6
+ thor (>= 0.14.4)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ activemodel (4.0.0)
12
+ activesupport (= 4.0.0)
13
+ builder (~> 3.1.0)
14
+ activeresource (4.0.0)
15
+ activemodel (~> 4.0)
16
+ activesupport (~> 4.0)
17
+ rails-observers (~> 0.1.1)
18
+ activesupport (4.0.0)
19
+ i18n (~> 0.6, >= 0.6.4)
20
+ minitest (~> 4.2)
21
+ multi_json (~> 1.3)
22
+ thread_safe (~> 0.1)
23
+ tzinfo (~> 0.3.37)
24
+ atomic (1.1.14)
25
+ builder (3.1.4)
26
+ fakeweb (1.3.0)
27
+ i18n (0.6.5)
28
+ metaclass (0.0.1)
29
+ minitest (4.7.5)
30
+ mocha (0.14.0)
31
+ metaclass (~> 0.0.1)
32
+ multi_json (1.8.2)
33
+ rails-observers (0.1.2)
34
+ activemodel (~> 4.0)
35
+ rake (10.1.0)
36
+ thor (0.18.1)
37
+ thread_safe (0.1.3)
38
+ atomic
39
+ tzinfo (0.3.38)
40
+
41
+ PLATFORMS
42
+ ruby
43
+
44
+ DEPENDENCIES
45
+ fakeweb
46
+ mocha (>= 0.9.8)
47
+ rake
48
+ shopify_api!
data/README.rdoc CHANGED
@@ -77,7 +77,7 @@ http://api.shopify.com <= Read the tech docs!
77
77
 
78
78
  http://wiki.shopify.com/Developer_Home <= Read the wiki!
79
79
 
80
- http://stackoverflow.com/questions/tagged/shopify <= Ask questions on Stack Overflow!
80
+ http://ecommerce.shopify.com/c/shopify-apis-and-technology <= Ask questions on the forums!
81
81
 
82
82
  == Copyright
83
83
 
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  # encoding: UTF-8
2
2
  require 'rubygems'
3
3
  require 'rake'
4
+ require "bundler/gem_tasks"
4
5
 
5
6
  require 'rake/testtask'
6
7
  Rake::TestTask.new(:test) do |test|
@@ -25,7 +26,7 @@ end
25
26
 
26
27
  task :default => :test
27
28
 
28
- require 'rake/rdoctask'
29
+ require 'rdoc/task'
29
30
  Rake::RDocTask.new do |rdoc|
30
31
  if File.exist?('VERSION.yml')
31
32
  config = YAML.load(File.read('VERSION.yml'))
@@ -38,4 +39,4 @@ Rake::RDocTask.new do |rdoc|
38
39
  rdoc.title = "shopify_api #{version}"
39
40
  rdoc.rdoc_files.include('README*')
40
41
  rdoc.rdoc_files.include('lib/**/*.rb')
41
- end
42
+ end
@@ -1,37 +1,16 @@
1
1
  module ActiveResource
2
- class Base
3
- def encode(options = {})
4
- same = dup
5
- same.attributes = {self.class.element_name => same.attributes} if self.class.format.extension == 'json'
6
-
7
- same.send("to_#{self.class.format.extension}", options)
8
- end
9
- end
10
-
11
- module Formats
12
- module JsonFormat
13
- def decode(json)
14
- data = ActiveSupport::JSON.decode(json)
15
- if data.is_a?(Hash) && data.keys.size == 1
16
- data.values.first
17
- else
18
- data
19
- end
20
- end
21
- end
22
- end
23
- end
24
2
 
25
- module ActiveModel
26
- module Serializers
27
- module JSON
28
- def as_json(options = nil)
29
- root = options[:root] if options.try(:key?, :root)
30
- if include_root_in_json
31
- root = self.class.model_name.element if root == true
32
- { root => serializable_hash(options) }
33
- else
34
- serializable_hash(options)
3
+ # ActiveResource 3.1 removes root on decoding, so this patch is only needed in 3.0
4
+ if ActiveResource::VERSION::MAJOR == 3 && ActiveResource::VERSION::MINOR == 0
5
+ module Formats
6
+ module JsonFormat
7
+ def decode(json)
8
+ data = ActiveSupport::JSON.decode(json)
9
+ if data.is_a?(Hash) && data.keys.size == 1
10
+ data.values.first
11
+ else
12
+ data
13
+ end
35
14
  end
36
15
  end
37
16
  end
@@ -0,0 +1,4 @@
1
+ module ShopifyAPI
2
+ class Announcement < Base
3
+ end
4
+ end
@@ -2,9 +2,14 @@ module ShopifyAPI
2
2
  class Article < Base
3
3
  include Events
4
4
  include Metafields
5
+ include DisablePrefixCheck
5
6
 
6
7
  self.prefix = "/admin/blogs/:blog_id/"
7
-
8
+
9
+ def self.prefix(options={})
10
+ options[:blog_id].nil? ? "/admin/" : "/admin/blogs/#{options[:blog_id]}/"
11
+ end
12
+
8
13
  def comments
9
14
  Comment.find(:all, :params => { :article_id => id })
10
15
  end
@@ -8,6 +8,23 @@ module ShopifyAPI
8
8
  "ActiveResource/#{ActiveResource::VERSION::STRING}",
9
9
  "Ruby/#{RUBY_VERSION}"].join(' ')
10
10
 
11
+ def encode(options = {})
12
+ same = dup
13
+ same.attributes = {self.class.element_name => same.attributes} if self.class.format.extension == 'json'
14
+
15
+ same.send("to_#{self.class.format.extension}", options)
16
+ end
17
+
18
+ def as_json(options = nil)
19
+ root = options[:root] if options.try(:key?, :root)
20
+ if include_root_in_json
21
+ root = self.class.model_name.element if root == true
22
+ { root => serializable_hash(options) }
23
+ else
24
+ serializable_hash(options)
25
+ end
26
+ end
27
+
11
28
  class << self
12
29
  def headers
13
30
  if defined?(@headers)
@@ -1,5 +1,8 @@
1
1
  module ShopifyAPI
2
2
  class Customer < Base
3
3
  include Metafields
4
+
5
+ class DefaultAddress < Base
6
+ end
4
7
  end
5
8
  end
@@ -1,7 +1,5 @@
1
+ require 'shopify_api/resources/customer_saved_search'
2
+
1
3
  module ShopifyAPI
2
- class CustomerGroup < Base
3
- def customers
4
- Customers.find(:all, :params => {:customer_group_id => self.id})
5
- end
6
- end
4
+ CustomerGroup = CustomerSavedSearch
7
5
  end
@@ -0,0 +1,9 @@
1
+ require 'shopify_api/resources/customer'
2
+
3
+ module ShopifyAPI
4
+ class CustomerSavedSearch < Base
5
+ def customers(params = {})
6
+ Customer.find(:all, :params => params.merge({ :customer_saved_search_id => self.id }))
7
+ end
8
+ end
9
+ end
@@ -17,5 +17,8 @@ module ShopifyAPI
17
17
  def capture(amount = "")
18
18
  Transaction.create(:amount => amount, :kind => "capture", :order_id => id)
19
19
  end
20
+
21
+ class ClientDetails < Base
22
+ end
20
23
  end
21
24
  end
@@ -6,5 +6,10 @@ module ShopifyAPI
6
6
  def products
7
7
  Product.find(:all, :params => {:collection_id => self.id})
8
8
  end
9
+
10
+ def order(options={})
11
+ load_attributes_from_response(put(:order, options, only_id))
12
+ end
13
+
9
14
  end
10
15
  end
@@ -18,7 +18,7 @@ module ShopifyAPI
18
18
  def temp(domain, token, &block)
19
19
  session = new(domain, token)
20
20
  begin
21
- original_domain = URI.parse(ShopifyAPI::Base.site.to_s).host
21
+ original_domain = host_with_port(ShopifyAPI::Base.site.to_s)
22
22
  rescue URI::InvalidURIError
23
23
  end
24
24
  original_token = ShopifyAPI::Base.headers['X-Shopify-Access-Token']
@@ -45,6 +45,17 @@ module ShopifyAPI
45
45
  Digest::MD5.hexdigest(secret + sorted_params) == signature
46
46
  end
47
47
 
48
+ def host_with_port(site)
49
+ parsed_site = URI.parse(site)
50
+ host = parsed_site.host or return
51
+ port = parsed_site.port
52
+ if (protocol == 'http' && port == 80) || (protocol == 'https' && port == 443)
53
+ host
54
+ else
55
+ "#{host}:#{port}"
56
+ end
57
+ end
58
+
48
59
  end
49
60
 
50
61
  def initialize(url, token = nil, params = nil)
@@ -1,3 +1,3 @@
1
1
  module ShopifyAPI
2
- VERSION = "3.0.3"
2
+ VERSION = "3.1.2"
3
3
  end
data/shopify_api.gemspec CHANGED
@@ -30,8 +30,10 @@ Gem::Specification.new do |s|
30
30
  if s.respond_to?(:add_development_dependency)
31
31
  s.add_development_dependency("mocha", ">= 0.9.8")
32
32
  s.add_development_dependency("fakeweb")
33
+ s.add_development_dependency("rake")
33
34
  else
34
35
  s.add_dependency("mocha", ">= 0.9.8")
35
36
  s.add_dependency("fakeweb")
37
+ s.add_dependency("rake")
36
38
  end
37
39
  end
@@ -0,0 +1,28 @@
1
+ require 'test_helper'
2
+
3
+ class ArticleTest < Test::Unit::TestCase
4
+
5
+ def test_get_article
6
+ fake "articles/6242736", :method => :get, :body => load_fixture('article')
7
+ article = ShopifyAPI::Article.find(6242736)
8
+ assert_equal "First Post", article.title
9
+ end
10
+
11
+ def test_get_articles
12
+ fake "articles", :method => :get, :body => load_fixture('articles')
13
+ articles = ShopifyAPI::Article.all
14
+ assert_equal 3, articles.length
15
+ end
16
+
17
+ def test_get_articles_namespaced
18
+ fake "blogs/1008414260/articles", :method => :get, :body => load_fixture('articles')
19
+ articles = ShopifyAPI::Article.find(:all, :params => {:blog_id => 1008414260})
20
+ assert_equal 3, articles.length
21
+ end
22
+
23
+ def test_get_article_namespaced
24
+ fake "blogs/1008414260/articles/6242736", :method => :get, :body => load_fixture('article')
25
+ article = ShopifyAPI::Article.find(6242736, :params => {:blog_id => 1008414260})
26
+ assert_equal "First Post", article.title
27
+ end
28
+ end
data/test/blog_test.rb CHANGED
@@ -1,8 +1,8 @@
1
1
  require 'test_helper'
2
2
  class BlogTest < Test::Unit::TestCase
3
3
  test "blog creation" do
4
- fake "blogs", :method => :post, :status => 202
5
- ShopifyAPI::Blog.create(:title => "Test Blog")
4
+ fake "blogs", :method => :post, :status => 202, :body => load_fixture('blog')
5
+ blog = ShopifyAPI::Blog.create(:title => "Test Blog")
6
6
  assert_equal '{"blog":{"title":"Test Blog"}}', FakeWeb.last_request.body
7
7
  end
8
8
  end
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class CustomerSavedSearchTest < Test::Unit::TestCase
4
+ def setup
5
+ super
6
+ load_customer_saved_search
7
+ end
8
+
9
+ def test_get_customers_from_customer_saved_search
10
+ fake 'customers.json?customer_saved_search_id=8899730', :body => load_fixture('customer_saved_search_customers'), :extension => false
11
+ assert_equal 1, @customer_saved_search.customers.length
12
+ assert_equal 112223902, @customer_saved_search.customers.first.id
13
+ end
14
+
15
+ def test_get_customers_from_customer_saved_search_with_params
16
+ fake 'customers.json?customer_saved_search_id=8899730&limit=1', :body => load_fixture('customer_saved_search_customers'), :extension => false
17
+ customers = @customer_saved_search.customers(:limit => 1)
18
+ assert_equal 1, customers.length
19
+ assert_equal 112223902, customers.first.id
20
+ end
21
+
22
+ private
23
+ def load_customer_saved_search
24
+ fake 'customer_saved_searches/8899730', :body => load_fixture('customer_saved_search')
25
+ @customer_saved_search = ShopifyAPI::CustomerSavedSearch.find(8899730)
26
+ end
27
+ end
@@ -9,6 +9,7 @@ class LogSubscriberTest < Test::Unit::TestCase
9
9
  @page = { :page => { :id => 1, :title => 'Shopify API' } }.to_json
10
10
  @ua_header = "\"User-Agent\"=>\"ShopifyAPI/#{ShopifyAPI::VERSION} ActiveResource/#{ActiveResource::VERSION::STRING} Ruby/#{RUBY_VERSION}\""
11
11
 
12
+ ShopifyAPI::Base.clear_session
12
13
  ShopifyAPI::Base.site = "http://localhost/admin"
13
14
 
14
15
  ActiveResource::LogSubscriber.attach_to :active_resource
@@ -0,0 +1,15 @@
1
+ {
2
+ "article": {
3
+ "author": "Shopify",
4
+ "blog_id": 1008414260,
5
+ "body_html": null,
6
+ "created_at": "2012-07-06T13:57:28-04:00",
7
+ "id": 6242736,
8
+ "published_at": "2012-07-06T13:57:28-04:00",
9
+ "summary_html": null,
10
+ "title": "First Post",
11
+ "updated_at": "2012-07-06T13:57:51-04:00",
12
+ "user_id": null,
13
+ "tags": "consequuntur, cupiditate, repellendus"
14
+ }
15
+ }
@@ -0,0 +1,39 @@
1
+ {
2
+ "articles": [{
3
+ "author": "Shopify",
4
+ "blog_id": 1008414260,
5
+ "body_html": null,
6
+ "created_at": "2012-07-06T13:57:28-04:00",
7
+ "id": 6242736,
8
+ "published_at": "2012-07-06T13:57:28-04:00",
9
+ "summary_html": null,
10
+ "title": "First Post",
11
+ "updated_at": "2012-07-06T13:57:51-04:00",
12
+ "user_id": null,
13
+ "tags": "consequuntur, cupiditate, repellendus"
14
+ }, {
15
+ "author": "development shop",
16
+ "blog_id": 1008414260,
17
+ "body_html": null,
18
+ "created_at": "2013-04-21T18:10:35-04:00",
19
+ "id": 7739673,
20
+ "published_at": "2013-04-21T18:10:22-04:00",
21
+ "summary_html": null,
22
+ "title": "My second blog post",
23
+ "updated_at": "2013-04-21T18:10:35-04:00",
24
+ "user_id": 2221540,
25
+ "tags": ""
26
+ }, {
27
+ "author": "development shop",
28
+ "blog_id": 1008414260,
29
+ "body_html": null,
30
+ "created_at": "2013-04-21T18:11:19-04:00",
31
+ "id": 7739683,
32
+ "published_at": "2013-04-21T18:10:45-04:00",
33
+ "summary_html": null,
34
+ "title": "50% off sale",
35
+ "updated_at": "2013-04-21T18:11:19-04:00",
36
+ "user_id": 2221540,
37
+ "tags": ""
38
+ }]
39
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "blog": {
3
+ "handle": "test-blog",
4
+ "created_at": "2012-01-10T17:45:19-05:00",
5
+ "title": "Test Blog",
6
+ "template_suffix": null,
7
+ "updated_at": "2012-01-10T17:45:19-05:00",
8
+ "feedburner_location": null,
9
+ "id": 1008414260,
10
+ "feedburner": null,
11
+ "commentable": "no"
12
+ }
13
+ }
@@ -1,5 +1,5 @@
1
1
  {
2
- "blog": {
2
+ "blogs": [{
3
3
  "handle": "test-blog",
4
4
  "created_at": "2012-01-10T17:45:19-05:00",
5
5
  "title": "Test Blog",
@@ -9,5 +9,5 @@
9
9
  "id": 1008414260,
10
10
  "feedburner": null,
11
11
  "commentable": "no"
12
- }
12
+ }]
13
13
  }
@@ -0,0 +1,9 @@
1
+ {
2
+ "customer_saved_search": {
3
+ "created_at": "2013-01-21T13:26:12-05:00",
4
+ "id": 8899730,
5
+ "name": "Accepts Marketing",
6
+ "updated_at": "2013-01-21T13:26:12-05:00",
7
+ "query": "accepts_marketing:1"
8
+ }
9
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "customers": [
3
+ {
4
+ "accepts_marketing": true,
5
+ "created_at": "2013-01-29T16:33:35-05:00",
6
+ "email": "john.smith@gmail.com",
7
+ "first_name": "John",
8
+ "id": 112223902,
9
+ "last_name": "Smith",
10
+ "last_order_id": null,
11
+ "multipass_identifier": null,
12
+ "note": "This is sample note",
13
+ "orders_count": 0,
14
+ "state": "disabled",
15
+ "total_spent": "0.00",
16
+ "updated_at": "2013-03-05T17:00:05-05:00",
17
+ "verified_email": true,
18
+ "tags": "Buyer, Canadian",
19
+ "last_order_name": null,
20
+ "default_address": {
21
+ "address1": "1234 Simple Road",
22
+ "address2": null,
23
+ "city": "Ottawa",
24
+ "company": null,
25
+ "country": "Canada",
26
+ "first_name": "John",
27
+ "id": 152583148,
28
+ "last_name": "Smith",
29
+ "phone": "555-555-5555",
30
+ "province": "Ontario",
31
+ "zip": "K2H 0A0",
32
+ "name": "John Smith",
33
+ "province_code": "ON",
34
+ "country_code": "CA",
35
+ "country_name": "Canada",
36
+ "default": true
37
+ },
38
+ "addresses": [
39
+ {
40
+ "address1": "1234 Simple Road",
41
+ "address2": null,
42
+ "city": "Ottawa",
43
+ "company": null,
44
+ "country": "Canada",
45
+ "first_name": "John",
46
+ "id": 152583148,
47
+ "last_name": "Smith",
48
+ "phone": "555-555-5555",
49
+ "province": "Ontario",
50
+ "zip": "K2H 0A0",
51
+ "name": "John Smith",
52
+ "province_code": "ON",
53
+ "country_code": "CA",
54
+ "country_name": "Canada",
55
+ "default": true
56
+ }
57
+ ]
58
+ }
59
+ ]
60
+ }
data/test/session_test.rb CHANGED
@@ -53,6 +53,18 @@ class SessionTest < Test::Unit::TestCase
53
53
  assert_equal 'https://fakeshop.myshopify.com/admin', ShopifyAPI::Base.site.to_s
54
54
  end
55
55
 
56
+ should "#temp reset ShopifyAPI::Base.site to original value when using a non-standard port" do
57
+ ShopifyAPI::Session.setup(:api_key => "key", :secret => "secret")
58
+ session1 = ShopifyAPI::Session.new('fakeshop.myshopify.com:3000', 'token1')
59
+ ShopifyAPI::Base.activate_session(session1)
60
+
61
+ ShopifyAPI::Session.temp("testshop.myshopify.com", "any-token") {
62
+ @assigned_site = ShopifyAPI::Base.site
63
+ }
64
+ assert_equal 'https://testshop.myshopify.com/admin', @assigned_site.to_s
65
+ assert_equal 'https://fakeshop.myshopify.com:3000/admin', ShopifyAPI::Base.site.to_s
66
+ end
67
+
56
68
  should "return site for session" do
57
69
  session = ShopifyAPI::Session.new("testshop.myshopify.com", "any-token")
58
70
  assert_equal "https://testshop.myshopify.com/admin", session.site
data/test/test_helper.rb CHANGED
@@ -34,6 +34,7 @@ class Test::Unit::TestCase
34
34
  end
35
35
  end
36
36
 
37
+ ShopifyAPI::Base.clear_session
37
38
  ShopifyAPI::Base.site = "http://localhost/admin"
38
39
  ShopifyAPI::Base.password = nil
39
40
  ShopifyAPI::Base.user = nil
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
5
- prerelease:
4
+ version: 3.1.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shopify
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-11-15 00:00:00.000000000 Z
11
+ date: 2013-10-29 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activeresource
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ! '>='
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
@@ -30,7 +27,6 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: thor
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
31
  - - ! '>='
36
32
  - !ruby/object:Gem::Version
@@ -38,7 +34,6 @@ dependencies:
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ! '>='
44
39
  - !ruby/object:Gem::Version
@@ -46,7 +41,6 @@ dependencies:
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: mocha
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ! '>='
52
46
  - !ruby/object:Gem::Version
@@ -54,7 +48,6 @@ dependencies:
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ! '>='
60
53
  - !ruby/object:Gem::Version
@@ -62,7 +55,6 @@ dependencies:
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: fakeweb
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - ! '>='
68
60
  - !ruby/object:Gem::Version
@@ -70,7 +62,20 @@ dependencies:
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
65
+ requirements:
66
+ - - ! '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
74
79
  requirements:
75
80
  - - ! '>='
76
81
  - !ruby/object:Gem::Version
@@ -91,6 +96,8 @@ files:
91
96
  - .gitignore
92
97
  - CHANGELOG
93
98
  - CONTRIBUTORS
99
+ - Gemfile
100
+ - Gemfile.lock
94
101
  - LICENSE
95
102
  - README.rdoc
96
103
  - RELEASING
@@ -110,6 +117,7 @@ files:
110
117
  - lib/shopify_api/metafields.rb
111
118
  - lib/shopify_api/resources.rb
112
119
  - lib/shopify_api/resources/address.rb
120
+ - lib/shopify_api/resources/announcement.rb
113
121
  - lib/shopify_api/resources/application_charge.rb
114
122
  - lib/shopify_api/resources/article.rb
115
123
  - lib/shopify_api/resources/asset.rb
@@ -124,6 +132,7 @@ files:
124
132
  - lib/shopify_api/resources/custom_collection.rb
125
133
  - lib/shopify_api/resources/customer.rb
126
134
  - lib/shopify_api/resources/customer_group.rb
135
+ - lib/shopify_api/resources/customer_saved_search.rb
127
136
  - lib/shopify_api/resources/event.rb
128
137
  - lib/shopify_api/resources/fulfillment.rb
129
138
  - lib/shopify_api/resources/image.rb
@@ -154,16 +163,23 @@ files:
154
163
  - lib/shopify_api/session.rb
155
164
  - lib/shopify_api/version.rb
156
165
  - shopify_api.gemspec
166
+ - test/article_test.rb
157
167
  - test/asset_test.rb
158
168
  - test/base_test.rb
159
169
  - test/blog_test.rb
160
170
  - test/cart_test.rb
161
171
  - test/cli_test.rb
172
+ - test/customer_saved_search_test.rb
162
173
  - test/detailed_log_subscriber_test.rb
174
+ - test/fixtures/article.json
175
+ - test/fixtures/articles.json
163
176
  - test/fixtures/asset.json
164
177
  - test/fixtures/assets.json
178
+ - test/fixtures/blog.json
165
179
  - test/fixtures/blogs.json
166
180
  - test/fixtures/carts.json
181
+ - test/fixtures/customer_saved_search.json
182
+ - test/fixtures/customer_saved_search_customers.json
167
183
  - test/fixtures/events.json
168
184
  - test/fixtures/metafield.json
169
185
  - test/fixtures/metafields.json
@@ -181,28 +197,27 @@ files:
181
197
  homepage: http://www.shopify.com/partners/apps
182
198
  licenses:
183
199
  - MIT
200
+ metadata: {}
184
201
  post_install_message:
185
202
  rdoc_options:
186
203
  - --charset=UTF-8
187
204
  require_paths:
188
205
  - lib
189
206
  required_ruby_version: !ruby/object:Gem::Requirement
190
- none: false
191
207
  requirements:
192
208
  - - ! '>='
193
209
  - !ruby/object:Gem::Version
194
210
  version: '0'
195
211
  required_rubygems_version: !ruby/object:Gem::Requirement
196
- none: false
197
212
  requirements:
198
213
  - - ! '>='
199
214
  - !ruby/object:Gem::Version
200
215
  version: '0'
201
216
  requirements: []
202
217
  rubyforge_project:
203
- rubygems_version: 1.8.23
218
+ rubygems_version: 2.1.5
204
219
  signing_key:
205
- specification_version: 3
220
+ specification_version: 4
206
221
  summary: ShopifyAPI is a lightweight gem for accessing the Shopify admin REST web
207
222
  services
208
223
  test_files: []