zip_dsl 1.4.4 → 1.5.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 +5 -13
- data/.idea/workspace.xml +338 -161
- data/.idea/zip_dsl.iml +31 -28
- data/.ruby-version +1 -1
- data/CHANGES +6 -0
- data/lib/zip_dsl/version.rb +1 -1
- data/lib/zip_dsl/zip_dsl.rb +5 -12
- data/lib/zip_dsl/zip_writer.rb +58 -23
- data/lib/zip_dsl.rb +0 -1
- data/spec/zip_dsl_spec.rb +20 -11
- metadata +30 -31
- data/lib/zip_dsl/zip_updater.rb +0 -106
data/lib/zip_dsl/zip_updater.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
require 'zip/zip'
|
2
|
-
|
3
|
-
class ZipUpdater
|
4
|
-
attr_reader :from_dir
|
5
|
-
|
6
|
-
def initialize name, from_dir
|
7
|
-
@from_dir = from_dir
|
8
|
-
@zipfile = Zip::ZipFile.open(name)
|
9
|
-
end
|
10
|
-
|
11
|
-
def close
|
12
|
-
@zipfile.close
|
13
|
-
end
|
14
|
-
|
15
|
-
def file params
|
16
|
-
to_dir = params[:to_dir].nil? ? File.dirname(params[:name]) : strip_dot(params[:to_dir])
|
17
|
-
|
18
|
-
add_or_replace_file full_name(params[:name]), "#{to_dir}/#{params[:name]}"
|
19
|
-
end
|
20
|
-
|
21
|
-
def content params
|
22
|
-
to_dir = params[:to_dir].nil? ? File.dirname(params[:name]) : params[:to_dir]
|
23
|
-
|
24
|
-
add_or_replace_file params[:name], to_dir, params[:source]
|
25
|
-
end
|
26
|
-
|
27
|
-
def directory params
|
28
|
-
if params[:from_dir].nil?
|
29
|
-
add_empty_directory params[:to_dir]
|
30
|
-
else
|
31
|
-
if params[:to_dir].nil?
|
32
|
-
to_dir = params[:from_dir]
|
33
|
-
else
|
34
|
-
to_dir = params[:to_dir]
|
35
|
-
end
|
36
|
-
|
37
|
-
filter = params[:filter].nil? ? "**/*" : params[:filter]
|
38
|
-
|
39
|
-
add_directory params[:from_dir], to_dir, filter
|
40
|
-
end
|
41
|
-
|
42
|
-
#Dir["spec/stubs/**/*.*"].each do |name|
|
43
|
-
# if File.file? name
|
44
|
-
# add_or_replace(zipfile, "WEB-INF/spec/stubs/#{name['spec/stubs'.size+1..-1]}", name)
|
45
|
-
# end
|
46
|
-
#end
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def add_or_replace_file from_name, to_name
|
52
|
-
begin
|
53
|
-
@zipfile.add to_name, from_name
|
54
|
-
rescue Zip::ZipEntryExistsError
|
55
|
-
@zipfile.replace to_name, from_name
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
def add_directory from_dir, to_dir, filter="**/*"
|
60
|
-
patterns = filter.kind_of?(String) ? [filter] : filter
|
61
|
-
|
62
|
-
patterns.each do |pattern|
|
63
|
-
files = pattern_to_files full_name(from_dir), pattern
|
64
|
-
|
65
|
-
files.each do |from_name|
|
66
|
-
suffix = File.dirname(from_name)[full_name(from_dir).size+1..-1]
|
67
|
-
dir = suffix.nil? ? to_dir : "#{to_dir}/#{suffix}"
|
68
|
-
|
69
|
-
if File.file?(from_name)
|
70
|
-
to_name = "#{dir}/#{from_name[full_name(dir).size+1..-1]}"
|
71
|
-
|
72
|
-
add_or_replace_file from_name, to_name
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def add_empty_directory(name)
|
79
|
-
puts "adding empty dir: #{name}"
|
80
|
-
|
81
|
-
#entry = Zip::ZipStreamableDirectory.new "", "#{name}/"
|
82
|
-
#
|
83
|
-
#@zos.put_next_entry entry
|
84
|
-
end
|
85
|
-
|
86
|
-
def pattern_to_files dir, pattern
|
87
|
-
Dir.glob("#{dir}/#{pattern}")
|
88
|
-
end
|
89
|
-
|
90
|
-
def strip_dot name
|
91
|
-
if name[name.length-2..-1] == "/."
|
92
|
-
name = name[0..name.length-3]
|
93
|
-
end
|
94
|
-
|
95
|
-
name
|
96
|
-
end
|
97
|
-
|
98
|
-
def full_name? name
|
99
|
-
File.expand_path(name) == name
|
100
|
-
end
|
101
|
-
|
102
|
-
def full_name name
|
103
|
-
full_name?(name) ? name : "#{from_dir}/#{name}"
|
104
|
-
end
|
105
|
-
|
106
|
-
end
|