Class: Sablon::Content::Image

Inherits:
Struct
  • Object
show all
Defined in:
lib/sablon/content.rb

Overview

Handles reading image data and inserting it into the document

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, attributes = {}) ⇒ Image

Returns a new instance of Image.



192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# File 'lib/sablon/content.rb', line 192

def initialize(source, attributes = {})
  attributes = Hash[attributes.map { |k, v| [k.to_s, v] }]
  # If the source object is readable, use it as such otherwise open
  # and read the content
  if source.respond_to?(:read)
    name, img_data = process_readable(source, attributes)
  else
    name = File.basename(source)
    img_data = IO.binread(source)
  end
  #
  super name, img_data
  @attributes = attributes
  @properties = @attributes.fetch("properties", {})

  # rId's are separate for each XML file but I want to be able
  # to reuse the actual image file itself.
  @rid_by_file = {}
end

Instance Attribute Details

#dataObject

Returns the value of attribute data

Returns:

  • (Object)

    the current value of data



181
182
183
# File 'lib/sablon/content.rb', line 181

def data
  @data
end

#local_ridObject

Returns the value of attribute local_rid.



183
184
185
# File 'lib/sablon/content.rb', line 183

def local_rid
  @local_rid
end

#nameObject

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



181
182
183
# File 'lib/sablon/content.rb', line 181

def name
  @name
end

#propertiesObject

Returns the value of attribute properties

Returns:

  • (Object)

    the current value of properties



181
182
183
# File 'lib/sablon/content.rb', line 181

def properties
  @properties
end

#rid_by_fileObject (readonly)

Returns the value of attribute rid_by_file.



182
183
184
# File 'lib/sablon/content.rb', line 182

def rid_by_file
  @rid_by_file
end

Class Method Details

.idObject



185
# File 'lib/sablon/content.rb', line 185

def self.id; :image end

.wraps?(value) ⇒ Boolean

Returns:

  • (Boolean)


186
# File 'lib/sablon/content.rb', line 186

def self.wraps?(value) false end

Instance Method Details

#append_to(paragraph, display_node, env) ⇒ Object



222
# File 'lib/sablon/content.rb', line 222

def append_to(paragraph, display_node, env) end

#heightObject



217
218
219
220
# File 'lib/sablon/content.rb', line 217

def height
  return unless (height_str = @properties[:height])
  convert_to_emu(height_str)
end

#inspectObject



188
189
190
# File 'lib/sablon/content.rb', line 188

def inspect
  "#<Image #{name}:#{@rid_by_file}>"
end

#widthObject



212
213
214
215
# File 'lib/sablon/content.rb', line 212

def width
  return unless (width_str = @properties[:width])
  convert_to_emu(width_str)
end