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.
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