dependencyswapper 0.3.0 → 0.4.0

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: 2c55ec26d2939f54b497a91168b9211600d461ed
4
- data.tar.gz: a1e01fe1859e8c4f8f1af75682b3c8d294b78b66
3
+ metadata.gz: 0b373936514939c9ba4f38cb9ad43fad3e4e91e1
4
+ data.tar.gz: 471edad590870e8bdc9e4dac498eb70eb750bd75
5
5
  SHA512:
6
- metadata.gz: 13c4688acc853593f9692470b6d4f7212930572a6c787646a91829d2322ab1ebd7006561ef8269143e88bf70d8d99f40c63a56db5fc2a3a87027fd9f902c9241
7
- data.tar.gz: f4b393c5050b7bcbc0ee83d6689748b3ab01d93e6670cabacf4c427fcf8db59c9972110d31bdc224388d430a1a1fa0c2451f5736bf19ea2c0f594d57069aaec6
6
+ metadata.gz: 15734e45c6922250e765593a6cea6b39ac09119fe8c5e75c2d7293ffb68abe2fbe290fc6f7fdb81bfcc11bfd0b7292bb424b42fc0f9ad2ceadfdb927504a0411
7
+ data.tar.gz: 4da67691c32609ff683e8973fcad9c1cc2a3716b4374fd8dd5d73eda7b77fef4399dc91b03399e3457f98eee4a98c76f703c5cdaad4fe55f783c3d27707e4544
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Dependencyswapper also known as `depswapper` is a CocoaPods plugin that allows to switch between "dev/test/prod" environments with just running a simple ruby command.
4
4
 
5
- As a watchOS, tvOS and iOS Framework developer I often find myself wanting to debug my non source Frameworks to make sure the problem is not in my dependent Application/Framework. It is always time consuming to have to find the `Podfile`, then look for the git repository of the Framework I want to debug and then google the syntax to read from a git repository. With this ruby gem, the only thing you need to do is keep track of your Framework repositories and add them to the `~/.depswapper/depmapper.json` file.
5
+ As a watchOS, tvOS and iOS Framework developer I often find myself wanting to debug my non source Frameworks to make sure the problem is not in my dependent Application/Framework. It is always time consuming to have to find the `Podfile`, then look for the git repository of the Framework I want to debug and then google the syntax to read from a git repository. With `depswapper` you will be able to change between source/non source pods with just one command in the terminal.
6
6
 
7
7
 
8
8
  ## Installation
@@ -23,9 +23,10 @@ Or install it yourself as:
23
23
 
24
24
  ## Usage
25
25
 
26
- First it is very important to run a setup command. This is as simple as running `depswapper setup` in the console.
27
26
 
28
- Now `depswapper` is ready to be used. Whenever you want to swap environments on any of your dependencies, run `depswapper test "NameOfYourFramework"` or `depswapper dev "NameOfYourFramework"` at the root of your Project.
27
+ Whenever you want to swap environments on any of your dependencies, run `depswapper test "NameOfYourFramework"` or `depswapper dev "NameOfYourFramework"` at the root of your Project.
28
+ - The `dev` subcommand will clone the git repository for the pod and point to it locally.
29
+ - The `test` subcommand will pull the pod directly from the git repository and pull it as source.
29
30
 
30
31
  ## Contributing
31
32
 
@@ -2,6 +2,7 @@
2
2
  require 'fileutils'
3
3
  require 'tempfile'
4
4
  require 'json'
5
+ require 'find'
5
6
 
6
7
  module Dependency
7
8
  class DependencyReplacer
@@ -20,56 +21,66 @@ module Dependency
20
21
  end
21
22
 
22
23
  def run
23
-
24
24
  file_lines = ''
25
- file = File.read("#{Dir.home}/.depswapper/depmapper.json")
26
- dependency_replacements = JSON.parse(file)
25
+ # file = File.read("#{Dir.home}/.depswapper/depmapper.json")
26
+ # dependency_replacements = JSON.parse(file)
27
27
 
28
28
  IO.readlines(@podfile_path).each do |line|
29
29
  file_lines += line unless line.include? "'" + dependency_name + "'"
30
30
  if line.include? "'" + dependency_name + "'"
31
- # We will look at the DependencyMapper to map each Framework with its git repository.
32
- remote_url = dependency_replacements[dependency_name]
31
+ # We will look in the cocoapods public/private repos to map each Framework with its git repository.
32
+ directories = Dir.glob("#{Dir.home}/.cocoapods/repos/**/" + dependency_name + ".podspec.json")
33
+ file = File.read(directories.last)
34
+ dependency_replacements = JSON.parse(file)
35
+
36
+ remote_url = dependency_replacements["homepage"]
33
37
  if remote_url.to_s.empty?
34
- puts "You are missing the dependency mapping for " + dependency_name + ". Make sure to add it in #{Dir.home}/.depswapper/depmapper.json"
35
- else
38
+ puts "You are missing the dependency mapping for " + dependency_name + "."
39
+ else
40
+ url_extension = File.extname(remote_url)
41
+ if url_extension.to_s.empty?
42
+ remote_url = remote_url + ".git"
43
+ end
36
44
  file_lines += "pod '" + @dependency_name + "', :git => '" + remote_url + "'\n"
37
45
  end
38
46
  end
39
47
  end
40
-
41
- #<extra string manipulation to file_lines if you wanted>
42
-
43
48
  File.open(@podfile_path, 'w') do |file|
44
49
  file.puts file_lines
45
50
  end
51
+ `pod install`
46
52
  end
47
53
 
48
54
  def dev
49
-
50
55
  file_lines = ''
51
- file = File.read("#{Dir.home}/.depswapper/depmapper.json")
52
- dependency_replacements = JSON.parse(file)
53
-
54
56
  IO.readlines(@podfile_path).each do |line|
55
57
  file_lines += line unless line.include? "'" + dependency_name + "'"
56
58
  if line.include? "'" + dependency_name + "'"
57
- # We will look at the DependencyMapper to map each Framework with its git repository.
58
- remote_url = dependency_replacements[dependency_name]
59
+ # We will look in the cocoapods public/private repos to map each Framework with its git repository.
60
+ directories = Dir.glob("#{Dir.home}/.cocoapods/repos/**/" + dependency_name + ".podspec.json")
61
+ file = File.read(directories.last)
62
+ dependency_replacements = JSON.parse(file)
63
+
64
+ remote_url = dependency_replacements["homepage"]
59
65
  if remote_url.to_s.empty?
60
- puts "You are missing the dependency mapping for " + dependency_name + ". Make sure to add it in #{Dir.home}/.depswapper/depmapper.json"
66
+ puts "You are missing the dependency mapping for " + dependency_name + "."
61
67
  else
62
- `git clone #{remote_url} dev-#{dependency_name}`
68
+ url_extension = File.extname(remote_url)
69
+ if url_extension.to_s.empty?
70
+ remote_url = remote_url + ".git"
71
+ end
72
+ unless File.directory?("dev-#{dependency_name}")
73
+ `git clone #{remote_url} dev-#{dependency_name}`
74
+ end
63
75
  file_lines += "pod '" + @dependency_name + "', :path => './dev-" + dependency_name + "/'\n"
64
76
  end
65
77
  end
66
78
  end
67
79
 
68
- #<extra string manipulation to file_lines if you wanted>
69
-
70
80
  File.open(@podfile_path, 'w') do |file|
71
81
  file.puts file_lines
72
82
  end
83
+ `pod install`
73
84
  end
74
85
  end
75
86
  end
@@ -11,24 +11,11 @@
11
11
  end
12
12
 
13
13
  desc "development FrameworkName", "Pulls the FrameworkName as development pod(editable source)"
14
+ option :exclude_repo
14
15
  def dev(name)
15
16
  Dependency::DependencySwapper.new({
16
17
  :dependency_name => name
17
18
  }).dev
18
19
  end
19
-
20
- desc "setup", "Initial setup for depswapper"
21
- def setup
22
- puts "Make sure to add your dependency mappings in the ~/.depswapper/depmapper.json file!"
23
- `if [ ! -d ~/.depswapper ]; then
24
- mkdir -p ~/.depswapper;
25
- fi
26
-
27
- if [ ! -e ~/.depswapper/depmapper.json ];then
28
- touch ~/.depswapper/depmapper.json
29
- echo '{\n\t\"DependencyName\":\"git-url\"\n}' > ~/.depswapper/depmapper.json
30
- fi
31
- `
32
- end
33
20
  end
34
21
  end
@@ -1,3 +1,3 @@
1
1
  module Dependencyswapper
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dependencyswapper
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc Terns
@@ -98,6 +98,7 @@ files:
98
98
  - lib/dependencyswapper/version.rb
99
99
  - pkg/dependencyswapper-0.1.0.gem
100
100
  - pkg/dependencyswapper-0.2.0.gem
101
+ - pkg/dependencyswapper-0.3.0.gem
101
102
  homepage: https://github.com/pkrmf/dependencyswapper
102
103
  licenses:
103
104
  - MIT