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
|