Module: MergePlist

Defined in:
lib/merge_plist.rb

Class Method Summary collapse

Class Method Details

.ensure_plist(obj) ⇒ Object

Raises:

  • (ArgumentError)


5
6
7
8
9
10
11
12
13
# File 'lib/merge_plist.rb', line 5

def self.ensure_plist obj
  if obj.class == String
    return Plist::parse_xml obj
  elsif obj.class == Hash
    return obj
  end  

  raise ArgumentError.new("invalid argument #{obj}")
end

.merge(*targets) ⇒ Object



15
16
17
# File 'lib/merge_plist.rb', line 15

def self.merge *targets
  return merge_raw.to_plist
end

.merge_raw(*targets) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/merge_plist.rb', line 18

def self.merge_raw *targets
  if targets.count == 2
    return ensure_plist(targets[0])
      .deep_merge(ensure_plist(targets[1]))
  else
    return merge(merge(targets[0], targets[1]), *targets.slice(2..-1))
  end
end