shopify_theme 0.0.24 → 0.0.25

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,9 @@
1
1
  require 'httparty'
2
2
  module ShopifyTheme
3
+ REMOTE_CERT_FILE = 'http://curl.haxx.se/ca/cacert.pem'
4
+ CA_CERT_FILE = File.expand_path(File.dirname(__FILE__) + '/certs/cacert.pem')
3
5
  include HTTParty
6
+ ssl_ca_file CA_CERT_FILE
4
7
  @@current_api_call_count = 0
5
8
  @@total_api_calls = 40
6
9
 
@@ -169,8 +169,10 @@ module ShopifyTheme
169
169
  puts "Watching current folder: #{Dir.pwd}"
170
170
  watcher do |filename, event|
171
171
  filename = filename.gsub("#{Dir.pwd}/", '')
172
-
173
- action = if [:changed, :new].include?(event) && local_assets_list.include?(filename)
172
+
173
+ next unless local_assets_list.include?(filename)
174
+
175
+ action = if [:changed, :new].include?(event)
174
176
  :send_asset
175
177
  elsif event == :delete && !options['keep_files']
176
178
  :delete_asset
@@ -194,11 +196,13 @@ module ShopifyTheme
194
196
  end
195
197
  end
196
198
 
197
- def local_assets_list
198
- FileFilters.new(
199
- Filters::Whitelist.new(ShopifyTheme.whitelist_files),
200
- Filters::Blacklist.new(ShopifyTheme.ignore_files)
201
- ).select(local_files)
199
+ no_commands do
200
+ def local_assets_list
201
+ FileFilters.new(
202
+ Filters::Whitelist.new(ShopifyTheme.whitelist_files),
203
+ Filters::Blacklist.new(ShopifyTheme.ignore_files)
204
+ ).select(local_files)
205
+ end
202
206
  end
203
207
 
204
208
  protected
@@ -1,3 +1,3 @@
1
1
  module ShopifyTheme
2
- VERSION = "0.0.24"
2
+ VERSION = "0.0.25"
3
3
  end
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+ require 'shopify_theme'
3
+ require 'net/http'
4
+ require 'uri'
5
+ require 'digest'
6
+
7
+ module Smoke
8
+ describe "CA Certificate Validity" do
9
+ before do
10
+ WebMock.disable!
11
+ unless ENV['VERIFY_CERT']
12
+ puts "Not testing CA certificates unless VERIFY_CERT variable is set"
13
+ skip
14
+ end
15
+ end
16
+
17
+ after do
18
+ WebMock.enable!
19
+ end
20
+
21
+ it "verifies that the local certificate matches with that on haxx.se" do
22
+ assert_equal digest(local_file), digest(remote_file)
23
+ end
24
+
25
+ def local_file
26
+ File.read(ShopifyTheme::CA_CERT_FILE)
27
+ end
28
+
29
+ def remote_file
30
+ cert_uri = URI(ShopifyTheme::REMOTE_CERT_FILE)
31
+ response = Net::HTTP.get_response(cert_uri)
32
+ if response.code == '200'
33
+ response.body
34
+ else
35
+ flunk "Could not connect to #{cert_uri}. Verify that certificate is still hosted."
36
+ end
37
+ end
38
+
39
+ def digest(message)
40
+ Digest::MD5.hexdigest(message)
41
+ end
42
+ end
43
+ end
@@ -5,7 +5,7 @@ require 'shopify_theme/filters/blacklist'
5
5
  module ShopifyTheme
6
6
  module Filters
7
7
  describe "Blacklist" do
8
- TEST_PATHS = %w(
8
+ BLACKLIST_TEST_PATHS = %w(
9
9
  settings.html
10
10
  config/item1.html
11
11
  config/item2.html
@@ -19,12 +19,12 @@ module ShopifyTheme
19
19
 
20
20
  it "should return the entire list back if initialized with no patterns" do
21
21
  blacklist = Blacklist.new
22
- assert_equal TEST_PATHS, blacklist.select(TEST_PATHS)
22
+ assert_equal BLACKLIST_TEST_PATHS, blacklist.select(BLACKLIST_TEST_PATHS)
23
23
  end
24
24
 
25
25
  it "should return everything except for the items that matched the pattern" do
26
26
  blacklist = Blacklist.new(%w(config/* settings.html assets/* templates/* snippets/*))
27
- assert_equal %w(layout/thing1.html), blacklist.select(TEST_PATHS)
27
+ assert_equal %w(layout/thing1.html), blacklist.select(BLACKLIST_TEST_PATHS)
28
28
  end
29
29
 
30
30
  end
@@ -4,7 +4,7 @@ require 'shopify_theme/filters/whitelist'
4
4
  module ShopifyTheme
5
5
  module Filters
6
6
  describe "Whitelist" do
7
- TEST_PATHS = %w(
7
+ WHITELIST_TEST_PATHS = %w(
8
8
  settings.html
9
9
  config/item1.html
10
10
  config/item2.html
@@ -28,13 +28,13 @@ module ShopifyTheme
28
28
  templates/thing2.html
29
29
  snippets/fancy.liquid
30
30
  )
31
- assert_equal expected, whitelist.select(TEST_PATHS)
31
+ assert_equal expected, whitelist.select(WHITELIST_TEST_PATHS)
32
32
  end
33
33
 
34
34
  it "should ignore the default 1+ whitelists were provided" do
35
35
  whitelist = Whitelist.new %w(settings.html config/item1.html config/item2.html config/item3.html layout/ templates/)
36
36
  expected = %w(settings.html config/item1.html config/item2.html config/item3.html layout/thing1.html templates/thing2.html)
37
- assert_equal expected, whitelist.select(TEST_PATHS)
37
+ assert_equal expected, whitelist.select(WHITELIST_TEST_PATHS)
38
38
  end
39
39
  end
40
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify_theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
4
+ version: 0.0.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Duff
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-02 00:00:00.000000000 Z
11
+ date: 2015-09-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -171,6 +171,7 @@ files:
171
171
  - bin/theme
172
172
  - doc/API-key-and-password.jpg
173
173
  - doc/how_to_find_theme_id.png
174
+ - lib/certs/cacert.pem
174
175
  - lib/shopify_theme.rb
175
176
  - lib/shopify_theme/api_checker.rb
176
177
  - lib/shopify_theme/cli.rb
@@ -186,6 +187,7 @@ files:
186
187
  - spec/cassettes/api_check_success.yml
187
188
  - spec/cassettes/api_check_unauthorized.yml
188
189
  - spec/cassettes/timber_releases.yml
190
+ - spec/smoke/ca_cert_spec.rb
189
191
  - spec/spec_helper.rb
190
192
  - spec/unit/api_checker_spec.rb
191
193
  - spec/unit/cli_spec.rb