Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
C
cocoapods
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gengmeiios
cocoapods
Commits
d51f5a06
Commit
d51f5a06
authored
Apr 02, 2012
by
Eloy Duran
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Make UserProjectIntegrator work again.
parent
3a9bf898
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
46 additions
and
32 deletions
+46
-32
.kick
.kick
+6
-6
install.rb
lib/cocoapods/command/install.rb
+2
-2
installer.rb
lib/cocoapods/installer.rb
+3
-3
user_project_integrator.rb
lib/cocoapods/installer/user_project_integrator.rb
+10
-6
user_project_integrator_spec.rb
spec/functional/user_project_integrator_spec.rb
+8
-4
integration_spec.rb
spec/integration_spec.rb
+5
-2
install_command_spec.rb
spec/unit/command/install_command_spec.rb
+6
-5
user_project_integrator_spec.rb
spec/unit/installer/user_project_integrator_spec.rb
+6
-4
No files found.
.kick
View file @
d51f5a06
...
...
@@ -4,12 +4,12 @@ Kicker::Recipes::Ruby.runner_bin = 'bacon'
process do |files|
specs = files.take_and_map do |file|
case file
when %r{lib/cocoapods/installer.+\.rb$}
['spec/unit/installer_spec.rb', 'spec/unit/installer/target_installer_spec.rb']
when %r{lib/cocoapods/(.+?)\.rb$}
s = Dir.glob("spec/**/#{$1}_spec.rb")
s unless s.empty?
if file =~ %r{lib/cocoapods/(.+?)\.rb$}
s = Dir.glob("spec/**/#{File.basename(file, '.rb')}_spec.rb")
if file =~ %r{lib/cocoapods/installer.+\.rb$}
s.concat(['spec/unit/installer_spec.rb', 'spec/unit/installer/target_installer_spec.rb'])
end
s
.uniq
unless s.empty?
end
end
Kicker::Recipes::Ruby.run_tests(specs)
...
...
lib/cocoapods/command/install.rb
View file @
d51f5a06
...
...
@@ -11,7 +11,7 @@ module Pod
The Xcode project file should be specified in your `Podfile` like this:
xcodeproj "path/to/project.xcodeproj"
xcodeproj 'path/to/project.xcodeproj'
If no xcodeproj is specified, then a search for an Xcode project will
be made. If more than one Xcode project is found, the command will
...
...
@@ -59,7 +59,7 @@ module Pod
Repo
.
new
(
ARGV
.
new
([
"update"
])).
run
end
Installer
.
new
(
podfile
,
@projpath
).
install!
Installer
.
new
(
podfile
).
install!
end
end
end
...
...
lib/cocoapods/installer.rb
View file @
d51f5a06
...
...
@@ -9,8 +9,8 @@ module Pod
attr_reader
:sandbox
def
initialize
(
podfile
,
user_project_path
=
nil
)
@podfile
,
@user_project_path
=
podfile
,
user_project_path
def
initialize
(
podfile
)
@podfile
=
podfile
# FIXME: pass this into the installer as a parameter
@sandbox
=
Sandbox
.
new
(
config
.
project_pods_root
)
@resolver
=
Resolver
.
new
(
@podfile
,
@sandbox
)
...
...
@@ -91,7 +91,7 @@ module Pod
puts
"* Writing Xcode project file to `
#{
@sandbox
.
project_path
}
'
\n\n
"
if
config
.
verbose?
project
.
save_as
(
@sandbox
.
project_path
)
UserProjectIntegrator
.
new
(
@podfile
.
xcodeproj
,
@podfile
).
integrate!
UserProjectIntegrator
.
new
(
@podfile
).
integrate!
if
@podfile
.
xcodeproj
end
def
run_post_install_hooks
...
...
lib/cocoapods/installer/user_project_integrator.rb
View file @
d51f5a06
...
...
@@ -7,12 +7,8 @@ module Pod
class
UserProjectIntegrator
include
Pod
::
Config
::
Mixin
attr_reader
:user_project_path
,
:user_project
def
initialize
(
user_project_path
,
podfile
)
@user_project_path
=
config
.
project_root
+
user_project_path
def
initialize
(
podfile
)
@podfile
=
podfile
@user_project
=
Xcodeproj
::
Project
.
new
(
user_project_path
)
end
def
integrate!
...
...
@@ -21,7 +17,7 @@ module Pod
# Only need to write out the user's project if any of the target
# integrators actually did some work.
if
targets
.
map
(
&
:integrate!
).
any?
@
user_project
.
save_as
(
user_project_path
)
user_project
.
save_as
(
user_project_path
)
end
unless
config
.
silent?
...
...
@@ -30,6 +26,14 @@ module Pod
end
end
def
user_project_path
@podfile
.
xcodeproj
end
def
user_project
@user_project
||=
Xcodeproj
::
Project
.
new
(
user_project_path
)
end
def
workspace_path
config
.
project_root
+
"
#{
user_project_path
.
basename
(
'.xcodeproj'
)
}
.xcworkspace"
end
...
...
spec/functional/user_project_integrator_spec.rb
View file @
d51f5a06
...
...
@@ -4,10 +4,16 @@ describe Pod::Installer::UserProjectIntegrator do
extend
SpecHelper
::
TemporaryDirectory
before
do
@sample_project_path
=
SpecHelper
.
create_sample_app_copy_from_fixture
(
'SampleProject'
)
config
.
project_root
=
@sample_project_path
.
dirname
sample_project_path
=
@sample_project_path
@podfile
=
Pod
::
Podfile
.
new
do
platform
:ios
xcodeproj
sample_project_path
link_with
'SampleProject'
# this is an app target!
dependency
'JSONKit'
target
:test_runner
,
:exclusive
=>
true
do
...
...
@@ -16,11 +22,9 @@ describe Pod::Installer::UserProjectIntegrator do
end
end
@sample_project_path
=
SpecHelper
.
create_sample_app_copy_from_fixture
(
'SampleProject'
)
config
.
project_root
=
@sample_project_path
.
dirname
@integrator
=
Pod
::
Installer
::
UserProjectIntegrator
.
new
(
@sample_project_path
,
@podfile
)
@integrator
=
Pod
::
Installer
::
UserProjectIntegrator
.
new
(
@podfile
)
@integrator
.
integrate!
@sample_project
=
Xcodeproj
::
Project
.
new
(
@sample_project_path
)
end
...
...
spec/integration_spec.rb
View file @
d51f5a06
...
...
@@ -367,11 +367,14 @@ else
basename
=
platform
==
:ios
?
'iPhone'
:
'Mac'
projpath
=
temporary_directory
+
'ASIHTTPRequest.xcodeproj'
FileUtils
.
cp_r
(
fixture
(
"integration/ASIHTTPRequest/
#{
basename
}
.xcodeproj"
),
projpath
)
spec
=
Pod
::
Podfile
.
new
do
podfile
=
Pod
::
Podfile
.
new
do
self
.
platform
platform
xcodeproj
projpath
dependency
'SSZipArchive'
end
installer
=
SpecHelper
::
Installer
.
new
(
spec
,
projpath
)
installer
=
SpecHelper
::
Installer
.
new
(
podfile
)
installer
.
install!
workspace
=
Xcodeproj
::
Workspace
.
new_from_xcworkspace
(
temporary_directory
+
'ASIHTTPRequest.xcworkspace'
)
...
...
spec/unit/install_command_spec.rb
→
spec/unit/
command/
install_command_spec.rb
View file @
d51f5a06
require
File
.
expand_path
(
'../../spec_helper'
,
__FILE__
)
require
File
.
expand_path
(
'../../
../
spec_helper'
,
__FILE__
)
describe
"Pod::Command::Install"
do
it
"should include instructions on how to reference the xcode project"
do
Pod
::
Command
::
Install
.
banner
.
should
.
match
/xcodeproj path\/to\/project.xcodeproj/
Pod
::
Command
::
Install
.
banner
.
should
.
match
%r{xcodeproj 'path/to/project
\.
xcodeproj'}
end
before
do
...
...
@@ -17,9 +17,10 @@ describe "Pod::Command::Install" do
describe
"When the Podfile does not specify the xcodeproject"
do
before
do
config
.
stubs
(
:
rootspec
).
returns
(
Pod
::
Podfile
.
new
{
platform
:ios
;
dependency
'AFNetworking'
})
config
.
stubs
(
:
podfile
).
returns
(
Pod
::
Podfile
.
new
{
platform
:ios
;
dependency
'AFNetworking'
})
@installer
=
Pod
::
Command
::
Install
.
new
(
Pod
::
Command
::
ARGV
.
new
)
end
it
"raises an informative error"
do
should
.
raise
(
Pod
::
Informative
)
{
@installer
.
run
}
end
...
...
@@ -28,14 +29,14 @@ describe "Pod::Command::Install" do
begin
@installer
.
run
rescue
Pod
::
Informative
=>
err
err
.
message
.
should
.
match
/xcodeproj 'path\/to\/project\.xcodeproj/
err
.
message
.
should
.
match
%r{xcodeproj 'path/to/project
\.
xcodeproj'}
end
end
end
describe
"When the Podfile specifies xcodeproj to an invalid path"
do
before
do
config
.
stubs
(
:
rootspec
).
returns
(
Pod
::
Podfile
.
new
{
platform
:ios
;
xcodeproj
'nonexistent/project.xcodeproj'
;
dependency
'AFNetworking'
})
config
.
stubs
(
:
podfile
).
returns
(
Pod
::
Podfile
.
new
{
platform
:ios
;
xcodeproj
'nonexistent/project.xcodeproj'
;
dependency
'AFNetworking'
})
@installer
=
Pod
::
Command
::
Install
.
new
(
Pod
::
Command
::
ARGV
.
new
)
end
...
...
spec/unit/installer/user_project_integrator_spec.rb
View file @
d51f5a06
...
...
@@ -4,8 +4,13 @@ describe Pod::Installer::UserProjectIntegrator do
extend
SpecHelper
::
TemporaryDirectory
before
do
@sample_project_path
=
SpecHelper
.
create_sample_app_copy_from_fixture
(
'SampleProject'
)
config
.
project_root
=
@sample_project_path
.
dirname
sample_project_path
=
@sample_project_path
@podfile
=
Pod
::
Podfile
.
new
do
platform
:ios
xcodeproj
sample_project_path
dependency
'JSONKit'
target
:test_runner
,
:exclusive
=>
true
do
link_with
'TestRunner'
...
...
@@ -13,10 +18,7 @@ describe Pod::Installer::UserProjectIntegrator do
end
end
@sample_project_path
=
SpecHelper
.
create_sample_app_copy_from_fixture
(
'SampleProject'
)
config
.
project_root
=
@sample_project_path
.
dirname
@integrator
=
Pod
::
Installer
::
UserProjectIntegrator
.
new
(
@sample_project_path
,
@podfile
)
@integrator
=
Pod
::
Installer
::
UserProjectIntegrator
.
new
(
@podfile
)
end
after
do
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment