gem-versions 0.0.2
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/.gitignore +4 -0
- data/Gemfile +2 -0
- data/README.md +21 -0
- data/Rakefile +1 -0
- data/gem-versions.gemspec +21 -0
- data/lib/rubygems/commands/versions_command.rb +49 -0
- data/lib/rubygems_plugin.rb +3 -0
- metadata +87 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
gem-versions -- view a gem's versions
|
2
|
+
=====================================
|
3
|
+
|
4
|
+
## SYNOPSIS
|
5
|
+
|
6
|
+
gem versions <GEM>
|
7
|
+
|
8
|
+
## DESCRIPTION
|
9
|
+
|
10
|
+
The `gem versions` command can be used to show all versions of
|
11
|
+
a gem published on Rubygems.org. Versions you have installed
|
12
|
+
locally are asterisked.
|
13
|
+
|
14
|
+
## QUICK START
|
15
|
+
|
16
|
+
gem install gem-versions
|
17
|
+
gem versions rails
|
18
|
+
|
19
|
+
## INTELLECTUAL PROPERTY
|
20
|
+
|
21
|
+
Copyright 2011 Andy Stewart <boss@airbladesoftware.com>.
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path('../lib', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = 'gem-versions'
|
6
|
+
s.version = '0.0.2'
|
7
|
+
s.authors = [ 'Andy Stewart' ]
|
8
|
+
s.email = 'boss@airbladesoftware.com'
|
9
|
+
s.homepage = 'https://github.com/airblade/gem-versions'
|
10
|
+
s.summary = 'List all published versions of a gem.'
|
11
|
+
s.description = <<END
|
12
|
+
The `gem versions` command can be used to show all versions of
|
13
|
+
a gem published on Rubygems.org. Versions you have installed
|
14
|
+
locally are asterisked.
|
15
|
+
END
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
|
20
|
+
s.add_dependency 'httparty', '~> 0.8'
|
21
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'httparty'
|
2
|
+
|
3
|
+
class Gem::Commands::VersionsCommand < Gem::Command
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
super 'versions', description
|
7
|
+
end
|
8
|
+
|
9
|
+
def description
|
10
|
+
'List all published versions of a gem. Versions you have installed locally are asterisked.'
|
11
|
+
end
|
12
|
+
|
13
|
+
def arguments
|
14
|
+
'GEMNAME exact name of gem for which to list versions'
|
15
|
+
end
|
16
|
+
|
17
|
+
def usage
|
18
|
+
"#{program_name} GEMNAME"
|
19
|
+
end
|
20
|
+
|
21
|
+
def execute
|
22
|
+
name = get_one_gem_name
|
23
|
+
locals = local_versions name
|
24
|
+
|
25
|
+
begin
|
26
|
+
response = ::HTTParty.get "https://rubygems.org/api/v1/versions/#{name}.json"
|
27
|
+
rescue # Annoyingly Rubygems' API doesn't return JSON on a 404 response, tripping up HTTParty.
|
28
|
+
puts "Unable to find #{name}."
|
29
|
+
return
|
30
|
+
end
|
31
|
+
|
32
|
+
if response.code == 200
|
33
|
+
remotes = response.map { |item| item['number'] }.map { |v| Gem::Version.create v }.sort.reverse.map &:to_s
|
34
|
+
remotes.each do |r|
|
35
|
+
puts "#{locals.include?(r) ? '*' : ' '} #{r}"
|
36
|
+
end
|
37
|
+
else
|
38
|
+
puts "Unable to find #{name}."
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def local_versions(name)
|
43
|
+
# From Rubygems' Gem::Commands::QueryCommand
|
44
|
+
dep = Gem::Dependency.new name, Gem::Requirement.default
|
45
|
+
specs = Gem.source_index.search dep
|
46
|
+
specs.map { |spec| spec.version.to_s }
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gem-versions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease: false
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Andy Stewart
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-09-22 00:00:00 +02:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: httparty
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 27
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 8
|
33
|
+
version: "0.8"
|
34
|
+
type: :runtime
|
35
|
+
version_requirements: *id001
|
36
|
+
description: " The `gem versions` command can be used to show all versions of\n a gem published on Rubygems.org. Versions you have installed\n locally are asterisked.\n"
|
37
|
+
email: boss@airbladesoftware.com
|
38
|
+
executables: []
|
39
|
+
|
40
|
+
extensions: []
|
41
|
+
|
42
|
+
extra_rdoc_files: []
|
43
|
+
|
44
|
+
files:
|
45
|
+
- .gitignore
|
46
|
+
- Gemfile
|
47
|
+
- README.md
|
48
|
+
- Rakefile
|
49
|
+
- gem-versions.gemspec
|
50
|
+
- lib/rubygems/commands/versions_command.rb
|
51
|
+
- lib/rubygems_plugin.rb
|
52
|
+
has_rdoc: true
|
53
|
+
homepage: https://github.com/airblade/gem-versions
|
54
|
+
licenses: []
|
55
|
+
|
56
|
+
post_install_message:
|
57
|
+
rdoc_options: []
|
58
|
+
|
59
|
+
require_paths:
|
60
|
+
- lib
|
61
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
62
|
+
none: false
|
63
|
+
requirements:
|
64
|
+
- - ">="
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
hash: 3
|
67
|
+
segments:
|
68
|
+
- 0
|
69
|
+
version: "0"
|
70
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
71
|
+
none: false
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
hash: 3
|
76
|
+
segments:
|
77
|
+
- 0
|
78
|
+
version: "0"
|
79
|
+
requirements: []
|
80
|
+
|
81
|
+
rubyforge_project:
|
82
|
+
rubygems_version: 1.3.7
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: List all published versions of a gem.
|
86
|
+
test_files: []
|
87
|
+
|