Class: ODFWriter::Field

Inherits:
Object
  • Object
show all
Defined in:
lib/odf_writer/field.rb

Overview

Field: replace fields

Direct Known Subclasses

Bookmark, Image, Text

Constant Summary collapse

DELIMITERS =

constants

%w([ ])

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options, &block) ⇒ Field

initialize



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/odf_writer/field.rb', line 50

def initialize(options, &block)

  @name                = options[:name]
  @value               = options[:value]
  @field               = options[:field]
  @key                 = @field || @name
  @proc                = options[:proc]
  
  @remove_classes      = options[:remove_classes]
  @remove_class_prefix = options[:remove_class_prefix]
  @remove_class_suffix = options[:remove_class_suffix]
  
  @value ||= @proc
  
  unless @value
    if block_given?
      @value = block
    else
      @value = lambda { |item, key| field(item, key) }
    end
  end
end

Instance Attribute Details

#nameObject

constants



43
44
45
# File 'lib/odf_writer/field.rb', line 43

def name
  @name
end

Instance Method Details

#field(item, key) ⇒ Object

field



98
99
100
101
102
103
104
105
106
107
# File 'lib/odf_writer/field.rb', line 98

def field(item, key)
  case item
  when NilClass
    key
  when Hash
    hash_value(item, key)
  else
    item_field(item, key)
  end
end

#replace!(content, item = nil) ⇒ Object

replace!



78
79
80
81
82
# File 'lib/odf_writer/field.rb', line 78

def replace!(content, item = nil)
  txt = content.inner_html
  txt.gsub!(placeholder, sanitize(value(item)))
  content.inner_html = txt
end

#value(item = nil) ⇒ Object

value



89
90
91
# File 'lib/odf_writer/field.rb', line 89

def value(item = nil)
  @value.is_a?(Proc) ? @value.call(item, @key) : @value
end