zip_dsl 1.2.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
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.1, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
17
- <orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.1.3, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
18
- <orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.6, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
19
- <orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
20
- <orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.0.5, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
21
- <orderEntry type="library" scope="PROVIDED" name="meta_methods (v1.0.5, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
22
- <orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.1, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
23
- <orderEntry type="library" scope="PROVIDED" name="mocha (v0.10.3, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
24
- <orderEntry type="library" scope="PROVIDED" name="rspec (v2.9.0, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
25
- <orderEntry type="library" scope="PROVIDED" name="rspec-core (v2.9.0, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
26
- <orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v2.9.1, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
27
- <orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v2.9.0, RVM: ruby-1.9.3-p429 [zip_dsl]) [gem]" level="application" />
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
- ruby-1.9.3
1
+ 1.9.3
data/CHANGES CHANGED
@@ -6,4 +6,12 @@
6
6
 
7
7
  == Version 1.2.0
8
8
 
9
- * Adding support for archive update.
9
+ * Adding support for archive update.
10
+
11
+ == Version 1.3.0
12
+
13
+ * Move DirectoryBuilder into separate gem - DirDSL.
14
+
15
+ == Version 1.3.1
16
+
17
+ * Bug fixes.
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", "2.9.0"
16
- gem "mocha", "0.10.3"
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
- def version
10
- ZipDSL::VERSION
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 :build do
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
+
@@ -1,3 +1,3 @@
1
- module ZipDSL
2
- VERSION = "1.2.0"
1
+ class ZipDSL
2
+ VERSION = "1.3.1"
3
3
  end
@@ -1,56 +1,66 @@
1
- require 'meta_methods'
2
-
3
1
  class ZipDSL
4
- include MetaMethods
2
+ attr_reader :from_root, :to_root, :name
5
3
 
6
- attr_reader :name, :basedir
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
- def initialize name, basedir
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(name, @basedir) }
15
+ create_block = lambda { ZipWriter.new(from_root, to_root, name) }
17
16
  destroy_block = lambda {|writer| writer.close }
18
17
 
19
- evaluate_dsl(create_block, destroy_block, execute_block)
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(name, @basedir) }
24
+ create_block = lambda { ZipUpdater.new(from_root, to_root, name) }
26
25
  destroy_block = lambda {|updater| updater.close }
27
26
 
28
- evaluate_dsl(create_block, destroy_block, execute_block)
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(@name) }
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
- evaluate_dsl(create_block, destroy_block, execute_block)
35
+ evaluate(create_block, destroy_block, execute_block)
37
36
  end
38
37
 
39
38
  def entries_size
40
- create_block = lambda { ZipReader.new(@name) }
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
- evaluate_dsl(create_block, destroy_block, execute_block)
43
+ evaluate(create_block, destroy_block, execute_block)
45
44
  end
46
45
 
47
46
  def list dir="."
48
- create_block = lambda { ZipReader.new(@name) }
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
- evaluate_dsl(create_block, destroy_block, execute_block)
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
 
@@ -3,8 +3,8 @@ require 'zip/zip'
3
3
  class ZipReader
4
4
  include Enumerable
5
5
 
6
- def initialize name
7
- @zis = Zip::ZipInputStream.new(name)
6
+ def initialize to_root, name
7
+ @zis = Zip::ZipInputStream.new("#{to_root}/#{name}")
8
8
  end
9
9
 
10
10
  def each(&block)
@@ -2,9 +2,9 @@ require 'zip/zip'
2
2
 
3
3
  class ZipUpdater
4
4
 
5
- def initialize file_name, basedir
6
- @zipfile = Zip::ZipFile.open(file_name)
7
- @basedir = basedir
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 : "#@basedir/#{name}"
102
+ full_name?(name) ? name : "#{@from_root}/#{name}"
103
103
  end
104
104
 
105
105
  end
@@ -2,9 +2,10 @@ require 'zip/zip'
2
2
 
3
3
  class ZipWriter
4
4
 
5
- def initialize file_name, basedir
6
- @zos = Zip::ZipOutputStream.new(file_name)
7
- @basedir = basedir
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 : "#@basedir/#{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
- let(:basedir) { "#{File.dirname(__FILE__)}/.." }
7
+ include FileUtils
7
8
 
8
- subject { ZipDSL.new "test.zip", basedir }
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("#{basedir}/Rakefile")
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
- spec.add_runtime_dependency "meta_methods", [">= 0"]
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
@@ -15,6 +15,6 @@ Gem::Specification.new do |spec|
15
15
  spec.require_paths = ["lib"]
16
16
  spec.version = ZipDSL::VERSION
17
17
 
18
- <%= include_dependencies %>
18
+ <%= project_dependencies %>
19
19
  end
20
20
 
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.2.0
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-06-17 00:00:00.000000000 Z
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/zip_builder_spec.rb
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.8.25
122
+ rubygems_version: 2.1.2
152
123
  signing_key:
153
- specification_version: 3
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/zip_builder_spec.rb
128
+ - spec/zip_dsl_spec.rb
@@ -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