cocoapods-playgrounds 0.0.2 → 0.0.3

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: 34010f260bc70f94440ac5592d05f41bd650133c
4
- data.tar.gz: 4345f6d393a39345ab1abb920b9e4ac9a9d3e848
3
+ metadata.gz: 0b476f2ee0d9461b0d7b75689d4d06184505c230
4
+ data.tar.gz: 04365247c29e13ee170f491ff3e859c21cedc880
5
5
  SHA512:
6
- metadata.gz: cb52a9c3ec099f8fe3e9643ef11e4b628fe9ffd3df8d3a5ece5bc594fd6e02d220e93e68d2ab8354733041bf30125f69c47d5e3beb2f0ad3768a6601bb16666f
7
- data.tar.gz: cd6cbd804ceb86fa9ac9eb0342bd6bfea3085da2c91696ec0d5d4fd2dc1301ec2b8cd406a844668e04a3a3daca3a236f335e7dda71e43555e0186e22e9006470
6
+ metadata.gz: 4e82ff75337f6ddc80edd0e6072d864b0ef7e8e8455a0d33d3028ccae19c93a0e6be1d657dd99102776451bb633289259b8b9548a6601371ec8d7794429f564e
7
+ data.tar.gz: 1ea35dfd880f71b2c18d6bcac630b2bd68f69c56d5bd16485260077e99ced1327661d4eb3c1ac61f9304b0769543b99be946c76afc49d74f1dc883d0a39e5dbc
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .DS_Store
2
2
  pkg
3
3
  .idea/
4
+ Gemfile.lock
data/.rubocop.yml CHANGED
@@ -7,6 +7,7 @@ Style/Documentation:
7
7
  - 'test/**/*'
8
8
  - 'bin/playground'
9
9
  - 'lib/cocoapods-playgrounds/generate.rb'
10
+ - 'lib/cocoapods-playgrounds/workspace.rb'
10
11
  - 'lib/cocoapods-playgrounds/command/playgrounds.rb'
11
12
 
12
13
  Style/FileName:
data/README.md CHANGED
@@ -4,17 +4,29 @@
4
4
 
5
5
  Generates a Swift Playground for any Pod.
6
6
 
7
- ## Usage
7
+ ## Installation
8
8
 
9
- To generate a Playground from the commandline:
9
+ $ gem install cocoapods-playgrounds
10
10
 
11
- $ playground --platform=ios YOLO
12
- $ open YOLO.playground
11
+ ## Usage
12
+
13
+ ### CocoaPods
13
14
 
14
15
  To generate a Playground for a specific Pod:
15
16
 
16
17
  $ pod playgrounds Alamofire
17
18
 
18
- ## Installation
19
+ To generate a Playground for a local development Pod:
19
20
 
20
- $ gem install cocoapods-playgrounds
21
+ $ pod playgrounds ../../../Sources/Alamofire/Alamofire.podspec
22
+
23
+ To generate a Playground with multiple Pods:
24
+
25
+ $ pod playgrounds RxSwift,RxCocoa
26
+
27
+ ### CLI
28
+
29
+ To generate an empty Playground from the commandline:
30
+
31
+ $ playground --platform=ios YOLO
32
+ $ open YOLO.playground
@@ -1,2 +1,3 @@
1
1
  require 'cocoapods-playgrounds/generate'
2
+ require 'cocoapods-playgrounds/workspace'
2
3
  require 'cocoapods-playgrounds/command/playgrounds'
@@ -7,79 +7,23 @@ module Pod
7
7
  Generates a Swift Playground for any Pod.
8
8
  DESC
9
9
 
10
- self.arguments = [CLAide::Argument.new('NAME', true)]
10
+ self.arguments = [CLAide::Argument.new('NAMES', true)]
11
11
 
12
12
  def initialize(argv)
13
- @name = argv.shift_argument
14
- @platform = :ios # TODO: Should be configurable
15
- @deployment_target = '9.0' # TODO: Should be configurable
13
+ arg = argv.shift_argument
14
+ @names = arg.split(',') if arg
16
15
  super
17
16
  end
18
17
 
19
18
  def validate!
20
19
  super
21
- help! 'A Pod name is required.' unless @name
20
+ help! 'At least one Pod name is required.' unless @names
22
21
  end
23
22
 
24
23
  def run
