synx 0.0.54 → 0.0.61

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ac3c61ea802c50bbe5e6e78ea32b792a12594bb
4
- data.tar.gz: 8d32508256144a416ba1981e4e71998820edbc09
3
+ metadata.gz: 9e7857c0dc76b55453433714997f34307c5e0fa0
4
+ data.tar.gz: 12ab93749daa6a68902913eb595106eae891b726
5
5
  SHA512:
6
- metadata.gz: cddb7e6c92bddbc4d7b1c2d78ad69bc76e6d976c4599e1a575ff323444a8b7199e5f91ed395e6ef62087831615cde1986fec1d3411a3c4a21f08bb61f8163a18
7
- data.tar.gz: 745af9f68bf1f71fd34e703548e763a62de9508c646f5902e50e0edd044fea2d1a1bea2dbaa00ccdaf9ffba7e4b4457f7644f4b7a013e188ed225dd5180d92b4
6
+ metadata.gz: cdea1a333bba58a9b18e310f3438f38ace0b755aceaa97bc9d52198e0737f124edbb1c0a6b600dfecd4739c27832847b0bace69b17992c2d91ce700f31b17c81
7
+ data.tar.gz: ef602a4b02017f3e5b8060e1e40c33402a76d2895de1b61bc2da1123781d55d45420e1304c7aa7624e6f38ada350075ded32d7fbd2ab566e032da19fd0ffd022
data/CHANGELOG.md ADDED
@@ -0,0 +1,115 @@
1
+ # CHANGELOG
2
+
3
+ ## v0.0.6
4
+
5
+ * Make synx work for localized files
6
+ [archaeopterasa](https://github.com/archaeopterasa)
7
+ [#63](https://github.com/venmo/slather/pull/63)
8
+
9
+ * Prohibit running Synx as root to avoid file permission issues
10
+ [Mark Larsen](https://github.com/marklarr)
11
+ [#60](https://github.com/venmo/slather/pull/60)
12
+
13
+ * Add a command to show the version of Synx
14
+ [Mark Larsen](https://github.com/marklarr)
15
+ [#61](https://github.com/venmo/slather/pull/61)
16
+
17
+ ## v0.0.54
18
+
19
+ * Use xcodeproj v0.20.0
20
+ [Mark Larsen](https://github.com/marklarr)
21
+
22
+ ## v0.0.53
23
+
24
+ * Pods as a default exclusion + Fix for Exclusion path crash
25
+ [Dustin Bachrach](https://github.com/dbachrach)
26
+ [#51](https://github.com/venmo/synx/pull/51)
27
+
28
+ * Separate xcodeproj monkey patching
29
+ [Alex Genco](https://github.com/alexgenco)
30
+ [#39](https://github.com/venmo/synx/pull/39)
31
+
32
+ * Fix various `require` and `File.join` calls
33
+ [Alex Genco](https://github.com/alexgenco)
34
+ [#38](https://github.com/venmo/synx/pull/38)
35
+
36
+ * Remove output from tests
37
+ [Alex Genco](https://github.com/alexgenco)
38
+ [#37](https://github.com/venmo/synx/pull/37)
39
+
40
+ * Remove class variables from Tabber
41
+ [Alex Genco](https://github.com/alexgenco)
42
+ [#36](https://github.com/venmo/synx/pull/36)
43
+
44
+ * Fix misspelling of 'amended'
45
+ [Seth Friedman](https://github.com/sethfri)
46
+ [#35](https://github.com/venmo/synx/pull/35)
47
+
48
+ * Add support for the --no-color option.
49
+ [samsymons](https://github.com/samsymons)
50
+ [#32](https://github.com/venmo/synx/pull/32)
51
+
52
+ * Document the --quiet option.
53
+ [Sam Symons](https://github.com/samsymons)
54
+ [#31](https://github.com/venmo/synx/pull/31)
55
+
56
+ ## v0.0.52
57
+
58
+ * Bug fix for en.lproj syncing
59
+ [Mark Larsen](https://github.com/marklarr)
60
+ [#30](https://github.com/venmo/slather/pull/30)
61
+
62
+ * Add support for a --quiet option
63
+ [Sam Symons](https://github.com/samsymons)
64
+ [#29](https://github.com/venmo/slather/pull/29)
65
+
66
+ ## v0.0.51
67
+
68
+ * Fix regex escaping causing sync issues on paths with special characters
69
+ [Matt Lewix](https://github.com/mplewis)
70
+ [#22](https://github.com/venmo/slather/pull/22)
71
+
72
+ * Change Dir globbing to also find hidden files, and ignore .DS_Store files
73
+ [Mark Larsen](https://github.com/marklarr)
74
+ [#21](https://github.com/venmo/slather/pull/21)
75
+
76
+ ## v0.0.5
77
+
78
+ * Be more forgiving with exclusion paths
79
+ [Mark Larsen](https://github.com/marklarr)
80
+ [#18](https://github.com/venmo/slather/pull/17)
81
+
82
+ * Abort sync if project has groups containing a forward slash
83
+ [Mark Larsen](https://github.com/marklarr)
84
+ [#17](https://github.com/venmo/slather/pull/17)
85
+
86
+ ## v0.0.4
87
+
88
+ * Allow all abstract targets to have build settings changed
89
+ [Mark Larsen](https://github.com/marklarr)
90
+ [#11](https://github.com/venmo/slather/pull/11)
91
+
92
+ * Fix an exception being raised with aggregate targets
93
+ [Kyle Fuller](https://github.com/kylef)
94
+ [#10](https://github.com/venmo/slather/pull/10)
95
+
96
+ * Linkify Contributors
97
+ [Ayaka Nonaka](https://github.com/ayanonagon)
98
+ [#7](https://github.com/venmo/slather/pull/7)
99
+
100
+ ## v0.0.3
101
+
102
+ * Accommodate for case insensitive dir names
103
+ [Mark Larsen](https://github.com/marklarr)
104
+ [#5](https://github.com/venmo/slather/pull/5)
105
+
106
+ * Removing mention of Gemfile from installation instructions
107
+ [Mattt Thompson](https://github.com/mattt)
108
+ [#2](https://github.com/venmo/slather/pull/2)
109
+
110
+ ## v0.0.2
111
+
112
+ * Initial Release
113
+ [Mark Larsen](https://github.com/marklarr)
114
+ [#1](https://github.com/venmo/slather/pull/1)
115
+
data/bin/synx CHANGED
@@ -11,10 +11,18 @@ Clamp do
11
11
  option "--no-default-exclusions", :flag, "doesn't use the default exclusions of /Libraries, /Frameworks, and /Products"
12
12
  option ["--quiet", "-q"], :flag, "silence all output"
13
13
  option ["--exclusion", "-e"], "EXCLUSION", "ignore an Xcode group while syncing", :multivalued => true
14
+ option ["--version", "-v"], :flag, "shows synx version" do
15
+ puts "Synx #{Synx::VERSION}"
16
+ exit(0)
17
+ end
14
18
 
15
19
  def execute
16
- project = Synx::Project.open(xcodeproj_path)
17
- project.sync(:prune => prune?, :quiet => quiet?, :no_color => no_color?, :no_default_exclusions => no_default_exclusions?, :group_exclusions => exclusion_list)
20
+ if Process.uid == 0
21
+ puts "You cannot run Synx as root.".red
22
+ else
23
+ project = Synx::Project.open(xcodeproj_path)
24
+ project.sync(:prune => prune?, :quiet => quiet?, :no_color => no_color?, :no_default_exclusions => no_default_exclusions?, :group_exclusions => exclusion_list)
25
+ end
18
26
  end
19
27
 
20
28
  end
data/lib/synx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Synx
2
- VERSION = "0.0.54"
2
+ VERSION = "0.0.61"
3
3
  end
@@ -4,4 +4,3 @@ require "synx/xcodeproj_ext/project/object/pbx_file_reference"
4
4
  require "synx/xcodeproj_ext/project/object/pbx_group"
5
5
  require "synx/xcodeproj_ext/project/object/abstract_object"
6
6
  require "synx/xcodeproj_ext/project/object/abstract_target"
7
- require "synx/xcodeproj_ext/project/object/pbx_variant_group"
@@ -8,27 +8,36 @@ module Xcodeproj
8
8
  end
9
9
 
10
10
  def referring_groups
11
- referrers.select { |ref| ref.instance_of?(Xcodeproj::Project::Object::PBXGroup) }
11
+ referrers.select { |ref| ref.is_a?(Xcodeproj::Project::Object::PBXGroup) }
12
12
  end
13
13
 
14
14
  def work_pathname
15
- # hierarchy path has a leading '/' that will break path concatenation
16
- @work_pathname ||= project.work_root_pathname + hierarchy_path[1..-1]
15
+ # Intuitively, we want the work pathname to correspond 1-1 with the
16
+ # view in the project hierarchy. Xcode's collapsed display of
17
+ # identically-named localized files causes some complications, leading
18
+ # to the special cases here.
19
+ if self.equal?(project.main_group)
20
+ @work_pathname ||= project.work_root_pathname
21
+ elsif parent.is_a?(Xcodeproj::Project::Object::PBXVariantGroup)
22
+ # Localized object, naming is handled differently.
23
+ @work_pathname ||= parent.work_pathname + "#{display_name}.lproj" + parent.display_name
24
+ elsif is_a?(Xcodeproj::Project::Object::PBXVariantGroup)
25
+ # Localized container, has no path of its own.
26
+ @work_pathname ||= parent.work_pathname
27
+ else
28
+ @work_pathname ||= parent.work_pathname + display_name
29
+ end
17
30
  end
18
31
 
19
32
  def ensure_internal_consistency(group)
20
33
  @removed_from_groups = []
21
- if referring_groups.count > 1
22
- # Files should only have one referring group -- this is an internal consistency issue if there is more than 1.
23
- # Just remove all referring groups but the one we're syncing with
24
-
25
- referring_groups.each do |rg|
26
- unless rg == group
27
- rg.remove_reference(self) unless rg == group
28
- @removed_from_groups << rg.hierarchy_path
29
- end
34
+ # Objects should only have one referring group -- this is an internal consistency issue if there is more than 1.
35
+ # Just remove all referring groups but the one we're passed
36
+ referring_groups.each do |rg|
37
+ unless rg == group
38
+ rg.remove_reference(self)
39
+ @removed_from_groups << rg.hierarchy_path
30
40
  end
31
-
32
41
  end
33
42
  end
34
43
 
@@ -6,10 +6,10 @@ module Xcodeproj
6
6
  def sync(group)
7
7
  if should_sync?
8
8
  if should_move?
9
- FileUtils.mv(real_path.to_s, group.work_pathname.to_s)
9
+ FileUtils.mv(real_path.to_s, work_pathname.to_s)
10
10
  # TODO: move out to abstract_object
11
11
  self.source_tree = "<group>"
12
- self.path = real_path.basename.to_s
12
+ self.path = work_pathname.relative_path_from(parent.work_pathname).to_s
13
13
  else
14
14
  # Don't move this file around -- it's not even inside the structure. Just fix the relative reference
15
15
  self.path = real_path.relative_path_from((project.work_pathname_to_pathname(group.work_pathname))).to_s
@@ -4,7 +4,7 @@ module Xcodeproj
4
4
  class PBXGroup
5
5
 
6
6
  def sync(group)
7
- ensure_internal_consistency(group)
7
+ ensure_internal_consistency(group) # Make sure we don't belong to any other groups
8
8
  if excluded_from_sync?
9
9
  Synx::Tabber.puts "#{basename}/ (excluded)".yellow
10
10
  else
@@ -12,9 +12,17 @@ module Xcodeproj
12
12
  Synx::Tabber.increase
13
13
 
14
14
  squash_duplicate_file_references
15
- work_pathname.mkpath
16
- files.each { |pbx_file| pbx_file.sync(self) }
17
- all_groups.each { |group| group.sync(self) }
15
+ # Child directories may not exist yet (and may be different for
16
+ # each file) if this is a localized group, so we do the mkpath call
17
+ # inside the loops.
18
+ files.each do |pbx_file|
19
+ pbx_file.work_pathname.dirname.mkpath
20
+ pbx_file.sync(self)
21
+ end
22
+ all_groups.each do |group|
23
+ group.work_pathname.dirname.mkpath
24
+ group.sync(self)
25
+ end
18
26
  sync_path
19
27
 
20
28
  Synx::Tabber.decrease
@@ -28,11 +36,10 @@ module Xcodeproj
28
36
  def move_entries_not_in_xcodeproj
29
37
  if excluded_from_sync?
30
38
  Synx::Tabber.puts "#{basename}/ (excluded)".yellow
31
- else
39
+ elsif real_path.exist?
32
40
  Synx::Tabber.puts "#{basename}/".green
33
41
  Synx::Tabber.increase
34
- Dir[real_path.to_s + "/{*,.*}"].reject { |e| %W(. ..).include?(Pathname(e).basename.to_s) }.each do |entry|
35
- entry_pathname = real_path + entry
42
+ real_path.children.each do |entry_pathname|
36
43
  unless project.has_object_for_pathname?(entry_pathname)
37
44
  handle_unused_entry(entry_pathname)
38
45
  end
@@ -43,32 +50,24 @@ module Xcodeproj
43
50
  end
44
51
 
45
52
  def sync_path
46
- self.path = basename
53
+ self.path = work_pathname.relative_path_from(parent.work_pathname).to_s
47
54
  self.source_tree = "<group>"
48
55
  end
49
56
  private :sync_path
50
57
 
51
58
  def all_groups
52
- groups | version_groups | variant_groups
53
- end
54
-
55
- def variant_groups
56
- children.select { |child| child.instance_of?(Xcodeproj::Project::Object::PBXVariantGroup) }
59
+ children.select { |child| child.is_a?(Xcodeproj::Project::Object::PBXGroup)}
57
60
  end
58
- private :variant_groups
59
61
 
60
62
  def handle_unused_entry(entry_pathname)
61
63
  entries_to_ignore = %W(.DS_Store)
62
64
  unless entries_to_ignore.include?(entry_pathname.basename.to_s)
63
65
  if entry_pathname.directory?
64
- work_entry_pathname = project.pathname_to_work_pathname(entry_pathname)
65
- # The directory may have already been created for one of two reasons
66
- # 1. It was created as a piece of another path, ie, /this/middle/directory.mkdir got called.
67
- # 2. OS X has case insensitive folder names, so has_object_for_pathname? may have failed to notice it had the folder.
68
- work_entry_pathname.mkdir unless work_entry_pathname.exist?
69
66
  # recurse
70
67
  Synx::Tabber.puts entry_pathname.basename.to_s.green
71
68
  Synx::Tabber.increase
69
+ # Don't create the directory manually: if it has children, it will
70
+ # be created then, and if it doesn't, we don't want it.
72
71
  entry_pathname.children.each { |child| handle_unused_entry(child) }
73
72
  Synx::Tabber.decrease
74
73
  elsif entry_pathname.file?
@@ -86,7 +85,9 @@ module Xcodeproj
86
85
  Synx::Tabber.puts "#{file_pathname.basename} (removed source/image file that is not referenced by the Xcode project)".red
87
86
  return
88
87
  elsif !project.prune || !is_file_to_prune
89
- FileUtils.mv(file_pathname.realpath, project.pathname_to_work_pathname(file_pathname.parent).realpath)
88
+ destination = project.pathname_to_work_pathname(file_pathname.parent.realpath)
89
+ destination.mkpath
90
+ FileUtils.mv(file_pathname.realpath, destination)
90
91
  if is_file_to_prune
91
92
  Synx::Tabber.puts "#{file_pathname.basename} (source/image file that is not referenced by the Xcode project)".yellow
92
93
  else
@@ -62,6 +62,7 @@
62
62
  /* End PBXCopyFilesBuildPhase section */
63
63
 
64
64
  /* Begin PBXFileReference section */
65
+ 637E22771A5235CE00A08D6A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = "<group>"; };
65
66
  8C2DEB7D191D3F5C003A1F44 /* ManyFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ManyFiles.h; sourceTree = "<group>"; };
66
67
  8C2DEB7E191D3F5C003A1F44 /* ManyFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ManyFiles.m; sourceTree = "<group>"; };
67
68
  8C2DEB80191D3F68003A1F44 /* Wow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Wow.h; sourceTree = "<group>"; };
@@ -207,7 +208,7 @@
207
208
  8C848C4E190DB9B300E9727B /* Supporting Files */ = {
208
209
  isa = PBXGroup;
209
210
  children = (
210
- 8CD2ABF019558D4100341C58 /* en.lproj */,
211
+ 8CD2ABF119558D7800341C58 /* Localizable.strings */,
211
212
  8C848C4F190DB9B300E9727B /* dummy-Prefix.pch */,
212
213
  );
213
214
  name = "Supporting Files";
@@ -227,7 +228,6 @@
227
228
  isa = PBXGroup;
228
229
  children = (
229
230
  8C848C63190DB9B300E9727B /* dummyTests-Info.plist */,
230
- 8C848C64190DB9B300E9727B /* InfoPlist.strings */,
231
231
  8CE2DA1D19220F7B00D06F5E /* dummyTests-prefix.pch */,
232
232
  );
233
233
  name = "Supporting Files";
@@ -249,14 +249,6 @@
249
249
  name = Resources;
250
250
  sourceTree = "<group>";
251
251
  };
252
- 8CD2ABF019558D4100341C58 /* en.lproj */ = {
253
- isa = PBXGroup;
254
- children = (
255
- 8CD2ABF119558D7800341C58 /* Localizable.strings */,
256
- );
257
- path = en.lproj;
258
- sourceTree = "<group>";
259
- };
260
252
  8CDA046219374F15004435A1 /* FolderWithGroupNotLinked */ = {
261
253
  isa = PBXGroup;
262
254
  children = (
@@ -318,6 +310,7 @@
318
310
  hasScannedForEncodings = 0;
319
311
  knownRegions = (
320
312
  en,
313
+ de,
321
314
  );
322
315
  mainGroup = 8C848C3F190DB9B300E9727B;
323
316
  productRefGroup = 8C848C49190DB9B300E9727B /* Products */;
@@ -389,8 +382,10 @@
389
382
  isa = PBXVariantGroup;
390
383
  children = (
391
384
  8CD2ABF219558D7800341C58 /* en */,
385
+ 637E22771A5235CE00A08D6A /* de */,
392
386
  );
393
387
  name = Localizable.strings;
388
+ path = en.lproj;
394
389
  sourceTree = "<group>";
395
390
  };
396
391
  /* End PBXVariantGroup section */
@@ -5,3 +5,5 @@
5
5
  Created by Mark Larsen on 6/21/14.
6
6
  Copyright (c) 2014 marklarr. All rights reserved.
7
7
  */
8
+
9
+ "Greeting" = "Hello";
@@ -0,0 +1,9 @@
1
+ /*
2
+ Localizable.strings
3
+ dummy
4
+
5
+ Created by Mark Larsen on 6/21/14.
6
+ Copyright (c) 2014 marklarr. All rights reserved.
7
+ */
8
+
9
+ "Greeting" = "Guten Tag";
@@ -30,6 +30,8 @@ dummy:
30
30
  dummy-Prefix.pch:
31
31
  en.lproj:
32
32
  Localizable.strings:
33
+ de.lproj:
34
+ Localizable.strings:
33
35
  dummy.h:
34
36
  dummy.m:
35
37
  FileNotInXcodeProj.h:
@@ -131,7 +131,7 @@ describe Synx::Project do
131
131
  expected_file_structure_with_removals = expected_file_structure
132
132
  expected_file_structure_with_removals["dummy"].except!("image-not-in-xcodeproj.png")
133
133
  expected_file_structure_with_removals["dummy"].except!("FileNotInXcodeProj.h")
134
- expected_file_structure_with_removals["dummy"]["AlreadySynced"]["FolderNotInXcodeProj"].except!("AnotherFileNotInXcodeProj.h")
134
+ expected_file_structure_with_removals["dummy"]["AlreadySynced"].except!("FolderNotInXcodeProj")
135
135
  verify_file_structure(Pathname(DUMMY_SYNX_TEST_PROJECT_PATH).parent, expected_file_structure_with_removals)
136
136
  end
137
137
 
metadata CHANGED
@@ -1,111 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.54
4
+ version: 0.0.61
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Larsen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-25 00:00:00.000000000 Z
11
+ date: 2015-01-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ~>
32
32
  - !ruby/object:Gem::Version
33
33
  version: '10.3'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '10.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.14'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - "~>"
59
+ - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0.9'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - "~>"
66
+ - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0.9'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: clamp
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - "~>"
73
+ - - ~>
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0.6'
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - "~>"
80
+ - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0.6'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: colorize
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0.7'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.7'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: xcodeproj
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ~>
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.20.0
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ~>
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.20.0
111
111
  description: |2
@@ -118,8 +118,9 @@ executables:
118
118
  extensions: []
119
119
  extra_rdoc_files: []
120
120
  files:
121
- - ".gitignore"
122
- - ".travis.yml"
121
+ - .gitignore
122
+ - .travis.yml
123
+ - CHANGELOG.md
123
124
  - Gemfile
124
125
  - LICENSE.txt
125
126
  - README.md
@@ -134,7 +135,6 @@ files:
134
135
  - lib/synx/xcodeproj_ext/project/object/abstract_target.rb
135
136
  - lib/synx/xcodeproj_ext/project/object/pbx_file_reference.rb
136
137
  - lib/synx/xcodeproj_ext/project/object/pbx_group.rb
137
- - lib/synx/xcodeproj_ext/project/object/pbx_variant_group.rb
138
138
  - spec/dummy/dummy.xcodeproj/project.pbxproj
139
139
  - spec/dummy/dummy.xcodeproj/project.xcworkspace/contents.xcworkspacedata
140
140
  - spec/dummy/dummy.xcodeproj/xcuserdata/marklarsen.xcuserdatad/xcschemes/dummy.xcscheme
@@ -162,6 +162,7 @@ files:
162
162
  - spec/dummy/dummy/dummy.h
163
163
  - spec/dummy/dummy/dummy.m
164
164
  - spec/dummy/dummy/en.lproj/Localizable.strings
165
+ - spec/dummy/dummy/en.lproj/de.lproj/Localizable.strings
165
166
  - spec/dummy/dummy/folderWithGroupNotLinked/data.json
166
167
  - spec/dummy/dummy/image-not-in-xcodeproj.png
167
168
  - spec/dummy/dummy/image.png
@@ -186,17 +187,17 @@ require_paths:
186
187
  - lib
187
188
  required_ruby_version: !ruby/object:Gem::Requirement
188
189
  requirements:
189
- - - ">="
190
+ - - '>='
190
191
  - !ruby/object:Gem::Version
191
192
  version: '0'
192
193
  required_rubygems_version: !ruby/object:Gem::Requirement
193
194
  requirements:
194
- - - ">="
195
+ - - '>='
195
196
  - !ruby/object:Gem::Version
196
197
  version: '0'
197
198
  requirements: []
198
199
  rubyforge_project:
199
- rubygems_version: 2.2.2
200
+ rubygems_version: 2.0.14
200
201
  signing_key:
201
202
  specification_version: 4
202
203
  summary: A command-line tool that reorganizes your Xcode project folder to match your
@@ -229,6 +230,7 @@ test_files:
229
230
  - spec/dummy/dummy/dummy.h
230
231
  - spec/dummy/dummy/dummy.m
231
232
  - spec/dummy/dummy/en.lproj/Localizable.strings
233
+ - spec/dummy/dummy/en.lproj/de.lproj/Localizable.strings
232
234
  - spec/dummy/dummy/folderWithGroupNotLinked/data.json
233
235
  - spec/dummy/dummy/image-not-in-xcodeproj.png
234
236
  - spec/dummy/dummy/image.png
@@ -1,35 +0,0 @@
1
- module Xcodeproj
2
- class Project
3
- module Object
4
- class PBXVariantGroup
5
-
6
- # Need to retain *.lproj files on the system
7
- def sync(group)
8
- ensure_internal_consistency(group)
9
-
10
- file = files.first
11
- if lproj_as_group?
12
- FileUtils.mv(file.real_path, work_pathname)
13
- Synx::Tabber.puts file.real_path.basename.to_s.green
14
- else
15
- parent_folder_path = children.first.real_path.parent
16
- work_destination_pathname = parent.work_pathname
17
-
18
- if parent_folder_path.exist?
19
- FileUtils.mv(parent_folder_path, work_destination_pathname.realpath)
20
- end
21
- Synx::Tabber.puts (parent_folder_path.basename.to_s + "/").green
22
- Synx::Tabber.increase
23
- Synx::Tabber.puts file.real_path.basename.to_s.green
24
- Synx::Tabber.decrease
25
- end
26
- end
27
-
28
- def lproj_as_group?
29
- parent.basename =~ /.+\.lproj$/
30
- end
31
-
32
- end
33
- end
34
- end
35
- end