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
8347b776
Commit
8347b776
authored
Mar 26, 2012
by
Fabio Pelosin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[#188] Refactoring of SpecPresent module
parent
3ee0c410
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
64 additions
and
38 deletions
+64
-38
command.rb
lib/cocoapods/command.rb
+1
-1
list.rb
lib/cocoapods/command/list.rb
+26
-22
search.rb
lib/cocoapods/command/search.rb
+4
-4
set_present.rb
lib/cocoapods/command/set_present.rb
+33
-11
No files found.
lib/cocoapods/command.rb
View file @
8347b776
module
Pod
module
Pod
class
Command
class
Command
autoload
:ErrorReport
,
'cocoapods/command/error_report'
autoload
:ErrorReport
,
'cocoapods/command/error_report'
autoload
:
DisplayPods
,
'cocoapods/command/print_pod
'
autoload
:
SetPresent
,
'cocoapods/command/set_present
'
autoload
:Install
,
'cocoapods/command/install'
autoload
:Install
,
'cocoapods/command/install'
autoload
:List
,
'cocoapods/command/list'
autoload
:List
,
'cocoapods/command/list'
autoload
:Repo
,
'cocoapods/command/repo'
autoload
:Repo
,
'cocoapods/command/repo'
...
...
lib/cocoapods/command/list.rb
View file @
8347b776
...
@@ -14,40 +14,40 @@ module Pod
...
@@ -14,40 +14,40 @@ module Pod
end
end
def
self
.
options
def
self
.
options
" --stats Show additional stats (like GitHub watchers and forks)
\n
"
+
SetPresent
.
set_present_options
+
super
super
end
end
include
DisplayPods
include
SetPresent
extend
Executable
extend
Executable
executable
:git
executable
:git
def
initialize
(
argv
)
def
initialize
(
argv
)
@stats
=
argv
.
option
(
'--stats'
)
parse_set_options
(
argv
)
#TODO: accept only integers
@days
=
argv
.
arguments
.
first
@days
=
argv
.
arguments
.
first
unless
@days
==
nil
||
@days
=~
/^[0-9]+$/
super
end
end
end
def
dir
def
dir
File
.
expand_path
'~/.cocoapods/
master'
config
.
repos_dir
+
'
master'
end
end
def
list_directory_at
_commit
(
commit
)
def
dir_list_from
_commit
(
commit
)
Dir
.
chdir
(
dir
)
{
git
(
"ls-tree --name-only -r
#{
commit
}
"
)
}
Dir
.
chdir
(
dir
)
{
git
(
"ls-tree --name-only -r
#{
commit
}
"
)
}
end
end
def
commit_at_days_ago
(
days
)
def
commit_from_days_ago
(
days
)
return
'HEAD'
if
days
==
0
Dir
.
chdir
(
dir
)
{
git
(
"rev-list -n1 --before=
\"
#{
days
}
day ago
\"
master"
)
}
Dir
.
chdir
(
dir
)
{
git
(
"rev-list -n1 --before=
\"
#{
days
}
day ago
\"
master"
)
}
end
end
def
pods_at_days_ago
(
days
)
def
spec_names_from_commit
(
commit
)
commit
=
commit_at_days_ago
(
days
)
dir_list
=
dir_list_from_commit
(
commit
)
dir_list
=
list_directory_at_commit
(
commit
)
# Keep only directories
# Keep only
sub
directories
dir_list
.
gsub!
(
/^[^\/]*$/
,
''
)
dir_list
.
gsub!
(
/^[^\/]*$/
,
''
)
#
Clean pod names
#
Keep only subdirectories name
dir_list
.
gsub!
(
/(.*)\/[0-9].*/
,
'\1'
)
dir_list
.
gsub!
(
/(.*)\/[0-9].*/
,
'\1'
)
result
=
dir_list
.
split
(
"
\n
"
).
uniq
result
=
dir_list
.
split
(
"
\n
"
).
uniq
...
@@ -55,7 +55,13 @@ module Pod
...
@@ -55,7 +55,13 @@ module Pod
result
result
end
end
def
all_pods_sets
def
new_specs_set
(
commit
)
#TODO: find the changes for all repos
new_specs
=
spec_names_from_commit
(
'HEAD'
)
-
spec_names_from_commit
(
commit
)
sets
=
all_specs_set
.
select
{
|
set
|
new_specs
.
include?
(
set
.
name
)
}
end
def
all_specs_set
result
=
[]
result
=
[]
Source
.
all
.
each
do
|
source
|
Source
.
all
.
each
do
|
source
|
source
.
pod_sets
.
each
do
|
set
|
source
.
pod_sets
.
each
do
|
set
|
...
@@ -66,23 +72,21 @@ module Pod
...
@@ -66,23 +72,21 @@ module Pod
end
end
def
list_new
def
list_new
#TODO: find the changes for all repos
sets
=
new_specs_set
(
commit_from_days_ago
(
@days
))
new_pods
=
pods_at_days_ago
(
0
)
-
pods_at_days_ago
(
@days
)
present_sets
(
sets
)
sets
=
all_pods_sets
.
select
{
|
set
|
new_pods
.
include?
(
set
.
name
)
}
if
!
list
puts
if
sets
.
count
!=
0
if
sets
.
count
!=
0
puts
"
#{
sets
.
count
}
new pods were added in the last
#{
@days
}
days"
puts
"
#{
sets
.
count
}
new pods were added in the last
#{
@days
}
days"
puts
puts
display_pod_list
(
sets
,
@stats
)
else
else
puts
"No new pods were added in the last
#{
@days
}
days"
puts
"No new pods were added in the last
#{
@days
}
days"
end
puts
puts
end
end
end
end
def
list_all
def
list_all
display_pod_list
(
all_pods_sets
,
@stats
)
present_sets
(
all_specs_set
)
end
end
def
run
def
run
...
...
lib/cocoapods/command/search.rb
View file @
8347b776
...
@@ -12,15 +12,15 @@ module Pod
...
@@ -12,15 +12,15 @@ module Pod
end
end
def
self
.
options
def
self
.
options
" --stats Show additional stats (like GitHub watchers and forks)
\n
"
+
" --full Search by name, summary, and description
\n
"
+
" --full Search by name, summary, and description
\n
"
+
SetPresent
.
set_present_options
+
super
super
end
end
include
DisplayPods
include
SetPresent
def
initialize
(
argv
)
def
initialize
(
argv
)
@stats
=
argv
.
option
(
'--stats'
)
parse_set_options
(
argv
)
@full_text_search
=
argv
.
option
(
'--full'
)
@full_text_search
=
argv
.
option
(
'--full'
)
unless
@query
=
argv
.
arguments
.
first
unless
@query
=
argv
.
arguments
.
first
super
super
...
@@ -29,7 +29,7 @@ module Pod
...
@@ -29,7 +29,7 @@ module Pod
def
run
def
run
sets
=
Source
.
search_by_name
(
@query
.
strip
,
@full_text_search
)
sets
=
Source
.
search_by_name
(
@query
.
strip
,
@full_text_search
)
display_pod_list
(
sets
,
@sta
ts
)
present_sets
(
se
ts
)
end
end
end
end
end
end
...
...
lib/cocoapods/command/
print_pod
.rb
→
lib/cocoapods/command/
set_present
.rb
View file @
8347b776
module
Pod
module
Pod
class
Command
class
Command
module
DisplayPods
module
SetPresent
def
self
.
set_present_options
" --name-only Show only the names of the pods
\n
"
+
" --stats Show additional stats (like GitHub watchers and forks)
\n
"
end
def
list
@list
end
def
parse_set_options
(
argv
)
@stats
=
argv
.
option
(
'--stats'
)
@list
=
argv
.
option
(
'--name-only'
)
end
def
display_pod_list
(
array
,
stats
=
false
)
def
present_sets
(
array
)
array
.
each
do
|
set
|
array
.
each
do
|
set
|
p
uts_pod
(
set
,
stats
)
p
resent_set
(
set
)
end
end
end
end
def
puts_pod
(
set
,
stats
=
false
)
def
present_set
(
set
)
if
@list
puts
set
.
name
else
puts
"
\e
[32m-->
#{
set
.
name
}
(
#{
set
.
versions
.
reverse
.
join
(
", "
)
}
)
\e
[0m"
puts
"
\e
[32m-->
#{
set
.
name
}
(
#{
set
.
versions
.
reverse
.
join
(
", "
)
}
)
\e
[0m"
puts_wrapped_text
(
set
.
specification
.
summary
)
puts_wrapped_text
(
set
.
specification
.
summary
)
...
@@ -17,9 +33,15 @@ module Pod
...
@@ -17,9 +33,15 @@ module Pod
source
=
spec
.
source
.
reject
{
|
k
,
_
|
k
==
:commit
||
k
==
:tag
}.
values
.
first
source
=
spec
.
source
.
reject
{
|
k
,
_
|
k
==
:commit
||
k
==
:tag
}.
values
.
first
puts_detail
(
'Homepage'
,
spec
.
homepage
)
puts_detail
(
'Homepage'
,
spec
.
homepage
)
puts_detail
(
'Source'
,
source
)
puts_detail
(
'Source'
,
source
)
puts_github_info
(
source
)
if
stats
if
@stats
stats
=
stats
(
source
)
puts_detail
(
'Watchers'
,
stats
[
:watchers
])
puts_detail
(
'Forks'
,
stats
[
:forks
])
end
puts
puts
end
end
end
# adapted from http://blog.macromates.com/2006/wrapping-text-with-regular-expressions/
# adapted from http://blog.macromates.com/2006/wrapping-text-with-regular-expressions/
def
puts_wrapped_text
(
txt
,
col
=
80
,
indentation
=
4
)
def
puts_wrapped_text
(
txt
,
col
=
80
,
indentation
=
4
)
...
@@ -29,22 +51,22 @@ module Pod
...
@@ -29,22 +51,22 @@ module Pod
def
puts_detail
(
title
,
string
)
def
puts_detail
(
title
,
string
)
return
if
!
string
return
if
!
string
# 8 is the length of homepage
which might be displayed alone
# 8 is the length of homepage
number_of_spaces
=
((
8
-
title
.
length
)
>
0
)
?
(
8
-
title
.
length
)
:
0
number_of_spaces
=
((
8
-
title
.
length
)
>
0
)
?
(
8
-
title
.
length
)
:
0
spaces
=
' '
*
number_of_spaces
spaces
=
' '
*
number_of_spaces
puts
" -
#{
title
}
:
#{
spaces
+
string
}
"
puts
" -
#{
title
}
:
#{
spaces
+
string
}
"
end
end
def
puts_github_info
(
url
)
def
stats
(
url
)
original_url
,
username
,
reponame
=
*
(
url
.
match
(
/[:\/]([\w\-]+)\/([\w\-]+)\.git/
).
to_a
)
original_url
,
username
,
reponame
=
*
(
url
.
match
(
/[:\/]([\w\-]+)\/([\w\-]+)\.git/
).
to_a
)
result
=
{}
if
original_url
if
original_url
repo_info
=
`curl -s -m 2 http://github.com/api/v2/json/repos/show/
#{
username
}
/
#{
reponame
}
`
repo_info
=
`curl -s -m 2 http://github.com/api/v2/json/repos/show/
#{
username
}
/
#{
reponame
}
`
watchers
=
repo_info
.
match
(
/\"watchers\"\W*:\W*([0-9]+)/
).
to_a
[
1
]
result
[
:watchers
]
=
repo_info
.
match
(
/\"watchers\"\W*:\W*([0-9]+)/
).
to_a
[
1
]
forks
=
repo_info
.
match
(
/\"forks\"\W*:\W*([0-9]+)/
).
to_a
[
1
]
result
[
:forks
]
=
repo_info
.
match
(
/\"forks\"\W*:\W*([0-9]+)/
).
to_a
[
1
]
puts_detail
(
'Watchers'
,
watchers
)
puts_detail
(
'Forks'
,
forks
)
end
end
result
end
end
end
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