25
- generate_project
26
-
27
- Dir.chdir(target_dir) do
28
- generate_podfile
29
- Pod::Executable.execute_command('pod', ['install', '--no-repo-update'])
30
- generator = Pod::PlaygroundGenerator.new(@platform)
31
- path = generator.generate(@name)
32
- File.open(path + 'Contents.swift', 'w') do |f|
33
- f.write("//: Please build the scheme '#{target_name}' first\n")
34
- f.write("import XCPlayground\n")
35
- f.write("XCPlaygroundPage.currentPage.needsIndefiniteExecution = true\n\n")
36
- f.write("import #{@name}\n\n")
37
- end
38
- end
39
-
40
- `open #{workspace_path}`
41
- end
42
-
43
- private
44
-
45
- def target_dir
46
- Pathname.new(target_name)
47
- end
48
-
49
- def target_name
50
- "#{@name}Playground"
51
- end
52
-
53
- def workspace_path
54
- target_dir + "#{@name}.xcworkspace"
55
- end
56
-
57
- def generate_podfile
58
- contents = "use_frameworks!\n\n"
59
- contents << "target '#{target_name}' do\n"
60
- contents << "pod '#{@name}'\n"
61
- contents << "end\n"
62
- File.open('Podfile', 'w') { |f| f.write(contents) }
63
- end
64
-
65
- def generate_project
66
- `rm -fr #{target_dir}`
67
- FileUtils.mkdir_p(target_dir)
68
-
69
- project_path = "#{target_dir}/#{@name}.xcodeproj"
70
- project = Xcodeproj::Project.new(project_path)
71
-
72
- target = project.new_target(:framework,
73
- target_name,
74
- @platform,
75
- @deployment_target)
76
- target.build_configurations.each do |config|
77
- config.build_settings['DEFINES_MODULE'] = 'NO'
78
- end
79
-
80
- # TODO: Should be at the root of the project
81
- project.new_file("#{@name}.playground")
82
- project.save
24
+ # TODO: Pass platform and deployment target from configuration
25
+ generator = WorkspaceGenerator.new(@names)
26
+ generator.generate
83
27
  end
84
28
  end
85
29
  end
@@ -1,3 +1,3 @@
1
1
  module CocoapodsPlaygrounds
2
- VERSION = '0.0.2'.freeze
2
+ VERSION = '0.0.3'.freeze
3
3
  end
@@ -0,0 +1,94 @@
1
+ module Pod
2
+ class WorkspaceGenerator
3
+ def initialize(names, platform = :ios, deployment_target = '9.0')
4
+ @names = names
5
+ @platform = platform
6
+ @deployment_target = deployment_target
7
+ end
8
+
9
+ def generate
10
+ @cwd = Pathname.getwd
11
+ generate_project
12
+
13
+ Dir.chdir(target_dir) do
14
+ generate_podfile
15
+ Pod::Executable.execute_command('pod', ['install', '--no-repo-update'])
16
+
17
+ generator = Pod::PlaygroundGenerator.new(@platform)
18
+ path = generator.generate(names.first)
19
+ generate_swift_code(path)
20
+ end
21
+
22
+ `open #{workspace_path}`
23
+ end
24
+
25
+ private
26
+
27
+ def names
28
+ @names.map do |name|
29
+ File.basename(name, '.podspec')
30
+ end
31
+ end
32
+
33
+ def pods
34
+ names.zip(@names).map do |name, path|
35
+ path = @cwd + path
36
+ requirement = "pod '#{name}'"
37
+ requirement += ", :path => '#{path.dirname}'" if path.exist?
38
+ requirement
39
+ end.join("\n")
40
+ end
41
+
42
+ def target_dir
43
+ Pathname.new(target_name)
44
+ end
45
+
46
+ def target_name
47
+ "#{names.first}Playground"
48
+ end
49
+
50
+ def workspace_path
51
+ target_dir + "#{names.first}.xcworkspace"
52
+ end
53
+
54
+ def generate_podfile
55
+ contents = "use_frameworks!\n\n"
56
+ contents << "target '#{target_name}' do\n"
57
+ contents << "#{pods}\n"
58
+ contents << "end\n"
59
+ File.open('Podfile', 'w') { |f| f.write(contents) }
60
+ end
61
+
62
+ def generate_project
63
+ `rm -fr #{target_dir}`
64
+ FileUtils.mkdir_p(target_dir)
65
+
66
+ project_path = "#{target_dir}/#{names.first}.xcodeproj"
67
+ project = Xcodeproj::Project.new(project_path)
68
+
69
+ target = project.new_target(:framework,
70
+ target_name,
71
+ @platform,
72
+ @deployment_target)
73
+ target.build_configurations.each do |config|
74
+ config.build_settings['DEFINES_MODULE'] = 'NO'
75
+ end
76
+
77
+ # TODO: Should be at the root of the project
78
+ project.new_file("#{names.first}.playground")
79
+ project.save
80
+ end
81
+
82
+ def generate_swift_code(path)
83
+ File.open(path + 'Contents.swift', 'w') do |f|
84
+ f.write("//: Please build the scheme '#{target_name}' first\n")
85
+ f.write("import XCPlayground\n")
86
+ f.write("XCPlaygroundPage.currentPage.needsIndefiniteExecution = true\n\n")
87
+ names.each do |name|
88
+ f.write("import #{name}\n")
89
+ end
90
+ f.write("\n")
91
+ end
92
+ end
93
+ end
94
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cocoapods-playgrounds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Bügling
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-11 00:00:00.000000000 Z
11
+ date: 2016-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -49,7 +49,6 @@ files:
49
49
  - .gitignore
