class Translatomatic::ResourceFile::Plist

Property list resource file @see en.wikipedia.org/wiki/Property_list

Constants

EMPTY_DOC
PlistNode

@private

Public Class Methods

extensions() click to toggle source

(see Base.extensions)

# File lib/translatomatic/resource_file/plist.rb, line 11
def self.extensions
  %w[plist]
end
key_value?() click to toggle source

(see Base.key_value?)

# File lib/translatomatic/resource_file/plist.rb, line 16
def self.key_value?
  true
end

Private Instance Methods

create_node(key, value) click to toggle source
# File lib/translatomatic/resource_file/plist.rb, line 36
def create_node(key, value)
  # add properties to first dict found
  dict = @doc.xpath('//dict')
  # TODO: not sure sure what to do if dict is missing
  raise 'missing top level dictionary' unless dict.present?
  dict = dict[0]

  # add xml: <data name="key"><value>value</value></data>
  key_node = Nokogiri::XML::Node.new('key', @doc)
  key_node.content = key
  value_node = Nokogiri::XML::Node.new('string', @doc)
  value_node.content = value
  dict.add_child(key_node)
  dict.add_child(value_node)

  @nodemap[key] = value_node
  @properties[key] = value
end
empty_doc() click to toggle source
# File lib/translatomatic/resource_file/plist.rb, line 55
def empty_doc
  Nokogiri::XML(EMPTY_DOC)
end
init_nodemap() click to toggle source
# File lib/translatomatic/resource_file/plist.rb, line 22
def init_nodemap
  result = Parser.new.parse(@doc)
  # puts "parser result:"
  # p result
  @flattened_data = flatten(result)
  @nodemap = @flattened_data.transform_values(&:node)
  # puts "nodemap:"
  # p @nodemap
end
init_properties() click to toggle source
# File lib/translatomatic/resource_file/plist.rb, line 32
def init_properties
  @properties = @flattened_data.transform_values(&:content)
end