Class: ZipDSL

Inherits:
Object
  • Object
show all
Defined in:
lib/zip_dsl/version.rb,
lib/zip_dsl/zip_dsl.rb

Constant Summary collapse

VERSION =
"1.4.3"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, from_dir = nil) ⇒ ZipDSL

Returns a new instance of ZipDSL.



6
7
8
9
10
11
12
# File 'lib/zip_dsl/zip_dsl.rb', line 6

def initialize name, from_dir = nil
  @name = name
  @from_dir = from_dir.nil? ? from_dir : File.expand_path(from_dir)

  to_root = File.expand_path(File.dirname(name))
  FileUtils.mkdir_p(to_root) unless File.exists? to_root
end

Instance Attribute Details

#from_dirObject (readonly)

Returns the value of attribute from_dir.



4
5
6
# File 'lib/zip_dsl/zip_dsl.rb', line 4

def from_dir
  @from_dir
end

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/zip_dsl/zip_dsl.rb', line 4

def name
  @name
end

Instance Method Details

#build(name = nil, &execute_block) ⇒ Object



14
15
16
17
18
19
20
21
# File 'lib/zip_dsl/zip_dsl.rb', line 14

def build(name=nil, &execute_block)
  name = name.nil? ? @name : name

  create_block = lambda { ZipWriter.new(name, from_dir) }
  destroy_block = lambda {|writer| writer.close }

  MetaMethods::DslBuilder.instance.evaluate_dsl(create_block, destroy_block, execute_block)
end

#each_entry(dir = ".", &code) ⇒ Object



56
57
58
59
60
61
62
# File 'lib/zip_dsl/zip_dsl.rb', line 56

def each_entry dir=".", &code
  create_block = lambda { ZipReader.new(name) }
  destroy_block = lambda {|reader| reader.close }
  execute_block = lambda { |reader| reader.each_entry(dir, &code) }

  MetaMethods::DslBuilder.instance.evaluate_dsl(create_block, destroy_block, execute_block)
end

#entries_sizeObject



40
41
42
43
44
45
46
# File 'lib/zip_dsl/zip_dsl.rb', line 40

def entries_size
  create_block = lambda { ZipReader.new(name) }
  destroy_block = lambda {|reader| reader.close }
  execute_block = lambda { |reader| reader.entries_size }

  MetaMethods::DslBuilder.instance.evaluate_dsl(create_block, destroy_block, execute_block)
end

#entry_exist?(entry_name) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
35
36
37
38
# File 'lib/zip_dsl/zip_dsl.rb', line 32

def entry_exist? entry_name
  create_block = lambda { ZipReader.new(name) }
  destroy_block = lambda {|reader| reader.close }
  execute_block = lambda { |reader| reader.entry_exist?(entry_name) }

  MetaMethods::DslBuilder.instance.evaluate_dsl(create_block, destroy_block, execute_block)
end

#list(dir = ".") ⇒ Object



48
49
50
51
52
53
54
# File 'lib/zip_dsl/zip_dsl.rb', line 48

def list dir="."
  create_block = lambda { ZipReader.new(name) }
  destroy_block = lambda {|reader| reader.close }
  execute_block = lambda { |reader| reader.list(dir) }

  MetaMethods::DslBuilder.instance.evaluate_dsl(create_block, destroy_block, execute_block)
end

#update(name = nil, &execute_block) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/zip_dsl/zip_dsl.rb', line 23

def update(name=nil, &execute_block)
  name = name.nil? ? @name : name

  create_block = lambda { ZipUpdater.new(name, from_dir) }
  destroy_block = lambda {|updater| updater.close }

  MetaMethods::DslBuilder.instance.evaluate_dsl(create_block, destroy_block, execute_block)
end