forked from macdonst/callback-docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathquirks_merger.rb
47 lines (34 loc) · 1.33 KB
/
quirks_merger.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
require 'fileutils'
class QuirksMerger
attr_accessor :phonegap_path
def run(file_path)
@phonegap_path = nil
platform_directory = find_directory_containing(file_path, 'phonegap')
return if platform_directory.nil?
return if File.basename(platform_directory).downcase == 'phonegap'
@phonegap_path = generate_phonegap_path(file_path, platform_directory)
return unless File.file? @phonegap_path
phonegap_data = File.read(@phonegap_path).strip
partial_data = File.read(file_path).strip
File.open(@phonegap_path, 'w') { |file| file.write(phonegap_data + "\n\n" + partial_data) }
FileUtils.rm file_path
end
protected
def find_directory_containing(directory, directory_to_find)
platform_name = nil
until File.exists? File.join(directory, directory_to_find)
return nil if File.dirname(directory) == directory
platform_name = File.basename(directory)
directory = File.dirname(directory)
end
File.join directory, platform_name
end
def generate_phonegap_path(full_path, platform_path)
path = {
:prefix => File.dirname(platform_path),
:platform => File.basename(platform_path),
:postfix => full_path.sub(platform_path, '')
}
"#{path[:prefix]}/phonegap/#{path[:postfix]}".gsub(/\/+/, '/')
end
end