synx 0.0.54 → 0.0.61

Sign up to get free protection for your applications and to get access to all the features.
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