50
50
  - .rubocop.yml
51
51
  - Gemfile
52
- - Gemfile.lock
53
52
  - LICENSE.txt
54
53
  - README.md
55
54
  - README_images/alamofire.png
@@ -61,6 +60,7 @@ files:
61
60
  - lib/cocoapods-playgrounds/command/playgrounds.rb
62
61
  - lib/cocoapods-playgrounds/gem_version.rb
63
62
  - lib/cocoapods-playgrounds/generate.rb
63
+ - lib/cocoapods-playgrounds/workspace.rb
64
64
  - lib/cocoapods_plugin.rb
65
65
  - spec/command/playgrounds_spec.rb
66
66
  - spec/generate_spec.rb
data/Gemfile.lock DELETED
@@ -1,84 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- cocoapods-playgrounds (0.0.2)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- activesupport (4.2.5.1)
10
- i18n (~> 0.7)
11
- json (~> 1.7, >= 1.7.7)
12
- minitest (~> 5.1)
13
- thread_safe (~> 0.3, >= 0.3.4)
14
- tzinfo (~> 1.1)
15
- bacon (1.2.0)
16
- claide (0.9.1)
17
- cocoapods (0.39.0)
18
- activesupport (>= 4.0.2)
19
- claide (~> 0.9.1)
20
- cocoapods-core (= 0.39.0)
21
- cocoapods-downloader (~> 0.9.3)
22
- cocoapods-plugins (~> 0.4.2)
23
- cocoapods-search (~> 0.1.0)
24
- cocoapods-stats (~> 0.6.2)
25
- cocoapods-trunk (~> 0.6.4)
26
- cocoapods-try (~> 0.5.1)
27
- colored (~> 1.2)
28
- escape (~> 0.0.4)
29
- molinillo (~> 0.4.0)
30
- nap (~> 1.0)
31
- xcodeproj (~> 0.28.2)
32
- cocoapods-core (0.39.0)
33
- activesupport (>= 4.0.2)
34
- fuzzy_match (~> 2.0.4)
35
- nap (~> 1.0)
36
- cocoapods-downloader (0.9.3)
37
- cocoapods-plugins (0.4.2)
38
- nap
39
- cocoapods-search (0.1.0)
40
- cocoapods-stats (0.6.2)
41
- cocoapods-trunk (0.6.4)
42
- nap (>= 0.8, < 2.0)
43
- netrc (= 0.7.8)
44
- cocoapods-try (0.5.1)
45
- colored (1.2)
46
- escape (0.0.4)
47
- fuzzy_match (2.0.4)
48
- i18n (0.7.0)
49
- json (1.8.3)
50
- metaclass (0.0.4)
51
- minitest (5.8.4)
52
- mocha (1.1.0)
53
- metaclass (~> 0.0.1)
54
- mocha-on-bacon (0.2.2)
55
- mocha (>= 0.13.0)
56
- molinillo (0.4.2)
57
- nap (1.1.0)
58
- netrc (0.7.8)
59
- prettybacon (0.0.2)
60
- bacon (~> 1.2)
61
- rake (10.5.0)
62
- thread_safe (0.3.5)
63
- tzinfo (1.2.2)
64
- thread_safe (~> 0.1)
65
- xcodeproj (0.28.2)
66
- activesupport (>= 3)
67
- claide (~> 0.9.1)
68
- colored (~> 1.2)
69
-
70
- PLATFORMS
71
- ruby
72
-
73
- DEPENDENCIES
74
- bacon
75
- bundler (~> 1.3)
76
- cocoapods
77
- cocoapods-playgrounds!
78
- mocha
79
- mocha-on-bacon
80
- prettybacon
81
- rake
82
-
83
- BUNDLED WITH
84
- 1.11.2