unigunkan 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: