Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
e780259a
Commit
e780259a
authored
May 16, 2017
by
Douwe Maan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Autolink package names in Cartfile
parent
c35463d5
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
103 additions
and
0 deletions
+103
-0
lib/gitlab/dependency_linker.rb
lib/gitlab/dependency_linker.rb
+1
-0
lib/gitlab/dependency_linker/cartfile_linker.rb
lib/gitlab/dependency_linker/cartfile_linker.rb
+20
-0
spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb
spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb
+74
-0
spec/lib/gitlab/dependency_linker_spec.rb
spec/lib/gitlab/dependency_linker_spec.rb
+8
-0
No files found.
lib/gitlab/dependency_linker.rb
View file @
e780259a
...
...
@@ -8,6 +8,7 @@ module Gitlab
PodfileLinker
,
PodspecLinker
,
PodspecJsonLinker
,
CartfileLinker
,
].
freeze
def
self
.
linker
(
blob_name
)
...
...
lib/gitlab/dependency_linker/cartfile_linker.rb
0 → 100644
View file @
e780259a
module
Gitlab
module
DependencyLinker
class
CartfileLinker
<
MethodLinker
self
.
file_type
=
:cartfile
private
def
link_dependencies
link_method_call
(
%w[github git binary]
)
do
|
value
|
case
value
when
%r{
\A
#{
REPO_REGEX
}
\z
}
github_url
(
value
)
when
/\A
#{
URL_REGEX
}
\z/
value
end
end
end
end
end
end
spec/lib/gitlab/dependency_linker/cartfile_linker_spec.rb
0 → 100644
View file @
e780259a
require
'rails_helper'
describe
Gitlab
::
DependencyLinker
::
CartfileLinker
,
lib:
true
do
describe
'.support?'
do
it
'supports Cartfile'
do
expect
(
described_class
.
support?
(
'Cartfile'
)).
to
be_truthy
end
it
'supports Cartfile.private'
do
expect
(
described_class
.
support?
(
'Cartfile.private'
)).
to
be_truthy
end
it
'does not support other files'
do
expect
(
described_class
.
support?
(
'test.Cartfile'
)).
to
be_falsey
end
end
describe
'#link'
do
let
(
:file_name
)
{
"Cartfile"
}
let
(
:file_content
)
do
<<-
CONTENT
.
strip_heredoc
# Require version 2.3.1 or later
github "ReactiveCocoa/ReactiveCocoa" >= 2.3.1
# Require version 1.x
github "Mantle/Mantle" ~> 1.0 # (1.0 or later, but less than 2.0)
# Require exactly version 0.4.1
github "jspahrsummers/libextobjc" == 0.4.1
# Use the latest version
github "jspahrsummers/xcconfigs"
# Use the branch
github "jspahrsummers/xcconfigs" "branch"
# Use a project from GitHub Enterprise
github "https://enterprise.local/ghe/desktop/git-error-translations"
# Use a project from any arbitrary server, on the "development" branch
git "https://enterprise.local/desktop/git-error-translations2.git" "development"
# Use a local project
git "file:///directory/to/project" "branch"
# A binary only framework
binary "https://my.domain.com/release/MyFramework.json" ~> 2.3
CONTENT
end
subject
{
Gitlab
::
Highlight
.
highlight
(
file_name
,
file_content
)
}
def
link
(
name
,
url
)
%{<a href="#{url}" rel="nofollow noreferrer noopener" target="_blank">#{name}</a>}
end
it
'links dependencies'
do
expect
(
subject
).
to
include
(
link
(
'ReactiveCocoa/ReactiveCocoa'
,
'https://github.com/ReactiveCocoa/ReactiveCocoa'
))
expect
(
subject
).
to
include
(
link
(
'Mantle/Mantle'
,
'https://github.com/Mantle/Mantle'
))
expect
(
subject
).
to
include
(
link
(
'jspahrsummers/libextobjc'
,
'https://github.com/jspahrsummers/libextobjc'
))
expect
(
subject
).
to
include
(
link
(
'jspahrsummers/xcconfigs'
,
'https://github.com/jspahrsummers/xcconfigs'
))
end
it
'links Git repos'
do
expect
(
subject
).
to
include
(
link
(
'https://enterprise.local/ghe/desktop/git-error-translations'
,
'https://enterprise.local/ghe/desktop/git-error-translations'
))
expect
(
subject
).
to
include
(
link
(
'https://enterprise.local/desktop/git-error-translations2.git'
,
'https://enterprise.local/desktop/git-error-translations2.git'
))
end
it
'links binary-only frameworks'
do
expect
(
subject
).
to
include
(
link
(
'https://my.domain.com/release/MyFramework.json'
,
'https://my.domain.com/release/MyFramework.json'
))
end
end
end
spec/lib/gitlab/dependency_linker_spec.rb
View file @
e780259a
...
...
@@ -57,5 +57,13 @@ describe Gitlab::DependencyLinker, lib: true do
described_class
.
link
(
blob_name
,
nil
,
nil
)
end
it
'links using CartfileLinker'
do
blob_name
=
'Cartfile'
expect
(
described_class
::
CartfileLinker
).
to
receive
(
:link
)
described_class
.
link
(
blob_name
,
nil
,
nil
)
end
end
end
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