motion-cocoapods 1.2.2 → 1.3.0.rc1
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/lib/motion/project/cocoapods.rb +55 -49
- metadata +17 -12
- checksums.yaml +0 -7
@@ -1,15 +1,15 @@
|
|
1
1
|
# Copyright (c) 2012, Laurent Sansonetti <lrz@hipbyte.com>
|
2
2
|
# All rights reserved.
|
3
|
-
#
|
3
|
+
#
|
4
4
|
# Redistribution and use in source and binary forms, with or without
|
5
5
|
# modification, are permitted provided that the following conditions are met:
|
6
|
-
#
|
6
|
+
#
|
7
7
|
# 1. Redistributions of source code must retain the above copyright notice,
|
8
8
|
# this list of conditions and the following disclaimer.
|
9
9
|
# 2. Redistributions in binary form must reproduce the above copyright notice,
|
10
10
|
# this list of conditions and the following disclaimer in the documentation
|
11
11
|
# and/or other materials provided with the distribution.
|
12
|
-
#
|
12
|
+
#
|
13
13
|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
14
14
|
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
15
15
|
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
@@ -37,23 +37,28 @@ module Motion::Project
|
|
37
37
|
def pods(&block)
|
38
38
|
@pods ||= Motion::Project::CocoaPods.new(self)
|
39
39
|
if block
|
40
|
+
@pods.instance_eval(&block)
|
41
|
+
|
40
42
|
# We run the update/install commands only if necessary.
|
41
|
-
|
42
|
-
|
43
|
-
if
|
44
|
-
|
43
|
+
cp_config = Pod::Config.instance
|
44
|
+
analyzer = Pod::Installer::Analyzer.new(cp_config.sandbox, @pods.podfile, cp_config.lockfile)
|
45
|
+
if analyzer.needs_install?
|
46
|
+
@pods.install!
|
45
47
|
end
|
46
|
-
@pods.
|
47
|
-
@pods.install!
|
48
|
+
@pods.link_project
|
48
49
|
end
|
49
50
|
@pods
|
50
51
|
end
|
51
52
|
end
|
52
53
|
|
54
|
+
#---------------------------------------------------------------------------#
|
55
|
+
|
53
56
|
class CocoaPods
|
54
|
-
VERSION = '1.
|
57
|
+
VERSION = '1.3.0.rc1'
|
55
58
|
PODS_ROOT = 'vendor/Pods'
|
56
59
|
|
60
|
+
attr_accessor :podfile
|
61
|
+
|
57
62
|
def initialize(config)
|
58
63
|
@config = config
|
59
64
|
|
@@ -61,6 +66,7 @@ module Motion::Project
|
|
61
66
|
@podfile.platform :ios, config.deployment_target
|
62
67
|
cp_config.podfile = @podfile
|
63
68
|
|
69
|
+
cp_config.skip_repo_update = ENV['COCOAPODS_NO_UPDATE']
|
64
70
|
if ENV['COCOAPODS_VERBOSE']
|
65
71
|
cp_config.verbose = true
|
66
72
|
else
|
@@ -68,9 +74,12 @@ module Motion::Project
|
|
68
74
|
end
|
69
75
|
|
70
76
|
cp_config.integrate_targets = false
|
71
|
-
cp_config.
|
77
|
+
cp_config.installation_root = Pathname.new(File.expand_path(config.project_dir)) + 'vendor'
|
72
78
|
end
|
73
79
|
|
80
|
+
# DSL
|
81
|
+
#-------------------------------------------------------------------------#
|
82
|
+
|
74
83
|
def pod(*name_and_version_requirements, &block)
|
75
84
|
@podfile.pod(*name_and_version_requirements, &block)
|
76
85
|
end
|
@@ -84,32 +93,31 @@ module Motion::Project
|
|
84
93
|
@podfile.post_install(&block)
|
85
94
|
end
|
86
95
|
|
96
|
+
# Installation & Linking
|
97
|
+
#-------------------------------------------------------------------------#
|
98
|
+
|
87
99
|
def pods_installer
|
88
|
-
@installer ||=
|
89
|
-
# This should move into a factory method in CocoaPods.
|
90
|
-
sandbox = Pod::Sandbox.new(cp_config.project_pods_root)
|
91
|
-
resolver = Pod::Resolver.new(@podfile, cp_config.lockfile, sandbox)
|
92
|
-
resolver.update_mode = !!ENV['UPDATE']
|
93
|
-
Pod::Installer.new(resolver)
|
94
|
-
end
|
100
|
+
@installer ||= Pod::Installer.new(cp_config.sandbox, @podfile, cp_config.lockfile)
|
95
101
|
end
|
96
102
|
|
103
|
+
# Performs a CocoaPods Installation.
|
104
|
+
#
|
97
105
|
# For now we only support one Pods target, this will have to be expanded
|
98
106
|
# once we work on more spec support.
|
107
|
+
#
|
108
|
+
# Let RubyMotion re-generate the BridgeSupport file whenever the list of
|
109
|
+
# installed pods changes.
|
110
|
+
#
|
99
111
|
def install!
|
100
|
-
if bridgesupport_file.exist? && cp_config.project_lockfile.exist?
|
101
|
-
installed_pods_before = installed_pods
|
102
|
-
end
|
103
|
-
|
104
112
|
pods_installer.install!
|
105
|
-
|
106
|
-
# Let RubyMotion re-generate the BridgeSupport file whenever the list of
|
107
|
-
# installed pods changes.
|
108
|
-
if bridgesupport_file.exist? && installed_pods_before &&
|
109
|
-
installed_pods_before != installed_pods
|
113
|
+
if bridgesupport_file.exist? && !pods_installer.installed_specs.empty?
|
110
114
|
bridgesupport_file.delete
|
111
115
|
end
|
116
|
+
end
|
112
117
|
|
118
|
+
# Adds the Pods project to the RubyMotion config as a vendored project.
|
119
|
+
#
|
120
|
+
def link_project
|
113
121
|
install_resources
|
114
122
|
|
115
123
|
@config.vendor_project(PODS_ROOT, :xcode,
|
@@ -143,12 +151,25 @@ module Motion::Project
|
|
143
151
|
end
|
144
152
|
end
|
145
153
|
|
146
|
-
def
|
147
|
-
|
154
|
+
def install_resources
|
155
|
+
FileUtils.mkdir_p(resources_dir)
|
156
|
+
resources.each do |file|
|
157
|
+
begin
|
158
|
+
FileUtils.cp_r file, resources_dir
|
159
|
+
rescue ArgumentError => exc
|
160
|
+
unless exc.message =~ /same file/
|
161
|
+
raise
|
162
|
+
end
|
163
|
+
end
|
164
|
+
end
|
165
|
+
@config.resources_dirs << resources_dir.to_s
|
148
166
|
end
|
149
167
|
|
150
|
-
|
151
|
-
|
168
|
+
# Helpers
|
169
|
+
#-------------------------------------------------------------------------#
|
170
|
+
|
171
|
+
def cp_config
|
172
|
+
Pod::Config.instance
|
152
173
|
end
|
153
174
|
|
154
175
|
def bridgesupport_file
|
@@ -160,14 +181,9 @@ module Motion::Project
|
|
160
181
|
Xcodeproj::Config.new(path)
|
161
182
|
end
|
162
183
|
|
163
|
-
def resources_dir
|
164
|
-
Pathname.new(@config.project_dir) + PODS_ROOT + 'Resources'
|
165
|
-
end
|
166
|
-
|
167
184
|
def resources
|
168
185
|
resources = []
|
169
|
-
|
170
|
-
File.open(pods_resources_path) { |f|
|
186
|
+
File.open(Pathname.new(@config.project_dir) + PODS_ROOT + 'Pods-resources.sh') { |f|
|
171
187
|
f.each_line do |line|
|
172
188
|
if matched = line.match(/install_resource\s+'(.*)'/)
|
173
189
|
resources << Pathname.new(@config.project_dir) + PODS_ROOT + matched[1]
|
@@ -177,18 +193,8 @@ module Motion::Project
|
|
177
193
|
resources
|
178
194
|
end
|
179
195
|
|
180
|
-
def
|
181
|
-
|
182
|
-
resources.each do |file|
|
183
|
-
begin
|
184
|
-
FileUtils.cp_r file, resources_dir
|
185
|
-
rescue ArgumentError => exc
|
186
|
-
unless exc.message =~ /same file/
|
187
|
-
raise
|
188
|
-
end
|
189
|
-
end
|
190
|
-
end
|
191
|
-
@config.resources_dirs << resources_dir.to_s
|
196
|
+
def resources_dir
|
197
|
+
Pathname.new(@config.project_dir) + PODS_ROOT + 'Resources'
|
192
198
|
end
|
193
199
|
|
194
200
|
def inspect
|
metadata
CHANGED
@@ -1,29 +1,32 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-cocoapods
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0.rc1
|
5
|
+
prerelease: 6
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Laurent Sansonetti
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-29 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: cocoapods
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
|
-
- - '>='
|
19
|
+
- - ! '>='
|
18
20
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
21
|
+
version: 0.17.0
|
20
22
|
type: :runtime
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
|
-
- - '>='
|
27
|
+
- - ! '>='
|
25
28
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
29
|
+
version: 0.17.0
|
27
30
|
description: motion-cocoapods allows RubyMotion projects to have access to the CocoaPods
|
28
31
|
dependency manager.
|
29
32
|
email: lrz@hipbyte.com
|
@@ -37,25 +40,27 @@ files:
|
|
37
40
|
- LICENSE
|
38
41
|
homepage: http://www.rubymotion.com
|
39
42
|
licenses: []
|
40
|
-
metadata: {}
|
41
43
|
post_install_message:
|
42
44
|
rdoc_options: []
|
43
45
|
require_paths:
|
44
46
|
- lib
|
45
47
|
required_ruby_version: !ruby/object:Gem::Requirement
|
48
|
+
none: false
|
46
49
|
requirements:
|
47
|
-
- - '>='
|
50
|
+
- - ! '>='
|
48
51
|
- !ruby/object:Gem::Version
|
49
52
|
version: '0'
|
50
53
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
51
55
|
requirements:
|
52
|
-
- - '
|
56
|
+
- - ! '>'
|
53
57
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
58
|
+
version: 1.3.1
|
55
59
|
requirements: []
|
56
60
|
rubyforge_project:
|
57
|
-
rubygems_version:
|
61
|
+
rubygems_version: 1.8.23
|
58
62
|
signing_key:
|
59
|
-
specification_version:
|
63
|
+
specification_version: 3
|
60
64
|
summary: CocoaPods integration for RubyMotion projects
|
61
65
|
test_files: []
|
66
|
+
has_rdoc:
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 9a6515bb61266bad77ded4c9f831a9440aed449e
|
4
|
-
data.tar.gz: 994cc2b82fa82f326e86696e2339fccef531eff7
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: c6d54b304477048265ed2ab7702078eb8f5fe3ed2827637532da4c8468ef97d7d102887d90e5c28f8e59edd4c0df1ce024eec47ee7e022583ad6dc7a7edd9cc5
|
7
|
-
data.tar.gz: 29f060ffc2213922b8563ac275a4be19baea01f5f69dcd3554b963e37d8a10b809e52f25a0ef66b8f369efab21b398f36a566febc613f1e386d800f4789a2ff0
|