Class: Klear::FileGenerator

Inherits:
Object
  • Object
show all
Includes:
Java
Defined in:
lib/klear/file_generator.rb

Overview

TODO maybe use Zip::ZipOutputStream for generating the zip first in-memory? TODO extract java/jruby specific stuff

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ FileGenerator

Returns a new instance of FileGenerator.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/klear/file_generator.rb', line 6

def initialize options = {}
  @png_path = nil
  @kle_path = nil
  @fps = 25
  if options.has_key? :fps
    @fps = options[:fps]
  end
  @gamma = 1.0
  if options.has_key? :gamma
    @gamma = options[:gamma]
  end
  @geometry = nil
  @raw_frame_values = []
  @kle_file = nil
  @silent = true
  if options.has_key? :silent
    @silent = !!options[:silent]
  end
end

Instance Method Details

#generate(thePngPath, theKleFile) ⇒ Object



60
61
62
63
64
65
66
67
68
# File 'lib/klear/file_generator.rb', line 60

def generate thePngPath, theKleFile
  @png_path = thePngPath
  @kle_path = theKleFile
  if File.exists? @kle_path
    raise "File #{@kle_path} already exists"
  end
  write
  report
end

#loadObject



26
27
28
29
30
# File 'lib/klear/file_generator.rb', line 26

def load
  Zip::ZipFile.open(@kle_path) { |kle|
    @kle_file = kle
  }
end

#regenerate(theKleFile) ⇒ Object



86
87
88
89
90
# File 'lib/klear/file_generator.rb', line 86

def regenerate theKleFile
  @kle_path = theKleFile
  load
  regenerate_cache
end

#reportObject



70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/klear/file_generator.rb', line 70

def report
  report = "\nInput  Directory : '\#{@png_path}'\nOutput KleFile : '\#{@kle_path}'\n\nDetails:\n  * number of [png files|frames]: \#{@kle_file.dir.entries(\"/frames\").size}\n  * fps: \#{@fps}\n  * gamma : \#{@gamma}\n  * geometry : \#{@geometry}\n\n  REPORT\n  puts report if !@silent\nend\n"

#writeObject



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'lib/klear/file_generator.rb', line 32

def write
  Zip::ZipFile.open(@kle_path, Zip::ZipFile::CREATE) { |kle|
    @kle_file = kle
    add_pngs
    regenerate_cache
    
    # Meta
    kle.mkdir('META-INF')
    kle.file.open("META-INF/MANIFEST.MF", "w") do |os|
      os.write "Manifest-Version: 1.0\n\nKle-Version: 1.0\nCreated-By: \#{__FILE__} (\#{Klear::VERSION})\nGenerated-At: \#{Time.now}\n\n      MANIFEST\n    end\n    kle.file.open(\"META-INF/kle.yml\", \"w\") { |os|\n      os.write({\n        \"geometry\"    => @geometry,\n        \"gamma\"       => @gamma,\n        \"fps\"         => @fps\n      }.to_yaml)\n    }\n  }\nend\n"