shopifly 0.2.0 → 0.3.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/shopifly.rb +1 -0
- data/lib/shopifly/cli.rb +7 -3
- data/lib/shopifly/config.rb +33 -0
- data/lib/shopifly/syncer.rb +14 -32
- data/lib/shopifly/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35e1412518c1e2f72097e2e779189b1b840dfab15c779e7d02089a6e09bff16f
|
4
|
+
data.tar.gz: 1d7c8ac7401c9574ddbd8baf5c4fc8a2666eb0f616f8c4cbd25edf887ad80a81
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91cfcd4db6f2e6bbee87c4df7d7a422edcea7bbe8eccbf0a973d58195ab76b430c7393c815b484138eaf1aae53c80c9e3cbafe2eda16314b509265a9bf712899
|
7
|
+
data.tar.gz: bed39267384acb6df58391c6aabc389ea634a0aee3e67f8106390854ef9eea0cbe1e51b4a351c2de07c547b2f1ad015e20b75975d754451ed15e650960027b46
|
data/Gemfile.lock
CHANGED
data/lib/shopifly.rb
CHANGED
data/lib/shopifly/cli.rb
CHANGED
@@ -29,17 +29,21 @@ module Shopifly
|
|
29
29
|
|
30
30
|
desc "open", "open the current theme in the browser"
|
31
31
|
def open
|
32
|
-
|
32
|
+
`theme open`
|
33
33
|
end
|
34
34
|
|
35
35
|
desc "themes", "open the themes view for the current store"
|
36
36
|
def themes
|
37
|
-
|
37
|
+
config = Shopifly::Config.new
|
38
|
+
site = config.store_url
|
39
|
+
`open "https://#{site}/admin/themes"`
|
38
40
|
end
|
39
41
|
|
40
42
|
desc "apps", "open the apps view for the current store"
|
41
43
|
def apps
|
42
|
-
|
44
|
+
config = Shopifly::Config.new
|
45
|
+
site = config.store_url
|
46
|
+
`open "https://#{site}/admin/apps"`
|
43
47
|
end
|
44
48
|
|
45
49
|
desc "init", "initialize with defaults"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Shopifly
|
2
|
+
class Config
|
3
|
+
attr_reader :current_branch, :shared_config, :store_url, :store_config, :deploy_command, :password
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
file = File.read("config.stores.yml")
|
7
|
+
config = YAML.safe_load(file)
|
8
|
+
|
9
|
+
current_store = File.read(".current_store").strip
|
10
|
+
@store_config = config["stores"][current_store]
|
11
|
+
store = store_config["store"]
|
12
|
+
|
13
|
+
@shared_config = config["shared_config"]
|
14
|
+
@deploy_command = @shared_config["deploy_command"]
|
15
|
+
@current_branch = `git branch | grep \\* | cut -d ' ' -f2`.strip
|
16
|
+
@password = store_config["password"]
|
17
|
+
@store_url = "#{store}.myshopify.com"
|
18
|
+
|
19
|
+
api_key = store_config["api_key"]
|
20
|
+
api_version = "2019-10"
|
21
|
+
|
22
|
+
set_shopify_api(api_key, api_version, @password, @store_url)
|
23
|
+
end
|
24
|
+
|
25
|
+
def set_shopify_api(api_key, api_version, password, store_url)
|
26
|
+
shop_url = "https://#{api_key}:#{password}@#{store_url}"
|
27
|
+
ShopifyAPI::Base.api_version = api_version
|
28
|
+
ShopifyAPI::Base.site = shop_url
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
data/lib/shopifly/syncer.rb
CHANGED
@@ -5,27 +5,9 @@ require "pry"
|
|
5
5
|
module Shopifly
|
6
6
|
class Syncer
|
7
7
|
def initialize
|
8
|
-
|
9
|
-
@
|
10
|
-
|
11
|
-
@shared_config = @config["shared_config"]
|
12
|
-
@deploy_command = @shared_config["deploy_command"]
|
13
|
-
@current_store = File.read(".current_store").strip
|
14
|
-
@current_branch = `git branch | grep \\* | cut -d ' ' -f2`.strip
|
15
|
-
store_config = @config["stores"][@current_store]
|
16
|
-
api_key = store_config["api_key"]
|
17
|
-
@password = store_config["password"]
|
18
|
-
store = store_config["store"]
|
19
|
-
@store_url = "#{store}.myshopify.com"
|
20
|
-
@api_version = "2019-10"
|
21
|
-
|
22
|
-
set_shopify_api(api_key, @password, @store_url)
|
23
|
-
end
|
24
|
-
|
25
|
-
def set_shopify_api(api_key, password, store_url)
|
26
|
-
shop_url = "https://#{api_key}:#{password}@#{store_url}"
|
27
|
-
ShopifyAPI::Base.api_version = @api_version
|
28
|
-
ShopifyAPI::Base.site = shop_url
|
8
|
+
@config = Shopifly::Config.new
|
9
|
+
@store_config = @config.store_config
|
10
|
+
@shared_config = @config.shared_config
|
29
11
|
end
|
30
12
|
|
31
13
|
def sync
|
@@ -34,12 +16,12 @@ module Shopifly
|
|
34
16
|
themes_array = ShopifyAPI::Theme.find(:all)
|
35
17
|
|
36
18
|
current_theme = themes_array.select do |theme|
|
37
|
-
theme.attributes["name"] == @current_branch
|
19
|
+
theme.attributes["name"] == @config.current_branch
|
38
20
|
end.first
|
39
21
|
|
40
22
|
if current_theme.nil?
|
41
23
|
p "Theme doesn't exist, creating..."
|
42
|
-
current_theme = create_theme(@current_branch)
|
24
|
+
current_theme = create_theme(@config.current_branch)
|
43
25
|
|
44
26
|
if current_theme.errors.present?
|
45
27
|
return p "Errors: #{current_theme.errors.first}"
|
@@ -49,7 +31,7 @@ module Shopifly
|
|
49
31
|
deploy_theme if set_config_for(current_theme, true)
|
50
32
|
end
|
51
33
|
else
|
52
|
-
p "Theme already exists: #{@current_branch}, #{@store_url}"
|
34
|
+
p "Theme already exists: #{@config.current_branch}, #{@config.store_url}"
|
53
35
|
if with_settings
|
54
36
|
with_settings_json(current_theme, default_theme) do
|
55
37
|
set_config_for(current_theme, false)
|
@@ -62,7 +44,7 @@ module Shopifly
|
|
62
44
|
|
63
45
|
def deploy_theme
|
64
46
|
p "Uploading theme!"
|
65
|
-
system @deploy_command
|
47
|
+
system @config.deploy_command
|
66
48
|
end
|
67
49
|
|
68
50
|
def with_settings_json(current_theme, default_theme)
|
@@ -116,33 +98,33 @@ module Shopifly
|
|
116
98
|
end
|
117
99
|
|
118
100
|
def set_config_for(theme, allow_config_override = false)
|
119
|
-
p "Setting config to point to #{theme.attributes[:name]}, #{@store_url}"
|
101
|
+
p "Setting config to point to #{theme.attributes[:name]}, #{@config.store_url}"
|
120
102
|
|
121
103
|
ignore_files = allow_config_override ? "[]" : @shared_config["ignore_files"]
|
122
104
|
|
123
105
|
File.open("config.yml", "w") do |file|
|
124
106
|
file.write <<~CONFIG
|
125
107
|
build:
|
126
|
-
password: #{@password}
|
108
|
+
password: #{@config.password}
|
127
109
|
theme_name: "#{theme.attributes[:name]}"
|
128
110
|
theme_id: #{theme.attributes[:id]}
|
129
|
-
store: #{@store_url}
|
111
|
+
store: #{@config.store_url}
|
130
112
|
directory: #{@shared_config['directory']}
|
131
113
|
ignore_files: #{ignore_files}
|
132
114
|
|
133
115
|
development:
|
134
|
-
password: #{@password}
|
116
|
+
password: #{@config.password}
|
135
117
|
theme_name: "#{theme.attributes[:name]}"
|
136
118
|
theme_id: #{theme.attributes[:id]}
|
137
|
-
store: #{@store_url}
|
119
|
+
store: #{@config.store_url}
|
138
120
|
directory: #{@shared_config['directory']}
|
139
121
|
ignore_files: #{ignore_files}
|
140
122
|
|
141
123
|
production:
|
142
|
-
password: #{@password}
|
124
|
+
password: #{@config.password}
|
143
125
|
theme_name: "#{theme.attributes[:name]}"
|
144
126
|
theme_id: #{theme.attributes[:id]}
|
145
|
-
store: #{@store_url}
|
127
|
+
store: #{@config.store_url}
|
146
128
|
directory: #{@shared_config['directory']}
|
147
129
|
ignore_files: #{ignore_files}
|
148
130
|
CONFIG
|
data/lib/shopifly/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shopifly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lee Pender
|
@@ -137,6 +137,7 @@ files:
|
|
137
137
|
- exe/shopifly
|
138
138
|
- lib/shopifly.rb
|
139
139
|
- lib/shopifly/cli.rb
|
140
|
+
- lib/shopifly/config.rb
|
140
141
|
- lib/shopifly/syncer.rb
|
141
142
|
- lib/shopifly/version.rb
|
142
143
|
- shopifly.gemspec
|