marketplace-kit 0.1.4 → 0.2.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/.gitignore +1 -0
- data/.travis.yml +2 -1
- data/CONTRIBUTE_README.md +21 -0
- data/README.md +5 -1
- data/lib/marketplace_kit/commands/deploy.rb +49 -3
- data/lib/marketplace_kit/services/api_gateway.rb +23 -8
- data/lib/marketplace_kit/version.rb +1 -1
- data/marketplace_builder/custom_themes/default_custom_theme/foo.txt +1 -0
- data/marketplace_builder/custom_themes/default_custom_theme/foo_unchanged.txt +1 -0
- data/marketplace_builder/liquid_views/unchanged_file.liquid +0 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b630bebf9a893b0a57f93311ac7216fc8311f59
|
4
|
+
data.tar.gz: f708c27fa61ce7333c346836ef2c3afac9379a60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe9c3698a774033d0f64e8f8207ff80d300b350ae95296954d3dfaa38964bfdf6f8d488679175de9549319dd152030575e5d76f07e9ac1d04be12eb706eb5ba5
|
7
|
+
data.tar.gz: f5fb46f4e5951dff722b94d5cf78e55f7446427c06441aad4c05b4639076acb39e9030dacdf286531c3c08ed412d248bed57404bc49fc15938ab7c06ce555fb9
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
# MarketplaceKit contribute guide
|
2
|
+
How to develop, test and release new version of the gem
|
3
|
+
|
4
|
+
When setting new version to release, please read [SemVer](http://semver.org/).
|
5
|
+
|
6
|
+
## Test
|
7
|
+
|
8
|
+
rake spec
|
9
|
+
|
10
|
+
## Test locally
|
11
|
+
|
12
|
+
1. Change code
|
13
|
+
2. `gem build marketplace_kit.gemspec`
|
14
|
+
3. `gem install marketplace-kit-x.x.x.gem`
|
15
|
+
4. Run `marketplace-kit`
|
16
|
+
|
17
|
+
## Release
|
18
|
+
|
19
|
+
1. `gem build marketplace_kit.gemspec`
|
20
|
+
2. `gem push marketplace-kit-x.x.x.gem`
|
21
|
+
3. Create git tag `git tag vx.x.x; git push origin --tags`
|
data/README.md
CHANGED
@@ -47,4 +47,8 @@ All commands should be run in the marketplace directory (ie. `marketplace-nearme
|
|
47
47
|
|
48
48
|
## Contributing
|
49
49
|
|
50
|
-
|
50
|
+
[Contributing quick start](https://github.com/mdyd-dev/marketplace-kit/blob/master/CONTRIBUTE_README.md)
|
51
|
+
|
52
|
+
[Bug reports, feature requests](https://github.com/mdyd-dev/marketplace-kit/issues)
|
53
|
+
|
54
|
+
[Pull requests](https://github.com/mdyd-dev/marketplace-kit/pulls)
|
@@ -22,11 +22,21 @@ module MarketplaceKit
|
|
22
22
|
|
23
23
|
def zip_marketplace_builder_directory
|
24
24
|
system "rm #{Dir.getwd}/tmp/marketplace_builder.zip"
|
25
|
-
|
25
|
+
force_mode? ? zip_all_files : zip_files_without_old_assets
|
26
|
+
end
|
27
|
+
|
28
|
+
def zip_files_without_old_assets
|
29
|
+
files_path = changed_files.map { |path| path.gsub(%r{^\/}, '') }
|
30
|
+
File.open('tmp/files_to_zip.txt', 'w+') { |file| file.puts files_path }
|
31
|
+
system "cd #{MarketplaceKit::MARKETPLACE_BUILDER_FOLDER}; zip #{root}/tmp/marketplace_builder.zip -@ < #{root}/tmp/files_to_zip.txt"
|
32
|
+
end
|
33
|
+
|
34
|
+
def zip_all_files
|
35
|
+
system "cd #{MarketplaceKit::MARKETPLACE_BUILDER_FOLDER}; zip -r #{root}/tmp/marketplace_builder.zip ."
|
26
36
|
end
|
27
37
|
|
28
38
|
def send_zip_to_server
|
29
|
-
gateway.deploy("#{
|
39
|
+
gateway.deploy("#{root}/tmp/marketplace_builder.zip", force: force_mode?, manifest: manifest)
|
30
40
|
end
|
31
41
|
|
32
42
|
def wait_for_deploy(deploy_id)
|
@@ -54,9 +64,45 @@ module MarketplaceKit
|
|
54
64
|
end
|
55
65
|
end
|
56
66
|
|
57
|
-
def
|
67
|
+
def force_mode?
|
58
68
|
(@command_args & ['--force', '-f']).any?
|
59
69
|
end
|
70
|
+
|
71
|
+
def manifest
|
72
|
+
Dir.glob("marketplace_builder/**/*")
|
73
|
+
.select { |path| File.file?(path) }
|
74
|
+
.map { |path| [path.gsub('marketplace_builder', ''), { 'md5' => Digest::MD5.hexdigest(File.read(path)) }] }
|
75
|
+
.to_h
|
76
|
+
end
|
77
|
+
|
78
|
+
def root
|
79
|
+
Dir.getwd
|
80
|
+
end
|
81
|
+
|
82
|
+
def changed_files
|
83
|
+
ListChangedFiles.new(manifest, gateway.settings.body).call.keys
|
84
|
+
end
|
85
|
+
|
86
|
+
class ListChangedFiles
|
87
|
+
def initialize(manifest, settings)
|
88
|
+
@manifest = manifest
|
89
|
+
@settings = settings
|
90
|
+
end
|
91
|
+
|
92
|
+
def call
|
93
|
+
@manifest.reject do |path, meta|
|
94
|
+
path.start_with?('/custom_themes/') &&
|
95
|
+
manifest_on_server[path] &&
|
96
|
+
manifest_on_server[path]['md5'] == meta['md5']
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
private
|
101
|
+
|
102
|
+
def manifest_on_server
|
103
|
+
@manifest_on_server ||= @settings['manifest']
|
104
|
+
end
|
105
|
+
end
|
60
106
|
end
|
61
107
|
end
|
62
108
|
end
|
@@ -2,39 +2,54 @@ module MarketplaceKit
|
|
2
2
|
module Services
|
3
3
|
class ApiGateway
|
4
4
|
def login(email, password)
|
5
|
-
response =
|
5
|
+
response = send_request(:post, 'sessions', email: email, password: password)
|
6
6
|
raise Errors::MarketplaceError.new('Error: Invalid email or password!') if response.status == 401
|
7
7
|
|
8
8
|
response.body['token']
|
9
9
|
end
|
10
10
|
|
11
11
|
def login_required?
|
12
|
-
response =
|
12
|
+
response = send_request(:get, "sessions?temporary_token=#{MarketplaceKit.config.token}")
|
13
13
|
raise Errors::MarketplaceError.new('Login failed.') unless response.success?
|
14
14
|
|
15
15
|
response.body['login_required']
|
16
16
|
end
|
17
17
|
|
18
18
|
def send_file_change(file_path, file_content)
|
19
|
-
|
19
|
+
send_request(:put, 'marketplace_releases/sync', path: file_path, marketplace_builder_file_body: file_content)
|
20
20
|
end
|
21
21
|
|
22
22
|
def get_deploy(deploy_id)
|
23
|
-
|
23
|
+
send_request(:get, "marketplace_releases/#{deploy_id}")
|
24
24
|
end
|
25
25
|
|
26
|
-
def deploy(zip_file_path,
|
26
|
+
def deploy(zip_file_path, force:, manifest:)
|
27
27
|
upload_file = Faraday::UploadIO.new(zip_file_path, 'application/zip')
|
28
|
-
|
28
|
+
send_request(
|
29
|
+
:post,
|
30
|
+
'marketplace_releases',
|
31
|
+
{
|
32
|
+
marketplace_builder: {
|
33
|
+
zip_file: upload_file,
|
34
|
+
force_mode: force,
|
35
|
+
manifest: manifest
|
36
|
+
}
|
37
|
+
},
|
38
|
+
multipart: true
|
39
|
+
)
|
29
40
|
end
|
30
41
|
|
31
42
|
def backup
|
32
|
-
|
43
|
+
send_request(:post, 'marketplace_releases/backup', {})
|
44
|
+
end
|
45
|
+
|
46
|
+
def settings
|
47
|
+
send_request(:get, 'settings')
|
33
48
|
end
|
34
49
|
|
35
50
|
private
|
36
51
|
|
37
|
-
def
|
52
|
+
def send_request(request_type, url, body = {}, options = {})
|
38
53
|
ApiDriver.new(request_type, url, body, options).send_request
|
39
54
|
end
|
40
55
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
foo
|
@@ -0,0 +1 @@
|
|
1
|
+
foo unchanged
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marketplace-kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michal Janeczek
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -189,6 +189,7 @@ files:
|
|
189
189
|
- ".gitignore"
|
190
190
|
- ".rspec"
|
191
191
|
- ".travis.yml"
|
192
|
+
- CONTRIBUTE_README.md
|
192
193
|
- Gemfile
|
193
194
|
- README.md
|
194
195
|
- Rakefile
|
@@ -213,7 +214,10 @@ files:
|
|
213
214
|
- lib/marketplace_kit/version.rb
|
214
215
|
- marketplace_builder/.builder
|
215
216
|
- marketplace_builder/.builder-autogenerated
|
217
|
+
- marketplace_builder/custom_themes/default_custom_theme/foo.txt
|
218
|
+
- marketplace_builder/custom_themes/default_custom_theme/foo_unchanged.txt
|
216
219
|
- marketplace_builder/liquid_views/index.liquid
|
220
|
+
- marketplace_builder/liquid_views/unchanged_file.liquid
|
217
221
|
- marketplace_kit.gemspec
|
218
222
|
homepage: https://marketplaceplatform.com
|
219
223
|
licenses: []
|
@@ -235,7 +239,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
235
239
|
version: '0'
|
236
240
|
requirements: []
|
237
241
|
rubyforge_project:
|
238
|
-
rubygems_version: 2.6.
|
242
|
+
rubygems_version: 2.6.14
|
239
243
|
signing_key:
|
240
244
|
specification_version: 4
|
241
245
|
summary: Marketplace Kit
|