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
         
     |