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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, from_dir = ".", params = {}) ⇒ ZipDSL

Returns a new instance of ZipDSL.



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

def initialize name, from_dir=".", params={}
  @name = name
  @from_dir = File.expand_path(from_dir)
  @includes = params[:includes]
  @excludes = params[:excludes]

  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



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

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

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

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

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



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

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



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

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)


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

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



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

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