zip_dsl 1.2.0 → 1.3.1
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 +15 -0
- data/.gitignore +1 -0
- data/.idea/misc.xml +1 -1
- data/.idea/workspace.xml +150 -151
- data/.idea/zip_dsl.iml +12 -13
- data/.ruby-version +1 -1
- data/CHANGES +9 -1
- data/Gemfile +2 -3
- data/Rakefile +16 -9
- data/lib/zip_dsl/version.rb +2 -2
- data/lib/zip_dsl/zip_dsl.rb +27 -17
- data/lib/zip_dsl/zip_reader.rb +2 -2
- data/lib/zip_dsl/zip_updater.rb +4 -4
- data/lib/zip_dsl/zip_writer.rb +5 -4
- data/spec/{zip_builder_spec.rb → zip_dsl_spec.rb} +12 -4
- data/zip_dsl.gemspec +2 -2
- data/zip_dsl.gemspec.erb +1 -1
- metadata +7 -37
- data/lib/directory_builder.rb +0 -105
- data/spec/directory_builder_spec.rb +0 -81
- data/test.zip +0 -0
data/.idea/zip_dsl.iml
CHANGED
@@ -13,19 +13,18 @@
|
|
13
13
|
<content url="file://$MODULE_DIR$" />
|
14
14
|
<orderEntry type="inheritedJdk" />
|
15
15
|
<orderEntry type="sourceFolder" forTests="false" />
|
16
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.3.
|
17
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.
|
18
|
-
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.
|
19
|
-
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-
|
20
|
-
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.
|
21
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
22
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
23
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
24
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec (v2.
|
25
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-
|
26
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-
|
27
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
28
|
-
<orderEntry type="library" scope="PROVIDED" name="zip (v2.0.2, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
|
16
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.3.5, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
17
|
+
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.4, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
18
|
+
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.7, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
19
|
+
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
20
|
+
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.1.2, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
21
|
+
<orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.1, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
22
|
+
<orderEntry type="library" scope="PROVIDED" name="mocha (v0.14.0, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
23
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec (v2.14.1, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
24
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.14.5, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
25
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.14.3, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
26
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v2.14.3, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
27
|
+
<orderEntry type="library" scope="PROVIDED" name="zip (v2.0.2, RVM: ruby-1.9.3-p448 [zip_dsl]) [gem]" level="application" />
|
29
28
|
</component>
|
30
29
|
</module>
|
31
30
|
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
1.9.3
|
data/CHANGES
CHANGED
data/Gemfile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
|
3
3
|
group :default do
|
4
|
-
gem "meta_methods"
|
5
4
|
gem "zip"
|
6
5
|
gem "file_utils"
|
7
6
|
end
|
@@ -12,6 +11,6 @@ group :development do
|
|
12
11
|
end
|
13
12
|
|
14
13
|
group :test do
|
15
|
-
gem "rspec"
|
16
|
-
gem "mocha"
|
14
|
+
gem "rspec"
|
15
|
+
gem "mocha"
|
17
16
|
end
|
data/Rakefile
CHANGED
@@ -6,19 +6,16 @@ require "rspec/core/rake_task"
|
|
6
6
|
require "zip_dsl/version"
|
7
7
|
require "gemspec_deps_gen/gemspec_deps_gen"
|
8
8
|
|
9
|
-
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
def project_name
|
14
|
-
File.basename(Dir.pwd)
|
15
|
-
end
|
9
|
+
version = ZipDSL::VERSION
|
10
|
+
project_name = File.basename(Dir.pwd)
|
16
11
|
|
17
|
-
task :
|
12
|
+
task :gen do
|
18
13
|
generator = GemspecDepsGen.new
|
19
14
|
|
20
|
-
generator.generate_dependencies "#{project_name}.gemspec.erb", "#{project_name}.gemspec"
|
15
|
+
generator.generate_dependencies "spec", "#{project_name}.gemspec.erb", "#{project_name}.gemspec"
|
16
|
+
end
|
21
17
|
|
18
|
+
task :build => :gen do
|
22
19
|
system "gem build #{project_name}.gemspec"
|
23
20
|
end
|
24
21
|
|
@@ -26,6 +23,10 @@ task :install do
|
|
26
23
|
system "gem install #{project_name}-#{version}.gem"
|
27
24
|
end
|
28
25
|
|
26
|
+
task :uninstall do
|
27
|
+
system "gem uninstall #{project_name}"
|
28
|
+
end
|
29
|
+
|
29
30
|
task :release => :build do
|
30
31
|
system "gem push #{project_name}-#{version}.gem"
|
31
32
|
end
|
@@ -34,3 +35,9 @@ RSpec::Core::RakeTask.new do |task|
|
|
34
35
|
task.pattern = 'spec/**/*_spec.rb'
|
35
36
|
task.verbose = false
|
36
37
|
end
|
38
|
+
|
39
|
+
task :fix_debug do
|
40
|
+
system "mkdir -p $GEM_HOME/gems/debugger-ruby_core_source-1.2.3/lib"
|
41
|
+
system "cp -R ~/debugger-ruby_core_source/lib $GEM_HOME/gems/debugger-ruby_core_source-1.2.3"
|
42
|
+
end
|
43
|
+
|
data/lib/zip_dsl/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = "1.
|
1
|
+
class ZipDSL
|
2
|
+
VERSION = "1.3.1"
|
3
3
|
end
|
data/lib/zip_dsl/zip_dsl.rb
CHANGED
@@ -1,56 +1,66 @@
|
|
1
|
-
require 'meta_methods'
|
2
|
-
|
3
1
|
class ZipDSL
|
4
|
-
|
2
|
+
attr_reader :from_root, :to_root, :name
|
5
3
|
|
6
|
-
|
4
|
+
def initialize from_root, to_root, name
|
5
|
+
@from_root = File.expand_path(from_root)
|
6
|
+
@to_root = File.expand_path(to_root)
|
7
|
+
@name = name
|
7
8
|
|
8
|
-
|
9
|
-
@name = File.expand_path(name)
|
10
|
-
@basedir = File.expand_path(basedir)
|
9
|
+
FileUtils.mkdir_p(to_root) unless File.exists? to_root
|
11
10
|
end
|
12
11
|
|
13
12
|
def build(name=nil, &execute_block)
|
14
13
|
name = name.nil? ? @name : name
|
15
14
|
|
16
|
-
create_block = lambda { ZipWriter.new(
|
15
|
+
create_block = lambda { ZipWriter.new(from_root, to_root, name) }
|
17
16
|
destroy_block = lambda {|writer| writer.close }
|
18
17
|
|
19
|
-
|
18
|
+
evaluate(create_block, destroy_block, execute_block)
|
20
19
|
end
|
21
20
|
|
22
21
|
def update(name=nil, &execute_block)
|
23
22
|
name = name.nil? ? @name : name
|
24
23
|
|
25
|
-
create_block = lambda { ZipUpdater.new(
|
24
|
+
create_block = lambda { ZipUpdater.new(from_root, to_root, name) }
|
26
25
|
destroy_block = lambda {|updater| updater.close }
|
27
26
|
|
28
|
-
|
27
|
+
evaluate(create_block, destroy_block, execute_block)
|
29
28
|
end
|
30
29
|
|
31
30
|
def entry_exist? entry_name
|
32
|
-
create_block = lambda { ZipReader.new(
|
31
|
+
create_block = lambda { ZipReader.new(to_root, name) }
|
33
32
|
destroy_block = lambda {|reader| reader.close }
|
34
33
|
execute_block = lambda { |reader| reader.entry_exist?(entry_name) }
|
35
34
|
|
36
|
-
|
35
|
+
evaluate(create_block, destroy_block, execute_block)
|
37
36
|
end
|
38
37
|
|
39
38
|
def entries_size
|
40
|
-
create_block = lambda { ZipReader.new(
|
39
|
+
create_block = lambda { ZipReader.new(to_root, name) }
|
41
40
|
destroy_block = lambda {|reader| reader.close }
|
42
41
|
execute_block = lambda { |reader| reader.entries_size }
|
43
42
|
|
44
|
-
|
43
|
+
evaluate(create_block, destroy_block, execute_block)
|
45
44
|
end
|
46
45
|
|
47
46
|
def list dir="."
|
48
|
-
create_block = lambda { ZipReader.new(
|
47
|
+
create_block = lambda { ZipReader.new(to_root, name) }
|
49
48
|
destroy_block = lambda {|reader| reader.close }
|
50
49
|
execute_block = lambda { |reader| reader.list(dir) }
|
51
50
|
|
52
|
-
|
51
|
+
evaluate(create_block, destroy_block, execute_block)
|
53
52
|
end
|
54
53
|
|
54
|
+
private
|
55
|
+
|
56
|
+
def evaluate(create_block, destroy_block, execute_block)
|
57
|
+
begin
|
58
|
+
created_object = create_block.kind_of?(Proc) ? create_block.call : create_block
|
59
|
+
|
60
|
+
created_object.instance_eval(&execute_block)
|
61
|
+
ensure
|
62
|
+
destroy_block.call(created_object) if destroy_block && created_object
|
63
|
+
end
|
64
|
+
end
|
55
65
|
end
|
56
66
|
|
data/lib/zip_dsl/zip_reader.rb
CHANGED
data/lib/zip_dsl/zip_updater.rb
CHANGED
@@ -2,9 +2,9 @@ require 'zip/zip'
|
|
2
2
|
|
3
3
|
class ZipUpdater
|
4
4
|
|
5
|
-
def initialize
|
6
|
-
@
|
7
|
-
@
|
5
|
+
def initialize from_root, to_root, name
|
6
|
+
@from_root = from_root
|
7
|
+
@zipfile = Zip::ZipFile.open("#{to_root}/#{name}")
|
8
8
|
end
|
9
9
|
|
10
10
|
def close
|
@@ -99,7 +99,7 @@ class ZipUpdater
|
|
99
99
|
end
|
100
100
|
|
101
101
|
def full_name name
|
102
|
-
full_name?(name) ? name : "
|
102
|
+
full_name?(name) ? name : "#{@from_root}/#{name}"
|
103
103
|
end
|
104
104
|
|
105
105
|
end
|
data/lib/zip_dsl/zip_writer.rb
CHANGED
@@ -2,9 +2,10 @@ require 'zip/zip'
|
|
2
2
|
|
3
3
|
class ZipWriter
|
4
4
|
|
5
|
-
def initialize
|
6
|
-
@
|
7
|
-
|
5
|
+
def initialize from_root, to_root, name
|
6
|
+
@from_root = from_root
|
7
|
+
|
8
|
+
@zos = Zip::ZipOutputStream.new("#{to_root}/#{name}")
|
8
9
|
|
9
10
|
@compression_level = Zlib::BEST_COMPRESSION
|
10
11
|
end
|
@@ -102,7 +103,7 @@ class ZipWriter
|
|
102
103
|
end
|
103
104
|
|
104
105
|
def full_name name
|
105
|
-
full_name?(name) ? name : "
|
106
|
+
full_name?(name) ? name : "#{@from_root}/#{name}"
|
106
107
|
end
|
107
108
|
|
108
109
|
end
|
@@ -1,11 +1,19 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
2
|
|
3
3
|
require 'zip_dsl'
|
4
|
+
require 'file_utils/file_utils'
|
4
5
|
|
5
6
|
describe ZipDSL do
|
6
|
-
|
7
|
+
include FileUtils
|
7
8
|
|
8
|
-
|
9
|
+
let(:from_basedir) { "." }
|
10
|
+
let(:to_basedir) { "build" }
|
11
|
+
|
12
|
+
subject { ZipDSL.new from_basedir, to_basedir, "test.zip" }
|
13
|
+
|
14
|
+
after do
|
15
|
+
delete_directory "build"
|
16
|
+
end
|
9
17
|
|
10
18
|
it "should create new zip file with files at particular folder" do
|
11
19
|
subject.build do
|
@@ -31,7 +39,7 @@ describe ZipDSL do
|
|
31
39
|
end
|
32
40
|
|
33
41
|
it "should create new zip file with file created from file" do
|
34
|
-
src = File.open("#{
|
42
|
+
src = File.open("#{from_basedir}/Rakefile")
|
35
43
|
subject.build do
|
36
44
|
content :name => "Rakefile", :source => src
|
37
45
|
end
|
@@ -63,7 +71,7 @@ describe ZipDSL do
|
|
63
71
|
file :name => "Gemfile"
|
64
72
|
end
|
65
73
|
|
66
|
-
File.exist?(subject.name).should be_true
|
74
|
+
File.exist?("#{subject.to_root}/#{subject.name}").should be_true
|
67
75
|
subject.entry_exist?("Gemfile").should be_true
|
68
76
|
|
69
77
|
subject.update do
|
data/zip_dsl.gemspec
CHANGED
@@ -15,11 +15,11 @@ Gem::Specification.new do |spec|
|
|
15
15
|
spec.require_paths = ["lib"]
|
16
16
|
spec.version = ZipDSL::VERSION
|
17
17
|
|
18
|
-
|
18
|
+
|
19
19
|
spec.add_runtime_dependency "zip", [">= 0"]
|
20
20
|
spec.add_runtime_dependency "file_utils", [">= 0"]
|
21
21
|
spec.add_development_dependency "gemspec_deps_gen", [">= 0"]
|
22
22
|
spec.add_development_dependency "gemcutter", [">= 0"]
|
23
|
-
|
23
|
+
|
24
24
|
end
|
25
25
|
|
data/zip_dsl.gemspec.erb
CHANGED
metadata
CHANGED
@@ -1,36 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zip_dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Alexander Shvets
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
|
-
- !ruby/object:Gem::Dependency
|
15
|
-
name: meta_methods
|
16
|
-
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
|
-
requirements:
|
19
|
-
- - ! '>='
|
20
|
-
- !ruby/object:Gem::Version
|
21
|
-
version: '0'
|
22
|
-
type: :runtime
|
23
|
-
prerelease: false
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
|
-
requirements:
|
27
|
-
- - ! '>='
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0'
|
30
13
|
- !ruby/object:Gem::Dependency
|
31
14
|
name: zip
|
32
15
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
16
|
requirements:
|
35
17
|
- - ! '>='
|
36
18
|
- !ruby/object:Gem::Version
|
@@ -38,7 +20,6 @@ dependencies:
|
|
38
20
|
type: :runtime
|
39
21
|
prerelease: false
|
40
22
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
23
|
requirements:
|
43
24
|
- - ! '>='
|
44
25
|
- !ruby/object:Gem::Version
|
@@ -46,7 +27,6 @@ dependencies:
|
|
46
27
|
- !ruby/object:Gem::Dependency
|
47
28
|
name: file_utils
|
48
29
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
30
|
requirements:
|
51
31
|
- - ! '>='
|
52
32
|
- !ruby/object:Gem::Version
|
@@ -54,7 +34,6 @@ dependencies:
|
|
54
34
|
type: :runtime
|
55
35
|
prerelease: false
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
37
|
requirements:
|
59
38
|
- - ! '>='
|
60
39
|
- !ruby/object:Gem::Version
|
@@ -62,7 +41,6 @@ dependencies:
|
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
42
|
name: gemspec_deps_gen
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
45
|
- - ! '>='
|
68
46
|
- !ruby/object:Gem::Version
|
@@ -70,7 +48,6 @@ dependencies:
|
|
70
48
|
type: :development
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
52
|
- - ! '>='
|
76
53
|
- !ruby/object:Gem::Version
|
@@ -78,7 +55,6 @@ dependencies:
|
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
56
|
name: gemcutter
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
58
|
requirements:
|
83
59
|
- - ! '>='
|
84
60
|
- !ruby/object:Gem::Version
|
@@ -86,7 +62,6 @@ dependencies:
|
|
86
62
|
type: :development
|
87
63
|
prerelease: false
|
88
64
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
65
|
requirements:
|
91
66
|
- - ! '>='
|
92
67
|
- !ruby/object:Gem::Version
|
@@ -115,44 +90,39 @@ files:
|
|
115
90
|
- LICENSE
|
116
91
|
- README.md
|
117
92
|
- Rakefile
|
118
|
-
- lib/directory_builder.rb
|
119
93
|
- lib/zip_dsl.rb
|
120
94
|
- lib/zip_dsl/version.rb
|
121
95
|
- lib/zip_dsl/zip_dsl.rb
|
122
96
|
- lib/zip_dsl/zip_reader.rb
|
123
97
|
- lib/zip_dsl/zip_updater.rb
|
124
98
|
- lib/zip_dsl/zip_writer.rb
|
125
|
-
- spec/directory_builder_spec.rb
|
126
99
|
- spec/spec_helper.rb
|
127
|
-
- spec/
|
128
|
-
- test.zip
|
100
|
+
- spec/zip_dsl_spec.rb
|
129
101
|
- zip_dsl.gemspec
|
130
102
|
- zip_dsl.gemspec.erb
|
131
103
|
homepage: http://github.com/shvets/zip_dsl
|
132
104
|
licenses: []
|
105
|
+
metadata: {}
|
133
106
|
post_install_message:
|
134
107
|
rdoc_options: []
|
135
108
|
require_paths:
|
136
109
|
- lib
|
137
110
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
111
|
requirements:
|
140
112
|
- - ! '>='
|
141
113
|
- !ruby/object:Gem::Version
|
142
114
|
version: '0'
|
143
115
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
|
-
none: false
|
145
116
|
requirements:
|
146
117
|
- - ! '>='
|
147
118
|
- !ruby/object:Gem::Version
|
148
119
|
version: '0'
|
149
120
|
requirements: []
|
150
121
|
rubyforge_project:
|
151
|
-
rubygems_version: 1.
|
122
|
+
rubygems_version: 2.1.2
|
152
123
|
signing_key:
|
153
|
-
specification_version:
|
124
|
+
specification_version: 4
|
154
125
|
summary: Library for working with zip file in DSL-way
|
155
126
|
test_files:
|
156
|
-
- spec/directory_builder_spec.rb
|
157
127
|
- spec/spec_helper.rb
|
158
|
-
- spec/
|
128
|
+
- spec/zip_dsl_spec.rb
|
data/lib/directory_builder.rb
DELETED
@@ -1,105 +0,0 @@
|
|
1
|
-
require 'file_utils/file_utils'
|
2
|
-
require 'meta_methods'
|
3
|
-
|
4
|
-
class DirectoryBuilder
|
5
|
-
include FileUtils
|
6
|
-
include MetaMethods
|
7
|
-
|
8
|
-
def initialize name, basedir
|
9
|
-
@name = name
|
10
|
-
@basedir = File.expand_path(basedir)
|
11
|
-
end
|
12
|
-
|
13
|
-
def build(name=nil, &execute_block)
|
14
|
-
name = name.nil? ? @name : name
|
15
|
-
|
16
|
-
evaluate_dsl(self, nil, execute_block)
|
17
|
-
end
|
18
|
-
|
19
|
-
def entry_exist? entry_name
|
20
|
-
File.exist? full_name("#@name/#{entry_name}")
|
21
|
-
end
|
22
|
-
|
23
|
-
def entries_size
|
24
|
-
list = Dir.glob("#{full_name(@name)}/**/*")
|
25
|
-
|
26
|
-
cnt = 0
|
27
|
-
list.each do |name|
|
28
|
-
cnt += 1 if File.file?(name)
|
29
|
-
end
|
30
|
-
|
31
|
-
cnt
|
32
|
-
end
|
33
|
-
|
34
|
-
def list dir="."
|
35
|
-
list = pattern_to_files full_name("#@name/#{dir}"), "**/*"
|
36
|
-
|
37
|
-
list.each_with_index do |name, index|
|
38
|
-
list[index] = name[full_name("#@name/#{dir}").length+1..-1]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def file params
|
43
|
-
to_dir = to_dir(params[:name], params[:to_dir])
|
44
|
-
|
45
|
-
create_directory full_name(to_dir)
|
46
|
-
|
47
|
-
write_to_file full_name(params[:name]), full_name("#{to_dir}/#{File.basename(params[:name])}")
|
48
|
-
end
|
49
|
-
|
50
|
-
def content params
|
51
|
-
source = params[:source]
|
52
|
-
|
53
|
-
stream = source.kind_of?(String) ? StringIO.new(source) : source
|
54
|
-
content = stream.read
|
55
|
-
|
56
|
-
to_dir = to_dir(params[:name], params[:to_dir])
|
57
|
-
|
58
|
-
create_directory full_name(to_dir)
|
59
|
-
|
60
|
-
write_content_to_file content, full_name("#{to_dir}/#{File.basename(params[:name])}")
|
61
|
-
end
|
62
|
-
|
63
|
-
def directory params
|
64
|
-
if params[:from_dir].nil?
|
65
|
-
create_empty_directory params[:to_dir]
|
66
|
-
else
|
67
|
-
if params[:to_dir] == "." || params[:to_dir].nil?
|
68
|
-
to_dir = "#@name"
|
69
|
-
else
|
70
|
-
to_dir = "#@name/#{params[:to_dir]}"
|
71
|
-
end
|
72
|
-
|
73
|
-
filter = params[:filter].nil? ? "**/*" : params[:filter]
|
74
|
-
|
75
|
-
copy_files full_name(params[:from_dir]), full_name(to_dir), filter
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
private
|
80
|
-
|
81
|
-
def to_dir name, dir
|
82
|
-
if dir.nil?
|
83
|
-
from_dir = File.dirname(name)
|
84
|
-
(from_dir == ".") ? @name : "#@name/#{from_dir}"
|
85
|
-
else
|
86
|
-
(dir == ".") ? @name : "#@name/#{dir}"
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def create_empty_directory dir
|
91
|
-
to_dir = (dir == ".") ? @name : "#@name/#{dir}"
|
92
|
-
|
93
|
-
create_directory full_name(to_dir)
|
94
|
-
end
|
95
|
-
|
96
|
-
def full_name? name
|
97
|
-
File.expand_path(name) == name
|
98
|
-
end
|
99
|
-
|
100
|
-
def full_name name
|
101
|
-
full_name?(name) ? name : "#@basedir/#{name}"
|
102
|
-
end
|
103
|
-
|
104
|
-
end
|
105
|
-
|
@@ -1,81 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
-
|
3
|
-
require 'directory_builder'
|
4
|
-
require 'file_utils/file_utils'
|
5
|
-
|
6
|
-
describe DirectoryBuilder do
|
7
|
-
include FileUtils
|
8
|
-
|
9
|
-
let(:basedir) { "#{File.dirname(__FILE__)}/.." }
|
10
|
-
subject { DirectoryBuilder.new("build/test", basedir) }
|
11
|
-
|
12
|
-
after do
|
13
|
-
delete_directory "#{basedir}/build"
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should create new zip file with files at particular folder" do
|
17
|
-
subject.build do
|
18
|
-
file :name => "Gemfile"
|
19
|
-
file :name => "Rakefile", :to_dir => "my_config"
|
20
|
-
file :name => "spec/spec_helper.rb", :to_dir => "my_config"
|
21
|
-
end
|
22
|
-
|
23
|
-
subject.entry_exist?("Gemfile").should be_true
|
24
|
-
subject.entry_exist?("my_config/Rakefile").should be_true
|
25
|
-
subject.entry_exist?("my_config/spec_helper.rb").should be_true
|
26
|
-
|
27
|
-
subject.entries_size.should == 3
|
28
|
-
end
|
29
|
-
|
30
|
-
it "should create new zip file with file created from string" do
|
31
|
-
subject.build do
|
32
|
-
content :name => "README", :source => "My README file content"
|
33
|
-
end
|
34
|
-
|
35
|
-
subject.entry_exist?("README").should be_true
|
36
|
-
subject.entries_size.should == 1
|
37
|
-
end
|
38
|
-
|
39
|
-
it "should create new zip file with file created from file" do
|
40
|
-
src = File.open("#{basedir}/Rakefile")
|
41
|
-
subject.build do
|
42
|
-
content :name => "Rakefile", :source => src
|
43
|
-
end
|
44
|
-
|
45
|
-
subject.entry_exist?("Rakefile").should be_true
|
46
|
-
subject.entries_size.should == 1
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should create new zip file with new empty folder" do
|
50
|
-
subject.build do
|
51
|
-
directory :to_dir => "my_config"
|
52
|
-
end
|
53
|
-
|
54
|
-
subject.entry_exist?("my_config").should be_true
|
55
|
-
end
|
56
|
-
|
57
|
-
it "should create new zip file with new folder" do
|
58
|
-
subject.build do
|
59
|
-
directory :from_dir => "config", :to_dir => "my_config"
|
60
|
-
end
|
61
|
-
|
62
|
-
subject.entry_exist?("my_config").should be_true
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should display files in current directory" do
|
66
|
-
subject.build do
|
67
|
-
directory :from_dir => "spec"
|
68
|
-
end
|
69
|
-
|
70
|
-
subject.list.should include "spec_helper.rb"
|
71
|
-
end
|
72
|
-
|
73
|
-
it "should display files in specified subdirectory" do
|
74
|
-
subject.build do
|
75
|
-
directory :from_dir => "lib"
|
76
|
-
end
|
77
|
-
|
78
|
-
subject.list("zip_dsl").first.should =~ %r{version.rb}
|
79
|
-
end
|
80
|
-
|
81
|
-
end
|
data/test.zip
DELETED
Binary file
|