unigunkan 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
data/bin/unigunkan CHANGED
@@ -8,6 +8,7 @@ opt = OptionParser.new
8
8
  OPTS = {}
9
9
  opt.on('-y') {|v| OPTS[:y] = v }
10
10
  opt.on('--disable-retina-4inch-support') {|v| OPTS[:disable_retina_4inch_support] = v}
11
+ opt.on('--folder-refs VAL') {|v| OPTS[:folder_refs] = v}
11
12
  opt.parse!(ARGV)
12
13
 
13
14
  input = ARGV[0]
@@ -40,5 +41,7 @@ end
40
41
  processor = Unigunkan::Processor.new(input, OPTS)
41
42
  processor.create_backup
42
43
  processor.disable_retina_4inch_support if disable_retina_4inch_support
44
+ processor.add_folder_refs
45
+
43
46
  processor.delete_original_project_file
44
47
  processor.write
@@ -1,5 +1,6 @@
1
1
  require 'fileutils'
2
2
  require 'pathname'
3
+ require 'securerandom'
3
4
 
4
5
  class Unigunkan::Processor
5
6
  def initialize(proj_file, opts)
@@ -49,6 +50,59 @@ class Unigunkan::Processor
49
50
  @src = src
50
51
  end
51
52
 
53
+ def add_folder_refs
54
+ if OPTS[:folder_refs].nil?
55
+ return
56
+ end
57
+
58
+ folders = OPTS[:folder_refs].split(",")
59
+
60
+ STDOUT.puts "Adding folder refs..."
61
+
62
+ file_refs_to_add = []
63
+ build_files_to_add = []
64
+ resource_build_phase_files_to_add = []
65
+ entry_in_tree_to_add = []
66
+
67
+ for folder in folders
68
+ file_ref = SecureRandom.hex
69
+ build_file = SecureRandom.hex
70
+ file_refs_to_add << "#{file_ref} /* #{folder} */ = {isa = PBXFileReference; lastKnownFileType = folder; path = #{folder}; sourceTree = \"<group>\"; };"
71
+ build_files_to_add << "#{build_file} /* #{folder} in Resources */ = {isa = PBXBuildFile; fileRef = #{file_ref} /* #{folder} */; };"
72
+ resource_build_phase_files_to_add << "#{build_file} /* #{folder} in Resources */,"
73
+ entry_in_tree_to_add << "#{file_ref} /* #{folder} */,"
74
+ end
75
+ puts build_files_to_add.join("\n")
76
+ puts file_refs_to_add.join("\n")
77
+ puts resource_build_phase_files_to_add.join("\n")
78
+ puts entry_in_tree_to_add.join("\n")
79
+
80
+ add_block_after "/* Begin PBXBuildFile section */", build_files_to_add.join("\n")
81
+ add_block_after "/* Begin PBXFileReference section */", file_refs_to_add.join("\n")
82
+
83
+ # Rewrite ResourcesBuildPhase section
84
+ target = /Resources \*\/ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = (.*?);\n\t\t\tfiles = \(/
85
+ mask = @src.scan(target)[0][0]
86
+ build_phases = "Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = #{mask};\n\t\t\tfiles = (\n"
87
+ @src.gsub!(target, build_phases + resource_build_phase_files_to_add.join("\n"))
88
+
89
+ # Rewrite PBXGroup section
90
+ target = /\/\* Begin PBXGroup section \*\/\n\t\t(.*?)\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = \(/
91
+ # isa = PBXGroup;
92
+ # children = \("
93
+ p @src.scan(target)
94
+ group_id = @src.scan(target)[0][0]
95
+ group = "/* Begin PBXGroup section */
96
+ \t\t#{group_id}
97
+ \t\t\tisa = PBXGroup;
98
+ \t\t\tchildren = ("
99
+ @src.gsub!(target, group + "\n" + entry_in_tree_to_add.join("\n"))
100
+ end
101
+
102
+ def add_block_after(line, block)
103
+ @src.gsub!(line, line + "\n" + block)
104
+ end
105
+
52
106
  def delete_original_project_file
53
107
  FileUtils.rm @proj_file
54
108
  end
@@ -1,3 +1,3 @@
1
1
  module Unigunkan
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: unigunkan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: