magentify 0.0.7 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e107e22d07025ba95e1ed3863f60cd9a5dc77bb1
4
- data.tar.gz: 232e33f75ee3a5663479163770d3d43fff400e18
3
+ metadata.gz: ff1bbb842425d3bd571adef51ad8e4af5a411e20
4
+ data.tar.gz: 199537934883fe2bff97168737b672a240917838
5
5
  SHA512:
6
- metadata.gz: 2fea9054b8aeccb8cc0798585cf3306977bd451ab77b09cf4abae2d7f757c6da6a3724a3f6684a8fe08a9509131e364b02d0707299ae83dff731db78213972d5
7
- data.tar.gz: 94f4743283f9a2861ff85d8aaef514b7e665438ed850c39dd0b12a6ae79eccaed8e85e2cb548e0527e807a4c6d958a5bfa1a5f8e476631bd344b2fcb36779e5a
6
+ metadata.gz: 0eb3423862443d9bc3e7ad27bef7057bc5324658aec8db61a13710a55845c32f28e22797719a8e135bb5af3f783be8d361f7aa3ca92e6d8f95525215a4a2791c
7
+ data.tar.gz: ca2953d1cd268bc8260061f3c866ca1957151329474441578355ec2acd2f6050757eafe364f625af7ca5c3358850c5fabeba42d2745fa4b71c1f94f9fc01da66
@@ -0,0 +1,20 @@
1
+ Feature: Files
2
+ In order to test the app with production medias
3
+ As a developer
4
+ I want to pull (and push) medias assets from production server to my local machine
5
+
6
+ Scenario: User runs $ mages:files:pull
7
+ Given an app
8
+ When I execute deploy
9
+ Then Magento create some assets in media
10
+ And I create some assets locally
11
+ And I execute files:pull
12
+ Then the local media directory should be synced
13
+
14
+ Scenario: User runs $ mages:files:push
15
+ Given an app
16
+ When I execute deploy
17
+ Then I create some assets locally
18
+ And Magento create some assets in media
19
+ And I execute files:push
20
+ Then the remote media directory should be synced
@@ -36,7 +36,7 @@ Given /^an app$/ do
36
36
  template_path = File.expand_path(File.join(__FILE__, "..", "..", "templates", "deploy.erb"))
37
37
  compiled_template = ERB.new(File.read(template_path)).result(binding)
38
38
 
39
- File.open(File.join(@src_dir, "config", "deploy.rb"), 'w') {|f|
39
+ File.open(File.join(@src_dir, "config", "deploy.rb"), 'w') {|f|
40
40
  f.write compiled_template
41
41
  }
42
42
  end
@@ -0,0 +1,43 @@
1
+ When(/^I execute files:pull$/) do
2
+ Dir.chdir(@src_dir) do
3
+ @out = %x[cap mage:files:pull > /dev/null 2>&1]
4
+ end
5
+ end
6
+
7
+ Then(/^I execute files:push$/) do
8
+ Dir.chdir(@src_dir) do
9
+ @out = %x[cap mage:files:push > /dev/null 2>&1]
10
+ end
11
+ end
12
+
13
+ Then(/^Magento create some assets in media$/) do
14
+ File.open(File.join(@test_files_dir, "deployed", "current", "media", "asset1.jpg"), 'w') {|f|
15
+ f.write "asset1"
16
+ }
17
+ File.open(File.join(@test_files_dir, "deployed", "current", "media", "asset2.jpg"), 'w') {|f|
18
+ f.write "asset2"
19
+ }
20
+ end
21
+
22
+ Then(/^I create some assets locally$/) do
23
+ File.open(File.join(@src_dir, "media", "asset3.jpg"), 'w') {|f|
24
+ f.write "asset3"
25
+ }
26
+ end
27
+
28
+
29
+ Then(/^the local media directory should be synced$/) do
30
+ nb_files = Dir[File.join(@src_dir, "media", '**', '*')].count { |file| File.file?(file) }
31
+
32
+ nb_files.should == 3
33
+ File.exists?(File.join(@src_dir, "media", "asset1.jpg")).should be_true
34
+ File.exists?(File.join(@src_dir, "media", "asset2.jpg")).should be_true
35
+ File.exists?(File.join(@src_dir, "media", "asset3.jpg")).should be_true
36
+ end
37
+
38
+ Then(/^the remote media directory should be synced$/) do
39
+ nb_files = Dir[File.join(@test_files_dir, "deployed", "current", "media", '**', '*')].count { |file| File.file?(file) }
40
+
41
+ nb_files.should == 1
42
+ File.exists?(File.join(@test_files_dir, "deployed", "current", "media", "asset3.jpg")).should be_true
43
+ end
@@ -18,4 +18,6 @@ set :use_sudo, false
18
18
 
19
19
  set :app_symlinks, ["/media", "/var", "/sitemaps", "/staging"]
20
20
  set :app_shared_dirs, ["/app/etc", "/sitemaps", "/media", "/var", "/staging"]
21
- set :app_shared_files, ["/app/etc/local.xml"]
21
+ set :app_shared_files, ["/app/etc/local.xml"]
22
+
23
+ set :interactive_mode, false
@@ -16,6 +16,8 @@ _cset(:app_shared_files) {
16
16
 
17
17
  _cset :compile, false
18
18
  _cset :app_webroot, ''
19
+ _cset :app_relative_media_dir, 'media/'
20
+ _cset :interactive_mode, true
19
21
 
20
22
  namespace :mage do
21
23
  desc <<-DESC
@@ -121,8 +123,34 @@ namespace :mage do
121
123
  task :clean_log, :roles => [:web, :app] do
122
124
  run "cd #{current_path}#{app_webroot}/shell && php -f log.php -- clean"
123
125
  end
126
+
127
+ namespace :files do
128
+ desc <<-DESC
129
+ Pull magento media catalog files (from remote to local with rsync)
130
+ DESC
131
+ task :pull, :roles => :app, :except => { :no_release => true } do
132
+ remote_files_dir = "#{current_path}#{app_webroot}/#{app_relative_media_dir}"
133
+ local_files_dir = app_relative_media_dir
134
+ first_server = find_servers_for_task(current_task).first
135
+
136
+ run_locally("rsync --recursive --times --rsh=ssh --compress --human-readable --progress #{user}@#{first_server.host}:#{remote_files_dir} #{local_files_dir}")
137
+ end
138
+
139
+ desc <<-DESC
140
+ Push magento media catalog files (from local to remote)
141
+ DESC
142
+ task :push, :roles => :app, :except => { :no_release => true } do
143
+ remote_files_dir = "#{current_path}#{app_webroot}/#{app_relative_media_dir}"
144
+ local_files_dir = app_relative_media_dir
145
+ first_server = find_servers_for_task(current_task).first
146
+
147
+ if !interactive_mode || Capistrano::CLI.ui.agree("Do you really want to replace remote files by local files? (y/N)")
148
+ run_locally("rsync --recursive --times --rsh=ssh --compress --human-readable --progress --delete #{local_files_dir} #{user}@#{first_server.host}:#{remote_files_dir}")
149
+ end
150
+ end
151
+ end
124
152
  end
125
153
 
126
154
  after 'deploy:setup', 'mage:setup'
127
155
  after 'deploy:finalize_update', 'mage:finalize_update'
128
- after 'deploy:create_symlink', 'mage:compiler'
156
+ after 'deploy:create_symlink', 'mage:compiler'
@@ -1,3 +1,3 @@
1
1
  module Magentify
2
- VERSION = "0.0.7"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -39,14 +39,6 @@ namespace :deploy do
39
39
  # do nothing for non rails apps
40
40
  end
41
41
 
42
- desc <<-DESC
43
- [Overload] Default actions cancelled.
44
- DESC
45
- task :migrations do
46
- set :migrate_target, :latest
47
- # // do nothing for non rails apps
48
- end
49
-
50
42
  desc <<-DESC
51
43
  [Overload] Default actions only calls 'update'.
52
44
  DESC
metadata CHANGED
@@ -1,61 +1,61 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: magentify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alistair Stead
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-03 00:00:00.000000000 Z
11
+ date: 2014-06-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: capistrano
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 2.5.10
20
- - - ~>
20
+ - - "~>"
21
21
  - !ruby/object:Gem::Version
22
22
  version: '2'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - '>='
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 2.5.10
30
- - - ~>
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: '2'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: cucumber
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - '>='
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  type: :development
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
- - - '>='
44
+ - - ">="
45
45
  - !ruby/object:Gem::Version
46
46
  version: '0'
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
49
  requirement: !ruby/object:Gem::Requirement
50
50
  requirements:
51
- - - '>='
51
+ - - ">="
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
54
  type: :development
55
55
  prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
57
  requirements:
58
- - - '>='
58
+ - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: '0'
61
61
  description: An extension to Capistrano to deploy Magento. Adding the specific requirements
@@ -67,7 +67,7 @@ executables:
67
67
  extensions: []
68
68
  extra_rdoc_files: []
69
69
  files:
70
- - .gitignore
70
+ - ".gitignore"
71
71
  - Gemfile
72
72
  - LICENSE
73
73
  - README.md
@@ -76,6 +76,7 @@ files:
76
76
  - cucumber.yml
77
77
  - features/compiler.feature
78
78
  - features/deploy.feature
79
+ - features/files.feature
79
80
  - features/indexer.feature
80
81
  - features/log.feature
81
82
  - features/magentify.feature
@@ -83,6 +84,7 @@ files:
83
84
  - features/step_definitions/common_steps.rb
84
85
  - features/step_definitions/compiler_steps.rb
85
86
  - features/step_definitions/deploy_steps.rb
87
+ - features/step_definitions/files_steps.rb
86
88
  - features/step_definitions/indexer_steps.rb
87
89
  - features/step_definitions/log_steps.rb
88
90
  - features/step_definitions/magentify_steps.rb
@@ -105,23 +107,24 @@ require_paths:
105
107
  - lib
106
108
  required_ruby_version: !ruby/object:Gem::Requirement
107
109
  requirements:
108
- - - '>='
110
+ - - ">="
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0'
111
113
  required_rubygems_version: !ruby/object:Gem::Requirement
112
114
  requirements:
113
- - - '>='
115
+ - - ">="
114
116
  - !ruby/object:Gem::Version
115
117
  version: '0'
116
118
  requirements: []
117
119
  rubyforge_project:
118
- rubygems_version: 2.0.3
120
+ rubygems_version: 2.2.0
119
121
  signing_key:
120
122
  specification_version: 4
121
123
  summary: Deploying Magento PHP applications with Capistrano.
122
124
  test_files:
123
125
  - features/compiler.feature
124
126
  - features/deploy.feature
127
+ - features/files.feature
125
128
  - features/indexer.feature
126
129
  - features/log.feature
127
130
  - features/magentify.feature
@@ -129,6 +132,7 @@ test_files:
129
132
  - features/step_definitions/common_steps.rb
130
133
  - features/step_definitions/compiler_steps.rb
131
134
  - features/step_definitions/deploy_steps.rb
135
+ - features/step_definitions/files_steps.rb
132
136
  - features/step_definitions/indexer_steps.rb
133
137
  - features/step_definitions/log_steps.rb
134
138
  - features/step_definitions/magentify_steps.rb