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
a6029d66
Commit
a6029d66
authored
Dec 18, 2012
by
Fabio Pelosin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[Integration] Cleaned specs.
parent
5190db62
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
403 additions
and
413 deletions
+403
-413
Gemfile.lock
Gemfile.lock
+2
-2
installer.rb
lib/cocoapods/installer.rb
+8
-1
analyzer.rb
lib/cocoapods/installer/analyzer.rb
+1
-1
local_pod.rb
lib/cocoapods/local_pod.rb
+1
-1
integration_spec.rb
spec/integration_spec.rb
+368
-406
spec_helper.rb
spec/spec_helper.rb
+22
-1
bacon.rb
spec/spec_helper/bacon.rb
+1
-1
No files found.
Gemfile.lock
View file @
a6029d66
GIT
GIT
remote: git://github.com/CocoaPods/Core.git
remote: git://github.com/CocoaPods/Core.git
revision:
08a308017a4fbf327143f14353cf698460088ac9
revision:
65076d5eb9b6b99ecce7b4628ce08b4c0f98f192
specs:
specs:
cocoapods-core (0.17.0.alpha)
cocoapods-core (0.17.0.alpha)
activesupport (~> 3.2.6)
activesupport (~> 3.2.6)
...
@@ -63,7 +63,7 @@ GEM
...
@@ -63,7 +63,7 @@ GEM
multipart-post (~> 1.1)
multipart-post (~> 1.1)
faraday_middleware (0.9.0)
faraday_middleware (0.9.0)
faraday (>= 0.7.4, < 0.9)
faraday (>= 0.7.4, < 0.9)
github-markup (0.7.
4
)
github-markup (0.7.
5
)
hashie (1.2.0)
hashie (1.2.0)
i18n (0.6.1)
i18n (0.6.1)
json (1.7.5)
json (1.7.5)
...
...
lib/cocoapods/installer.rb
View file @
a6029d66
...
@@ -128,6 +128,13 @@ module Pod
...
@@ -128,6 +128,13 @@ module Pod
#-------------------------------------------------------------------------#
#-------------------------------------------------------------------------#
# @!group Hooks compatiblity
alias
:project
:pods_project
alias
:pods
:local_pods
#-------------------------------------------------------------------------#
# @!group Installation steps
# @!group Installation steps
private
private
...
@@ -238,7 +245,7 @@ module Pod
...
@@ -238,7 +245,7 @@ module Pod
unless
analyzer
.
sandbox_state
.
deleted
.
empty?
unless
analyzer
.
sandbox_state
.
deleted
.
empty?
UI
.
section
"Removing deleted dependencies"
do
UI
.
section
"Removing deleted dependencies"
do
pods_deleted_from_the_lockfile
.
each
do
|
pod_name
|
analyzer
.
sandbox_state
.
deleted
.
each
do
|
pod_name
|
UI
.
section
(
"Removing
#{
pod_name
}
"
,
"-> "
.
red
)
do
UI
.
section
(
"Removing
#{
pod_name
}
"
,
"-> "
.
red
)
do
path
=
sandbox
.
root
+
pod_name
path
=
sandbox
.
root
+
pod_name
path
.
rmtree
if
path
.
exist?
path
.
rmtree
if
path
.
exist?
...
...
lib/cocoapods/installer/analyzer.rb
View file @
a6029d66
...
@@ -203,7 +203,7 @@ module Pod
...
@@ -203,7 +203,7 @@ module Pod
lib
.
user_targets
=
[]
lib
.
user_targets
=
[]
lib
.
user_build_configurations
=
{}
lib
.
user_build_configurations
=
{}
lib
.
platform
=
target_definition
.
platform
lib
.
platform
=
target_definition
.
platform
raise
Informative
"It is necessary to specify the platform in the Podfile if not integrating."
unless
target_definition
.
platform
raise
Informative
,
"It is necessary to specify the platform in the Podfile if not integrating."
unless
target_definition
.
platform
end
end
libraries
<<
lib
libraries
<<
lib
end
end
...
...
lib/cocoapods/local_pod.rb
View file @
a6029d66
...
@@ -44,7 +44,7 @@ module Pod
...
@@ -44,7 +44,7 @@ module Pod
# generated and be cleaned.
# generated and be cleaned.
#
#
attr_accessor
:downloaded
attr_accessor
:downloaded
alias_method
:downloaded?
,
:downloaded
alias_method
:downloaded?
,
:downloaded
# @param [Specification] specification The first activated specification
# @param [Specification] specification The first activated specification
# of the pod.
# of the pod.
...
...
spec/integration_spec.rb
View file @
a6029d66
...
@@ -3,503 +3,465 @@ require 'yaml'
...
@@ -3,503 +3,465 @@ require 'yaml'
# TODO Make specs faster by limiting remote network connections
# TODO Make specs faster by limiting remote network connections
module
SpecHelper
#-----------------------------------------------------------------------------#
class
Installer
<
Pod
::
Installer
# Here we override the `source' of the pod specifications to point to the integration fixtures.
# @!group Helpers
def
specs_by_target
@specs_by_target
||=
super
.
tap
do
|
hash
|
def
skip_xcodebuild?
hash
.
values
.
flatten
.
each
do
|
spec
|
ENV
[
'SKIP_XCODEBUILD'
]
next
if
spec
.
subspec?
end
source
=
spec
.
source
source
[
:git
]
=
SpecHelper
.
fixture
(
"integration/
#{
spec
.
name
}
"
).
to_s
puts
" [!] "
.
red
<<
"Skipping xcodebuild based checks, because it can't be found."
if
skip_xcodebuild?
spec
.
source
=
source
end
def
should_xcodebuild
(
target_definition
)
end
return
if
skip_xcodebuild?
end
target
=
target_definition
Dir
.
chdir
(
config
.
project_pods_root
)
do
print
"[!] Compiling
#{
target
.
label
}
...
\r
"
should_successfully_perform
"xcodebuild -target '
#{
target
.
label
}
'"
product_name
=
"lib
#{
target_definition
.
label
}
.a"
lib_path
=
config
.
project_pods_root
+
"build/Release
#{
'-iphoneos'
if
target
.
platform
==
:ios
}
"
+
product_name
`lipo -info '
#{
lib_path
}
'`
.
should
.
include
"
#{
target
.
platform
==
:ios
?
'armv7'
:
'x86_64'
}
"
end
end
end
end
unless
SpecHelper
.
fixture
(
'integration/ASIHTTPRequest/Classes'
).
exist?
def
should_successfully_perform
(
command
)
puts
"[!] You must run `git submodule update --init` for the integration spec to work, skipping."
output
=
`
#{
command
}
2>&1`
else
puts
output
unless
$?
.
success?
[
:ios
,
:osx
].
each
do
|
platform
|
$?
.
should
.
be
.
success
describe
"A full (integration spec) installation for platform `
#{
platform
}
'"
do
end
extend
SpecHelper
::
TemporaryDirectory
def
create_config!
#-----------------------------------------------------------------------------#
config
.
repos_dir
=
fixture
(
'spec-repos'
)
config
.
project_root
=
temporary_directory
config
.
integrate_targets
=
false
end
before
do
module
Pod
fixture
(
'spec-repos/master'
)
# ensure the archive is unpacked
create_config!
end
def
should_successfully_perform
(
command
)
describe
"Full integration"
do
output
=
`
#{
command
}
2>&1`
puts
output
unless
$?
.
success?
$?
.
should
.
be
.
success
end
puts
" ! "
.
red
<<
"Skipping xcodebuild based checks, because it can't be found."
if
skip_xcodebuild?
before
do
# fixture('spec-repos/master') # ensure the archive is unpacked
config
.
integrate_targets
=
false
end
def
should_xcodebuild
(
target_definition
)
#-------------------------------------------------------------------------#
return
if
skip_xcodebuild?
target
=
target_definition
Dir
.
chdir
(
config
.
project_pods_root
)
do
print
"[!] Compiling
#{
target
.
label
}
...
\r
"
should_successfully_perform
"xcodebuild -target '
#{
target
.
label
}
'"
lib_path
=
config
.
project_pods_root
+
"build/Release
#{
'-iphoneos'
if
target
.
platform
==
:ios
}
"
+
target
.
lib_name
`lipo -info '
#{
lib_path
}
'`
.
should
.
include
"
#{
target
.
platform
==
:ios
?
'armv7'
:
'x86_64'
}
"
end
end
# Lame way to run on one platform only
describe
"Single platform"
do
if
platform
==
:ios
extend
SpecHelper
::
TemporaryDirectory
it
"installs a Pod directly from its repo"
do
url
=
fixture
(
'integration/sstoolkit'
).
to_s
commit
=
'2adcd0f81740d6b0cd4589af98790eee3bd1ae7b'
podfile
=
Pod
::
Podfile
.
new
do
self
.
platform
:ios
xcodeproj
'dummy'
pod
'SSToolkit'
,
:git
=>
url
,
:commit
=>
commit
end
# Note that we are *not* using the stubbed SpecHelper::Installer subclass.
# it "includes automatically inherited subspecs" do
installer
=
Pod
::
Installer
.
new
(
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
),
podfile
)
# end
installer
.
install!
result
=
installer
.
lockfile
.
to_hash
result
[
'PODS'
].
should
==
[
'SSToolkit (0.1.3)'
]
result
[
'DEPENDENCIES'
].
should
==
[
"SSToolkit (from `
#{
url
}
', commit `
#{
commit
}
')"
]
result
[
'EXTERNAL SOURCES'
].
should
==
{
"SSToolkit"
=>
{
:git
=>
url
,
:commit
=>
commit
}}
end
it
"installs a library with a podspec outside of the repo"
do
# it "handles different subspecs for the same Pod in different target definitions" do
url
=
'https://raw.github.com/gist/1349824/3ec6aa60c19113573fc48eac19d0fafd6a69e033/Reachability.podspec'
# end
podfile
=
Pod
::
Podfile
.
new
do
self
.
platform
:ios
xcodeproj
'dummy'
# TODO use a local file instead of http?
pod
'Reachability'
,
:podspec
=>
url
end
installer
=
SpecHelper
::
Installer
.
new
(
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
),
podfile
)
it
"installs a Pod directly from its repo"
do
installer
.
install!
url
=
fixture
(
'integration/sstoolkit'
).
to_s
result
=
installer
.
lockfile
.
to_hash
commit
=
'2adcd0f81740d6b0cd4589af98790eee3bd1ae7b'
result
[
'PODS'
].
should
==
[
'Reachability (1.2.3)'
]
podfile
=
Podfile
.
new
do
result
[
'DEPENDENCIES'
].
should
==
[
"Reachability (from `
#{
url
}
')"
]
platform
:ios
result
[
'EXTERNAL SOURCES'
].
should
==
{
"Reachability"
=>
{
:podspec
=>
"https://raw.github.com/gist/1349824/3ec6aa60c19113573fc48eac19d0fafd6a69e033/Reachability.podspec"
}}
xcodeproj
'dummy'
pod
'SSToolkit'
,
:git
=>
url
,
:commit
=>
commit
end
end
it
"installs a dummy source file"
do
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
create_config!
installer
.
install!
podfile
=
Pod
::
Podfile
.
new
do
lockfile
=
installer
.
lockfile
.
to_hash
self
.
platform
:ios
lockfile
[
'PODS'
].
should
==
[
'SSToolkit (0.1.3)'
]
xcodeproj
'dummy'
lockfile
[
'DEPENDENCIES'
].
should
==
[
"SSToolkit (from `
#{
url
}
`, commit `
#{
commit
}
`)"
]
pod
do
|
s
|
lockfile
[
'EXTERNAL SOURCES'
].
should
==
{
"SSToolkit"
=>
{
:git
=>
url
,
:commit
=>
commit
}}
s
.
name
=
'JSONKit'
end
s
.
version
=
'1.2'
s
.
source
=
{
:git
=>
SpecHelper
.
fixture
(
'integration/JSONKit'
).
to_s
,
:tag
=>
'v1.2'
}
s
.
source_files
=
'JSONKit.*'
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
#--------------------------------------#
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
dummy
=
(
config
.
project_pods_root
+
'PodsDummy_Pods.m'
).
read
# @todo Using the podspec from the repo might invalidate the test.
dummy
.
should
.
include?
(
'@implementation PodsDummy_Pods'
)
#
it
"installs a library with a podspec outside of the repo"
do
url
=
fixture
(
'integration/Reachability/Reachability.podspec'
).
to_s
podfile
=
Podfile
.
new
do
platform
:ios
xcodeproj
'dummy'
pod
'Reachability'
,
:podspec
=>
url
end
end
it
"installs a dummy source file unique to the target"
do
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
create_config!
installer
.
install!
podfile
=
Pod
::
Podfile
.
new
do
lockfile
=
installer
.
lockfile
.
to_hash
self
.
platform
:ios
lockfile
[
'PODS'
].
should
==
[
'Reachability (3.0.0)'
]
xcodeproj
'dummy'
lockfile
[
'DEPENDENCIES'
].
should
==
[
"Reachability (from `
#{
url
}
`)"
]
pod
do
|
s
|
lockfile
[
'EXTERNAL SOURCES'
].
should
==
{
"Reachability"
=>
{
:podspec
=>
url
}}
s
.
name
=
'JSONKit'
end
s
.
version
=
'1.2'
s
.
source
=
{
:git
=>
SpecHelper
.
fixture
(
'integration/JSONKit'
).
to_s
,
:tag
=>
'v1.2'
}
s
.
source_files
=
'JSONKit.*'
end
target
:AnotherTarget
do
pod
'ASIHTTPRequest'
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
#--------------------------------------#
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
dummy
=
(
config
.
project_pods_root
+
'PodsDummy_Pods_AnotherTarget.m'
).
read
it
"installs a dummy source file"
do
dummy
.
should
.
include?
(
'@implementation PodsDummy_Pods_AnotherTarget'
)
podfile
=
Podfile
.
new
do
platform
:ios
pod
'JSONKit'
end
end
it
"installs a library with a podspec defined inline"
do
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
podfile
=
Pod
::
Podfile
.
new
do
installer
.
install!
self
.
platform
:ios
xcodeproj
'dummy'
pod
do
|
s
|
s
.
name
=
'JSONKit'
s
.
version
=
'1.2'
s
.
source
=
{
:git
=>
SpecHelper
.
fixture
(
'integration/JSONKit'
).
to_s
,
:tag
=>
'v1.2'
}
s
.
source_files
=
'JSONKit.*'
end
pod
do
|
s
|
s
.
name
=
'SSZipArchive'
s
.
version
=
'0.1.0'
s
.
source
=
{
:git
=>
SpecHelper
.
fixture
(
'integration/SSZipArchive'
).
to_s
,
:tag
=>
'0.1.0'
}
s
.
source_files
=
'SSZipArchive.*'
,
'minizip/*.{h,c}'
end
end
Pod
::
Specification
.
any_instance
.
stubs
(
:preserve_paths
).
returns
([
'CHANGELOG.md'
])
dummy
=
(
config
.
project_pods_root
+
'PodsDummy_Pods.m'
).
read
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
dummy
.
should
.
include?
(
'@implementation PodsDummy_Pods'
)
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
end
installer
.
install!
installer
.
lockfile
.
to_hash
.
tap
{
|
d
|
d
.
delete
(
"COCOAPODS"
)
}.
should
==
{
#--------------------------------------#
'PODS'
=>
[
'JSONKit (1.2)'
,
'SSZipArchive (0.1.0)'
],
'DEPENDENCIES'
=>
[
"JSONKit (defined in Podfile)"
,
"SSZipArchive (defined in Podfile)"
]
}
change_log
=
(
config
.
project_pods_root
+
'JSONKit/CHANGELOG.md'
).
read
it
"installs a dummy source file unique to the target"
do
change_log
.
should
.
include
'1.2'
podfile
=
Podfile
.
new
do
change_log
.
should
.
not
.
include
'1.3'
platform
:ios
xcodeproj
'dummy'
pod
'JSONKit'
target
:AnotherTarget
do
pod
'ASIHTTPRequest'
end
end
end
it
"creates targets for different platforms"
do
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
podfile
=
Pod
::
Podfile
.
new
do
installer
.
install!
self
.
platform
:ios
xcodeproj
'dummy'
dummy
=
(
config
.
project_pods_root
+
'PodsDummy_Pods_AnotherTarget.m'
).
read
pod
'JSONKit'
,
'1.4'
dummy
.
should
.
include?
(
'@implementation PodsDummy_Pods_AnotherTarget'
)
target
:ios_target
do
end
# This brings in Reachability on iOS
pod
'ASIHTTPRequest'
#--------------------------------------#
end
target
:osx_target
do
# @note ASIHTTPRequest depends on Reachability in iOS.
self
.
platform
:osx
#
pod
'ASIHTTPRequest'
it
"creates targets for different platforms"
do
end
podfile
=
Podfile
.
new
do
platform
:ios
xcodeproj
'dummy'
pod
'JSONKit'
,
'1.4'
target
:ios_target
do
pod
'ASIHTTPRequest'
,
'1.8.1'
end
end
target
:osx_target
do
platform
:osx
pod
'ASIHTTPRequest'
,
'1.8.1'
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
installer
.
install!
result
=
installer
.
lockfile
.
to_hash
lockfile
=
installer
.
lockfile
.
to_hash
result
[
'PODS'
].
should
==
[
lockfile
[
'PODS'
].
should
==
[
{
"ASIHTTPRequest (1.8.1)"
=>
{
"ASIHTTPRequest (1.8.1)"
=>
[
"ASIHTTPRequest/ASIWebPageRequest (= 1.8.1)"
,
[
"ASIHTTPRequest/ASIWebPageRequest (= 1.8.1)"
,
"ASIHTTPRequest/CloudFiles (= 1.8.1)"
,
"ASIHTTPRequest/CloudFiles (= 1.8.1)"
,
"ASIHTTPRequest/S3 (= 1.8.1)"
,
"ASIHTTPRequest/S3 (= 1.8.1)"
,
"Reachability"
"Reachability"
]
]
},
},
{
"ASIHTTPRequest/ASIWebPageRequest (1.8.1)"
=>
[
"Reachability"
]
},
{
"ASIHTTPRequest/ASIWebPageRequest (1.8.1)"
=>
[
"Reachability"
]
},
{
"ASIHTTPRequest/CloudFiles (1.8.1)"
=>
[
"Reachability"
]
},
{
"ASIHTTPRequest/CloudFiles (1.8.1)"
=>
[
"Reachability"
]
},
{
"ASIHTTPRequest/S3 (1.8.1)"
=>
[
"Reachability"
]
},
{
"ASIHTTPRequest/S3 (1.8.1)"
=>
[
"Reachability"
]
},
"JSONKit (1.4)"
,
"JSONKit (1.4)"
,
"Reachability (3.1.0)"
"Reachability (3.1.0)"
]
]
result
[
'DEPENDENCIES'
].
should
==
[
"ASIHTTPRequest"
,
"JSONKit (= 1.4)"
]
lockfile
[
'DEPENDENCIES'
].
should
==
[
"ASIHTTPRequest (= 1.8.1)"
,
"JSONKit (= 1.4)"
]
# TODO might be nicer looking to not show the dependencies of the top level spec for each subspec (Reachability).
should_xcodebuild
(
podfile
.
target_definitions
[
:osx_target
])
should_xcodebuild
(
podfile
.
target_definitions
[
:ios_target
])
end
should_xcodebuild
(
podfile
.
target_definitions
[
:osx_target
])
end
unless
`which appledoc`
.
strip
.
empty?
#--------------------------------------#
it
"generates documentation of all pods by default"
do
::
Pod
::
Config
.
instance
=
nil
::
Pod
::
Config
.
instance
.
tap
do
|
c
|
ENV
[
'VERBOSE_SPECS'
]
?
c
.
verbose
=
true
:
c
.
silent
=
true
c
.
doc_install
=
false
c
.
repos_dir
=
fixture
(
'spec-repos'
)
c
.
project_root
=
temporary_directory
c
.
integrate_targets
=
false
c
.
skip_repo_update
=
true
end
Pod
::
Generator
::
Documentation
.
any_instance
.
stubs
(
:already_installed?
).
returns
(
false
)
if
`which appledoc`
.
strip
.
empty?
puts
" ! "
.
red
<<
"Skipping documentation generation specs, because appledoc can't be found."
else
it
"generates documentation of all pods by default"
do
podfile
=
Pod
::
Podfile
.
new
do
podfile
=
Podfile
.
new
do
self
.
platform
:ios
platform
:ios
xcodeproj
'dummy'
xcodeproj
'dummy'
pod
'JSONKit'
,
'1.4'
pod
'JSONKit'
,
'1.4'
pod
'SSToolkit'
,
'1.0.0'
pod
'SSToolkit'
,
'1.0.0'
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
doc
=
(
config
.
project_pods_root
+
'Documentation/JSONKit/html/index.html'
).
read
doc
.
should
.
include?
(
'<title>JSONKit 1.4 Reference</title>'
)
doc
=
(
config
.
project_pods_root
+
'Documentation/SSToolkit/html/index.html'
).
read
doc
.
should
.
include?
(
'<title>SSToolkit 1.0.0 Reference</title>'
)
end
end
else
puts
" ! "
.
red
<<
"Skipping documentation generation specs, because appledoc can't be found."
config
.
generate_docs
=
true
config
.
doc_install
=
false
Generator
::
Documentation
.
any_instance
.
stubs
(
:already_installed?
).
returns
(
false
)
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
installer
.
install!
doc
=
(
config
.
project_pods_root
+
'Documentation/JSONKit/html/index.html'
).
read
doc
.
should
.
include?
(
'<title>JSONKit 1.4 Reference</title>'
)
doc
=
(
config
.
project_pods_root
+
'Documentation/SSToolkit/html/index.html'
).
read
doc
.
should
.
include?
(
'<title>SSToolkit 1.0.0 Reference</title>'
)
end
end
end
end
end
before
do
#-------------------------------------------------------------------------#
FileUtils
.
cp_r
(
fixture
(
'integration/.'
),
config
.
project_pods_root
)
end
it
"runs the optional pre_install callback defined in the Podfile _before_ the targets are integrated but _after_ the pods have been downloaded"
do
[
:ios
,
:osx
].
each
do
|
test_platform
|
podfile
=
Pod
::
Podfile
.
new
do
self
.
platform
platform
xcodeproj
'dummy'
pod
'SSZipArchive'
,
'0.1.0'
pre_install
do
|
installer
|
describe
"Multi-platform (
#{
test_platform
}
)"
do
memo
=
"PODS:
#{
installer
.
pods
*
', '
}
TARGETS:
#{
installer
.
project
.
targets
.
to_a
*
', '
}
"
extend
SpecHelper
::
TemporaryDirectory
File
.
open
(
config
.
project_pods_root
+
'memo.txt'
,
'w'
)
{
|
f
|
f
.
puts
memo
}
end
before
do
FileUtils
.
cp_r
(
fixture
(
'integration/.'
),
config
.
project_pods_root
)
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
SpecHelper
::
Installer
.
new
(
resolver
).
install!
File
.
open
(
config
.
project_pods_root
+
'memo.txt'
,
'rb'
).
read
.
should
==
"PODS:SSZipArchive (0.1.0) TARGETS:
\n
"
end
it
"runs the optional post_install callback defined in the Podfile _before_ the project is saved to disk"
do
#--------------------------------------#
podfile
=
Pod
::
Podfile
.
new
do
self
.
platform
platform
xcodeproj
'dummy'
pod
'SSZipArchive'
,
'0.1.0'
post_install
do
|
installer
|
it
"runs the optional pre-install callback defined in the Podfile *before* the targets are integrated but *after* the pods have been downloaded"
do
target
=
installer
.
project
.
targets
.
first
podfile
=
Podfile
.
new
do
target
.
build_configurations
.
each
do
|
config
|
platform
test_platform
config
.
build_settings
[
'GCC_ENABLE_OBJC_GC'
]
=
'supported'
xcodeproj
'dummy'
pod
'SSZipArchive'
,
'0.1.0'
pre_install
do
|
installer
|
memo
=
"PODS:
#{
installer
.
pods
*
', '
}
TARGETS:
#{
installer
.
project
.
targets
.
to_a
*
', '
}
"
File
.
open
(
installer
.
config
.
project_pods_root
+
'memo.txt'
,
'w'
)
{
|
f
|
f
.
puts
memo
}
end
end
end
end
Installer
.
new
(
config
.
sandbox
,
podfile
).
install!
File
.
open
(
config
.
project_pods_root
+
'memo.txt'
,
'rb'
).
read
.
should
==
"PODS:SSZipArchive (0.1.0) TARGETS:
\n
"
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
#--------------------------------------#
SpecHelper
::
Installer
.
new
(
resolver
).
install!
project
=
Pod
::
Project
.
new
(
config
.
project_pods_root
+
'Pods.xcodeproj'
)
project
.
targets
.
first
.
build_configurations
.
map
do
|
config
|
config
.
build_settings
[
'GCC_ENABLE_OBJC_GC'
]
end
.
should
==
%w{ supported supported }
end
# TODO add a simple source file which uses the compiled lib to check that it really really works
it
"runs the optional post-install callback defined in the Podfile *before* the project is saved to disk"
do
it
"activates required pods and create a working static library xcode project"
do
podfile
=
Podfile
.
new
do
podfile
=
Pod
::
Podfile
.
new
do
platform
test_platform
self
.
platform
platform
xcodeproj
'dummy'
xcodeproj
'dummy'
pod
'SSZipArchive'
,
'0.1.0'
pod
'Reachability'
,
'> 2.0.5'
if
platform
==
:ios
pod
'JSONKit'
,
'>= 1.0'
pod
'SSZipArchive'
,
'< 0.1.2'
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
post_install
do
|
installer
|
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
target
=
installer
.
project
.
targets
.
first
installer
.
install!
target
.
build_configurations
.
each
do
|
config
|
config
.
build_settings
[
'GCC_ENABLE_OBJC_GC'
]
=
'supported'
end
end
end
lockfile_contents
=
{
'PODS'
=>
[
'JSONKit (999.999.999)'
,
'Reachability (3.1.0)'
,
'SSZipArchive (0.1.1)'
,
],
'DEPENDENCIES'
=>
[
"JSONKit (>= 1.0)"
,
"Reachability (> 2.0.5)"
,
"SSZipArchive (< 0.1.2)"
,
],
"COCOAPODS"
=>
Pod
::
VERSION
}
unless
platform
==
:ios
# No Reachability is required by ASIHTTPRequest on OSX
lockfile_contents
[
'DEPENDENCIES'
].
delete_at
(
1
)
lockfile_contents
[
'PODS'
].
delete_at
(
1
)
# lockfile_contents['PODS'][0] = 'ASIHTTPRequest (1.8.1)'
end
result
=
installer
.
lockfile
.
to_hash
result
.
delete
(
"SPEC CHECKSUMS"
)
result
.
should
==
lockfile_contents
root
=
config
.
project_pods_root
Installer
.
new
(
config
.
sandbox
,
podfile
).
install!
(
root
+
'Pods.xcconfig'
).
read
.
should
==
installer
.
target_installers
.
first
.
xcconfig
.
to_s
project
=
Project
.
new
(
config
.
project_pods_root
+
'Pods.xcodeproj'
)
project_file
=
(
root
+
'Pods.xcodeproj/project.pbxproj'
).
to_s
project
.
targets
.
first
.
build_configurations
.
map
do
|
config
|
Xcodeproj
.
read_plist
(
project_file
).
should
==
installer
.
project
.
to_hash
config
.
build_settings
[
'GCC_ENABLE_OBJC_GC'
]
end
.
should
==
%w{ supported supported }
end
should_xcodebuild
(
podfile
.
target_definitions
[
:default
])
#--------------------------------------#
end
if
platform
==
:io
s
# TODO add a simple source file which uses the compiled lib to check that it really really work
s
it
"
does not activate pods that are only part of other pods
"
do
it
"
activates required pods and create a working static library xcode project
"
do
spec
=
Pod
::
Podfile
.
new
do
podfile
=
Podfile
.
new
do
self
.
platform
platform
platform
test_
platform
xcodeproj
'dummy'
xcodeproj
'dummy'
pod
'Reachability'
,
'2.0.4'
# only 2.0.4 is part of ASIHTTPRequest’s source.
if
test_platform
==
:ios
pod
'Reachability'
,
'> 2.0.5'
end
pod
'JSONKit'
,
'>= 1.0'
pod
'SSZipArchive'
,
'< 0.1.2'
end
end
resolver
=
Pod
::
Resolver
.
new
(
spec
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
installer
.
install!
installer
.
install!
result
=
installer
.
lockfile
.
to_hash
lockfile_contents
=
{
result
[
'PODS'
].
should
==
[
'Reachability (2.0.4)'
]
'PODS'
=>
[
result
[
'DEPENDENCIES'
].
should
==
[
"Reachability (= 2.0.4)"
]
'JSONKit (999.999.999)'
,
end
'Reachability (3.1.0)'
,
end
'SSZipArchive (0.1.1)'
,
],
'DEPENDENCIES'
=>
[
"JSONKit (>= 1.0)"
,
"Reachability (> 2.0.5)"
,
"SSZipArchive (< 0.1.2)"
,
],
"COCOAPODS"
=>
VERSION
}
it
"adds resources to the xcode copy script"
do
unless
test_platform
==
:ios
spec
=
Pod
::
Podfile
.
new
do
# No Reachability is required by ASIHTTPRequest on OSX
self
.
platform
platform
lockfile_contents
[
'DEPENDENCIES'
].
delete_at
(
1
)
xcodeproj
'dummy'
lockfile_contents
[
'PODS'
].
delete_at
(
1
)
pod
'SSZipArchive'
,
'0.1.0'
# lockfile_contents['PODS'][0] = 'ASIHTTPRequest (1.8.1)'
end
lockfile
=
installer
.
lockfile
.
to_hash
lockfile
.
delete
(
"SPEC CHECKSUMS"
)
lockfile
.
should
==
lockfile_contents
root
=
config
.
project_pods_root
(
root
+
'Pods.xcconfig'
).
read
.
should
==
installer
.
libraries
.
first
.
xcconfig
.
to_s
project_file
=
(
root
+
'Pods.xcodeproj/project.pbxproj'
).
to_s
Xcodeproj
.
read_plist
(
project_file
).
should
==
installer
.
project
.
to_hash
should_xcodebuild
(
podfile
.
target_definitions
[
:default
])
end
end
resolver
=
Pod
::
Resolver
.
new
(
spec
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
#--------------------------------------#
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
target_definition
=
installer
.
target_installers
.
first
.
target_definition
installer
.
specs_by_target
[
target_definition
].
first
.
resources
=
'LICEN*'
,
'Readme.*'
installer
.
install!
contents
=
(
config
.
project_pods_root
+
'Pods-resources.sh'
).
read
it
"adds resources to the xcode copy script"
do
contents
.
should
.
include
"install_resource 'SSZipArchive/LICENSE'
\n
"
\
podfile
=
Podfile
.
new
do
"install_resource 'SSZipArchive/Readme.markdown'"
platform
test_platform
end
xcodeproj
'dummy'
pod
'SSZipArchive'
,
'0.1.0'
end
# TODO we need to do more cleaning and/or add a --prune task
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
it
"overwrites an existing project.pbxproj file"
do
installer
.
install!
spec
=
Pod
::
Podfile
.
new
do
resources_value
=
{
:resources
=>
[
'LICEN*'
,
'Readme.*'
]
}
self
.
platform
platform
resources_pattern
=
{
:ios
=>
resources_value
,
:osx
=>
resources_value
}
xcodeproj
'dummy'
Specification
.
any_instance
.
stubs
(
:resources
).
returns
(
resources_pattern
)
pod
'JSONKit'
end
resolver
=
Pod
::
Resolver
.
new
(
spec
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
spec
=
Pod
::
Podfile
.
new
do
contents
=
(
config
.
project_pods_root
+
'Pods-resources.sh'
).
read
self
.
platform
platform
contents
.
should
.
include
"install_resource 'SSZipArchive/LICENSE'
\n
"
\
xcodeproj
'dummy'
"install_resource 'SSZipArchive/Readme.markdown'"
pod
'SSZipArchive'
,
'0.1.0'
end
end
resolver
=
Pod
::
Resolver
.
new
(
spec
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
project
=
Pod
::
Project
.
new
(
config
.
project_pods_root
+
'Pods.xcodeproj'
)
#--------------------------------------#
disk_source_files
=
project
.
files
.
sort
.
reject
{
|
f
|
f
.
build_files
.
empty?
}
installer_source_files
=
installer
.
project
.
files
.
sort
.
reject
{
|
f
|
f
.
build_files
.
empty?
}
disk_source_files
.
should
==
installer_source_files
end
it
"creates a project with multiple targets"
do
# @todo we need to do more cleaning and/or add a --prune task
podfile
=
Pod
::
Podfile
.
new
do
#
self
.
platform
platform
it
"overwrites an existing project.pbxproj file"
do
xcodeproj
'dummy'
podfile
=
Podfile
.
new
do
target
(
:debug
)
{
pod
'SSZipArchive'
,
'0.1.0'
}
platform
test_platform
target
(
:test
,
:exclusive
=>
true
)
{
pod
'JSONKit'
}
xcodeproj
'dummy'
pod
'ASIHTTPRequest'
pod
'JSONKit'
end
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
installer
.
install!
podfile
=
Podfile
.
new
do
platform
test_platform
xcodeproj
'dummy'
pod
'SSZipArchive'
,
'0.1.0'
end
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
installer
.
install!
project
=
Project
.
new
(
config
.
project_pods_root
+
'Pods.xcodeproj'
)
disk_source_files
=
project
.
files
.
sort
.
reject
{
|
f
|
f
.
build_files
.
empty?
}
installer_source_files
=
installer
.
project
.
files
.
sort
.
reject
{
|
f
|
f
.
build_files
.
empty?
}
disk_source_files
.
should
==
installer_source_files
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
fixture
(
'integration'
)))
#--------------------------------------#
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
installer
=
Pod
::
Installer
.
new
(
resolver
)
it
"creates a project with multiple targets"
do
installer
.
install!
podfile
=
Podfile
.
new
do
platform
test_platform
pod
'ASIHTTPRequest'
target
:debug
do
pod
'SSZipArchive'
,
'0.1.0'
end
project
=
Xcodeproj
::
Project
.
new
(
config
.
project_pods_root
+
'Pods.xcodeproj'
)
target
:test
,
:exclusive
=>
true
do
project
.
targets
.
each
do
|
target
|
pod
'JSONKit'
phase
=
target
.
build_phases
.
find
{
|
phase
|
phase
.
is_a?
(
Xcodeproj
::
Project
::
Object
::
PBXSourcesBuildPhase
)
}
end
files
=
phase
.
files
.
map
{
|
bf
|
bf
.
file_ref
.
name
}
case
target
.
product_name
when
'Pods'
files
.
should
.
include
"ASIHTTPRequest.m"
files
.
should
.
not
.
include
"SSZipArchive.m"
files
.
should
.
not
.
include
"JSONKit.m"
when
'Pods-debug'
files
.
should
.
include
"ASIHTTPRequest.m"
files
.
should
.
include
"SSZipArchive.m"
files
.
should
.
not
.
include
"JSONKit.m"
when
'Pods-test'
files
.
should
.
not
.
include
"ASIHTTPRequest.m"
files
.
should
.
not
.
include
"SSZipArchive.m"
files
.
should
.
include
"JSONKit.m"
else
raise
"ohnoes"
end
end
end
root
=
config
.
project_pods_root
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
(
root
+
'Pods.xcconfig'
).
should
.
exist
installer
.
install!
(
root
+
'Pods-debug.xcconfig'
).
should
.
exist
(
root
+
'Pods-test.xcconfig'
).
should
.
exist
project
=
Xcodeproj
::
Project
.
new
(
config
.
project_pods_root
+
'Pods.xcodeproj'
)
(
root
+
'Pods-resources.sh'
).
should
.
exist
project
.
targets
.
count
.
should
==
3
(
root
+
'Pods-debug-resources.sh'
).
should
.
exist
project
.
targets
.
each
do
|
target
|
(
root
+
'Pods-test-resources.sh'
).
should
.
exist
phase
=
target
.
build_phases
.
find
{
|
phase
|
phase
.
isa
==
'PBXSourcesBuildPhase'
}
files
=
phase
.
files
.
map
{
|
bf
|
bf
.
file_ref
.
name
}
should_xcodebuild
(
podfile
.
target_definitions
[
:default
])
case
target
.
product_name
should_xcodebuild
(
podfile
.
target_definitions
[
:debug
])
when
'Pods'
should_xcodebuild
(
podfile
.
target_definitions
[
:test
])
files
.
should
.
include
"ASIHTTPRequest.m"
end
files
.
should
.
not
.
include
"SSZipArchive.m"
files
.
should
.
not
.
include
"JSONKit.m"
when
'Pods-debug'
files
.
should
.
include
"ASIHTTPRequest.m"
files
.
should
.
include
"SSZipArchive.m"
files
.
should
.
not
.
include
"JSONKit.m"
when
'Pods-test'
files
.
should
.
include
"JSONKit.m"
files
.
should
.
not
.
include
"ASIHTTPRequest.m"
files
.
should
.
not
.
include
"SSZipArchive.m"
end
end
it
"sets up an existing project with pods"
do
expected_files
=
%w[
config
.
integrate_targets
=
true
Pods.xcconfig
Pods-debug.xcconfig
Pods-test.xcconfig
Pods-resources.sh
Pods-debug-resources.sh
Pods-test-resources.sh
]
basename
=
platform
==
:ios
?
'iPhone'
:
'Mac'
expected_files
.
each
do
|
file
|
projpath
=
temporary_directory
+
'ASIHTTPRequest.xcodeproj'
(
config
.
project_pods_root
+
file
).
should
.
exist
FileUtils
.
cp_r
(
fixture
(
"integration/ASIHTTPRequest/
#{
basename
}
.xcodeproj"
),
projpath
)
end
podfile
=
Pod
::
Podfile
.
new
do
should_xcodebuild
(
podfile
.
target_definitions
[
:default
])
self
.
platform
platform
should_xcodebuild
(
podfile
.
target_definitions
[
:debug
])
xcodeproj
projpath
should_xcodebuild
(
podfile
.
target_definitions
[
:test
])
pod
'SSZipArchive'
,
'0.1.0'
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
#--------------------------------------#
installer
=
SpecHelper
::
Installer
.
new
(
resolver
)
installer
.
install!
workspace
=
Xcodeproj
::
Workspace
.
new_from_xcworkspace
(
temporary_directory
+
'ASIHTTPRequest.xcworkspace'
)
# @note The shell script should be the last phase.
workspace
.
projpaths
.
sort
.
should
==
[
'ASIHTTPRequest.xcodeproj'
,
'Pods/Pods.xcodeproj'
]
#
it
"sets up an existing project with pods"
do
config
.
integrate_targets
=
true
project
=
Pod
::
Project
.
new
(
projpath
)
basename
=
test_platform
==
:ios
?
'iPhone'
:
'Mac'
libPods
=
project
.
files
.
find
{
|
f
|
f
.
name
==
'libPods.a'
}
projpath
=
temporary_directory
+
'ASIHTTPRequest.xcodeproj'
FileUtils
.
cp_r
(
fixture
(
"integration/ASIHTTPRequest/
#{
basename
}
.xcodeproj"
),
projpath
)
target
=
project
.
targets
.
first
podfile
=
Podfile
.
new
do
target
.
build_configurations
.
each
do
|
config
|
platform
test_platform
config
.
base_configuration_reference
.
path
.
should
==
'Pods/Pods.xcconfig'
xcodeproj
projpath
end
pod
'SSZipArchive'
,
'0.1.0'
target
.
frameworks_build_phase
.
files
.
should
.
include
libPods
.
build_files
.
first
end
# should be the last phase
target
.
build_phases
.
last
.
shell_script
.
should
==
%{"${SRCROOT}/Pods/Pods-resources.sh"\n}
end
it
"should prevent duplication cleaning headers symlinks with multiple targets"
do
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
podfile
=
Pod
::
Podfile
.
new
do
installer
.
install!
self
.
platform
platform
xcodeproj
'dummy'
workspace
=
Xcodeproj
::
Workspace
.
new_from_xcworkspace
(
temporary_directory
+
'ASIHTTPRequest.xcworkspace'
)
target
(
:debug
)
{
pod
'SSZipArchive'
,
'0.1.0'
}
workspace
.
projpaths
.
sort
.
should
==
[
'ASIHTTPRequest.xcodeproj'
,
'Pods/Pods.xcodeproj'
]
target
(
:test
,
:exclusive
=>
true
)
{
pod
'JSONKit'
}
pod
'ASIHTTPRequest'
project
=
Project
.
new
(
projpath
)
libPods
=
project
.
files
.
find
{
|
f
|
f
.
name
==
'libPods.a'
}
target
=
project
.
targets
.
first
target
.
build_configurations
.
each
do
|
config
|
config
.
base_configuration_reference
.
path
.
should
==
'Pods/Pods.xcconfig'
end
target
.
frameworks_build_phase
.
files
.
should
.
include
libPods
.
build_files
.
first
target
.
build_phases
.
last
.
shell_script
.
should
==
%{"${SRCROOT}/Pods/Pods-resources.sh"\n}
end
end
resolver
=
Pod
::
Resolver
.
new
(
podfile
,
nil
,
Pod
::
Sandbox
.
new
(
config
.
project_pods_root
))
#--------------------------------------#
installer
=
Pod
::
Installer
.
new
(
resolver
)
installer
.
install!
root
=
config
.
project_pods_root
it
"should prevent duplication cleaning headers symlinks with multiple targets"
do
(
root
+
'Pods.xcconfig'
).
should
.
exist
podfile
=
Podfile
.
new
do
(
root
+
'Headers'
).
should
.
exist
platform
test_platform
(
root
+
'Headers/SSZipArchive'
).
should
.
exist
xcodeproj
'dummy'
(
root
+
'Headers/ASIHTTPRequest'
).
should
.
exist
target
(
:debug
)
{
pod
'SSZipArchive'
,
'0.1.0'
}
(
root
+
'Headers/JSONKit'
).
should
.
exist
target
(
:test
,
:exclusive
=>
true
)
{
pod
'JSONKit'
}
Pathname
.
glob
(
File
.
join
(
root
.
to_s
,
'Headers/ASIHTTPRequest/*.h'
)).
size
.
should
.
be
>
0
pod
'ASIHTTPRequest'
,
'1.8.1'
Pathname
.
glob
(
File
.
join
(
root
.
to_s
,
'Headers/SSZipArchive/*.h'
)).
size
.
should
.
be
>
0
end
Pathname
.
glob
(
File
.
join
(
root
.
to_s
,
'Headers/JSONKit/*.h'
)).
size
.
should
.
be
>
0
end
installer
=
Installer
.
new
(
config
.
sandbox
,
podfile
)
installer
.
install!
root
=
config
.
project_pods_root
(
root
+
'Pods.xcconfig'
).
should
.
exist
(
root
+
'Headers'
).
should
.
exist
(
root
+
'Headers/SSZipArchive'
).
should
.
exist
(
root
+
'Headers/ASIHTTPRequest'
).
should
.
exist
(
root
+
'Headers/JSONKit'
).
should
.
exist
Pathname
.
glob
(
File
.
join
(
root
.
to_s
,
'Headers/ASIHTTPRequest/*.h'
)).
size
.
should
.
be
>
0
Pathname
.
glob
(
File
.
join
(
root
.
to_s
,
'Headers/SSZipArchive/*.h'
)).
size
.
should
.
be
>
0
Pathname
.
glob
(
File
.
join
(
root
.
to_s
,
'Headers/JSONKit/*.h'
)).
size
.
should
.
be
>
0
end
end
end
end
end
end
end
end
spec/spec_helper.rb
View file @
a6029d66
...
@@ -33,7 +33,6 @@ module Bacon
...
@@ -33,7 +33,6 @@ module Bacon
include
Pod
::
Config
::
Mixin
include
Pod
::
Config
::
Mixin
include
SpecHelper
::
Fixture
include
SpecHelper
::
Fixture
include
SpecHelper
::
Command
include
SpecHelper
::
Command
def
skip_xcodebuild?
def
skip_xcodebuild?
ENV
[
'SKIP_XCODEBUILD'
]
ENV
[
'SKIP_XCODEBUILD'
]
end
end
...
@@ -64,6 +63,28 @@ def copy_fixture_to_pod(name, pod)
...
@@ -64,6 +63,28 @@ def copy_fixture_to_pod(name, pod)
FileUtils
.
cp_r
(
path
,
pod
.
root
)
FileUtils
.
cp_r
(
path
,
pod
.
root
)
end
end
#-----------------------------------------------------------------------------#
# Override {Specification#source} to return sources from fixtures and limit
# network connections.
#
module
Pod
class
Specification
alias
:original_source
:source
def
source
fixture
=
SpecHelper
.
fixture
(
"integration/
#{
name
}
"
)
result
=
super
if
fixture
.
exist?
# puts "Using fixture [#{name}]"
result
[
:git
]
=
fixture
.
to_s
else
# puts "MISSING fixture [#{name}]"
end
result
end
end
end
SpecHelper
::
Fixture
.
fixture
(
'banana-lib'
)
# ensure it exists
SpecHelper
::
Fixture
.
fixture
(
'banana-lib'
)
# ensure it exists
require
"active_support/core_ext/string/strip"
require
"active_support/core_ext/string/strip"
spec/spec_helper/bacon.rb
View file @
a6029d66
...
@@ -81,7 +81,7 @@ module Bacon
...
@@ -81,7 +81,7 @@ module Bacon
end
end
def
handle_requirement
(
description
,
disabled
=
false
)
def
handle_requirement
(
description
,
disabled
=
false
)
if
false
&&
@first_error
if
@first_error
print
Bacon
.
color
(
nil
,
'_'
)
print
Bacon
.
color
(
nil
,
'_'
)
else
else
error
=
yield
error
=
yield
...
...
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