Module: Pruim::Codec

Included in:
BMP, PBM, PPM
Defined in:
lib/pruim/codec.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.for_filename(filename) ⇒ Object

Returns the codec to use for the given filename, based on the extension



15
16
17
18
# File 'lib/pruim/codec.rb', line 15

def self.for_filename(filename)
  ext = File.extname(flename) # get filename extension
  return self.codec_for(name)
end

.for_filename_name(filename, codecname = nil) ⇒ Object

Returns a codec based on it’s short name or on the filename’s extension.



35
36
37
38
39
# File 'lib/pruim/codec.rb', line 35

def self.for_filename_name(filename, codecname = nil)
  codec = nil      
  return for_name(codecname) if codecname
  return for_filename(codecname)
end

.for_name(name) ⇒ Object

Returns a codec based on it’s short name.



10
11
12
# File 'lib/pruim/codec.rb', line 10

def self.for_name(name)
  return Pruim.const_get(name.upcase) 
end

.new_for_filename(filename) ⇒ Object

Returns an instance of codec to use for the given filename, based on the extension of the filename.



22
23
24
25
# File 'lib/pruim/codec.rb', line 22

def self.new_for_filename(filename)
  codec = for_filename(filename)
  return codec.new()
end

.new_for_filename_name(filename, codecname = nil) ⇒ Object

Returns a new instance of a codec based on it’s short name or on the filename’s extension.



43
44
45
46
47
# File 'lib/pruim/codec.rb', line 43

def self.new_for_filename_name(filename, codecname = nil)
  codec = for_filename_name(filename, codecname)
  return nil unless codec
  return codec.new()
end

.new_for_name(name) ⇒ Object

Returns a new instance of a codec based on it’s short name.



28
29
30
31
32
# File 'lib/pruim/codec.rb', line 28

def self.new_for_name(name)
  codec = for_name(name)
  return nil unless codec
  return codec.new()
end

.register(name, klass) ⇒ Object



4
5
6
7
# File 'lib/pruim/codec.rb', line 4

def self.register(name, klass)
  @codecs     ||= {} 
  @codecs[name] = klass
end

Instance Method Details

#can_decode?(io) ⇒ Boolean

Returns:

  • (Boolean)


58
59
60
# File 'lib/pruim/codec.rb', line 58

def can_decode?(io)
  raise "not implemented"
end

#can_encode?(image) ⇒ Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/pruim/codec.rb', line 62

def can_encode?(image)
  raise "not implemented"
end

#decode(io) ⇒ Object

Stream should be an StringIO, or otherwise IO compatible object.



50
51
52
# File 'lib/pruim/codec.rb', line 50

def decode(io)
  raise "not implemented"
end

#encode(image, io) ⇒ Object



54
55
56
# File 'lib/pruim/codec.rb', line 54

def encode(image, io)
  raise "not implemented"
end

#encode_will_degrade?(image) ⇒ Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/pruim/codec.rb', line 66

def encode_will_degrade?(image)
  raise "not implemented"
end

#textObject



70
71
72
# File 'lib/pruim/codec.rb', line 70

def text
  return "A codec that does nothing."
end