gem_locate 0.5.0 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +1 -55
- data/VERSION +1 -1
- data/lib/commands/locate.rb +30 -26
- data/lib/gem_extension/source_index.rb +1 -1
- data/lib/rubygems_plugin.rb +3 -1
- metadata +22 -12
- data/Rakefile +0 -51
data/README.textile
CHANGED
@@ -1,57 +1,3 @@
|
|
1
1
|
h1. Gem Locate
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
_I think someone made something like this before...but I couldn't find it_
|
6
|
-
|
7
|
-
h2. Install
|
8
|
-
|
9
|
-
@[sudo] gem install gem_locate@
|
10
|
-
|
11
|
-
h2. Usage
|
12
|
-
|
13
|
-
pre.. $ gem help locate
|
14
|
-
Usage: gem locate [STRING] [options]
|
15
|
-
Options:
|
16
|
-
-i, --[no-]installed Check for installed gem
|
17
|
-
-v, --version VERSION Specify version of gem to locate
|
18
|
-
-n, --name-matches REGEXP Name of gem(s) to query on matches the
|
19
|
-
provided REGEXP
|
20
|
-
-d, --[no-]details Display detailed information of gem(s)
|
21
|
-
--[no-]versions Display only gem names
|
22
|
-
-a, --all Display all gem versions
|
23
|
-
--prerelease Display prerelease versions
|
24
|
-
|
25
|
-
Local/Remote Options:
|
26
|
-
-l, --local Restrict operations to the LOCAL domain
|
27
|
-
-B, --bulk-threshold COUNT Threshold for switching to bulk
|
28
|
-
synchronization (default 1000)
|
29
|
-
|
30
|
-
Common Options:
|
31
|
-
-h, --help Get help on this command
|
32
|
-
-V, --[no-]verbose Set the verbose level of output
|
33
|
-
-q, --quiet Silence commands
|
34
|
-
--config-file FILE Use this config file instead of default
|
35
|
-
--backtrace Show stack backtrace on errors
|
36
|
-
--debug Turn on Ruby debugging
|
37
|
-
|
38
|
-
Arguments:
|
39
|
-
STRING fragment of gem name,summary, or description to search for
|
40
|
-
|
41
|
-
Summary:
|
42
|
-
Find all gems whose name, summary, or description match STRING
|
43
|
-
|
44
|
-
Defaults:
|
45
|
-
--local
|
46
|
-
|
47
|
-
h1. Note on Patches/Pull Requests
|
48
|
-
|
49
|
-
* Fork the project.
|
50
|
-
* Make your feature addition or bug fix.
|
51
|
-
* Commit, do not mess with rakefile, version, or history.
|
52
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
53
|
-
* Send me a pull request :)
|
54
|
-
|
55
|
-
h1. Copyright
|
56
|
-
|
57
|
-
Copyright (c) 2010 Kabari Hendrick. See LICENSE for details.
|
3
|
+
Use this instead: http://rubygems.org/gems/rubypan
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.5.
|
1
|
+
0.5.2
|
data/lib/commands/locate.rb
CHANGED
@@ -2,7 +2,7 @@ class Gem::Commands::LocateCommand < Gem::Commands::QueryCommand
|
|
2
2
|
def initialize
|
3
3
|
super 'locate', 'Find all gems whose name, summary, or description match STRING'
|
4
4
|
|
5
|
-
%w(-
|
5
|
+
%w(-p -u).each{|com| remove_option com }
|
6
6
|
end
|
7
7
|
|
8
8
|
def arguments # :nodoc:
|
@@ -16,15 +16,15 @@ class Gem::Commands::LocateCommand < Gem::Commands::QueryCommand
|
|
16
16
|
def usage # :nodoc:
|
17
17
|
"#{program_name} [STRING]"
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def execute
|
21
21
|
string = get_one_optional_argument
|
22
|
-
options[:name] = /#{string}/i
|
22
|
+
options[:name] = /#{string}/i
|
23
23
|
exit_code = 0
|
24
|
-
|
24
|
+
|
25
25
|
name = options[:name]
|
26
26
|
prerelease = options[:prerelease]
|
27
|
-
|
27
|
+
|
28
28
|
if options[:installed] then
|
29
29
|
if name.source.empty? then
|
30
30
|
alert_error "You must specify a gem name"
|
@@ -35,32 +35,36 @@ class Gem::Commands::LocateCommand < Gem::Commands::QueryCommand
|
|
35
35
|
say "false"
|
36
36
|
exit_code |= 1
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
raise Gem::SystemExitException, exit_code
|
40
40
|
end
|
41
|
-
|
41
|
+
|
42
42
|
dep = Gem::Dependency.new name, Gem::Requirement.default
|
43
|
-
|
44
|
-
if
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
43
|
+
|
44
|
+
if local? then
|
45
|
+
if prerelease and not both? then
|
46
|
+
alert_warning "prereleases are always shown locally"
|
47
|
+
end
|
48
|
+
|
49
|
+
if ui.outs.tty? or both? then
|
50
|
+
say
|
51
|
+
say "*** LOCAL GEMS ***"
|
52
|
+
say
|
53
|
+
end
|
54
|
+
|
55
|
+
specs = Gem.source_index.locate dep
|
56
|
+
|
57
|
+
spec_tuples = specs.map do |spec|
|
58
|
+
[[spec.name, spec.version, spec.original_platform, spec], :local]
|
59
|
+
end
|
60
|
+
|
61
|
+
output_query_results spec_tuples
|
62
|
+
options[:local] = options[:domain] = nil
|
52
63
|
end
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
spec_tuples = specs.map do |spec|
|
57
|
-
[[spec.name, spec.version, spec.original_platform, spec], :local]
|
64
|
+
|
65
|
+
if remote? then
|
66
|
+
super
|
58
67
|
end
|
59
|
-
|
60
|
-
output_query_results spec_tuples
|
61
|
-
|
62
|
-
# TODO support remote gem search
|
63
68
|
end
|
64
|
-
|
65
69
|
end
|
66
70
|
|
@@ -15,7 +15,7 @@ class Gem::SourceIndex
|
|
15
15
|
version_requirement = platform_only || Gem::Requirement.default
|
16
16
|
when Gem::Dependency then
|
17
17
|
only_platform = platform_only
|
18
|
-
version_requirement = gem_pattern.version_requirements
|
18
|
+
version_requirement = (Gem::VERSION == '1.3.6') ? gem_pattern.requirement : gem_pattern.version_requirements
|
19
19
|
gem_pattern = if Regexp === gem_pattern.name then
|
20
20
|
gem_pattern.name
|
21
21
|
elsif gem_pattern.name.empty? then
|
data/lib/rubygems_plugin.rb
CHANGED
@@ -5,6 +5,8 @@ require 'rubygems/command'
|
|
5
5
|
require 'rubygems/commands/query_command'
|
6
6
|
|
7
7
|
require "commands/locate"
|
8
|
-
|
8
|
+
%w( source_index).each do |lib|
|
9
|
+
require File.join(File.dirname(__FILE__), "gem_extension", lib)
|
10
|
+
end
|
9
11
|
# register gem command
|
10
12
|
Gem::CommandManager.instance.register_command :locate
|
metadata
CHANGED
@@ -1,7 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gem_locate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 5
|
8
|
+
- 2
|
9
|
+
version: 0.5.2
|
5
10
|
platform: ruby
|
6
11
|
authors:
|
7
12
|
- Kabari Hendrick
|
@@ -9,20 +14,22 @@ autorequire:
|
|
9
14
|
bindir: bin
|
10
15
|
cert_chain: []
|
11
16
|
|
12
|
-
date: 2010-02-
|
17
|
+
date: 2010-02-26 00:00:00 -06:00
|
13
18
|
default_executable:
|
14
19
|
dependencies:
|
15
20
|
- !ruby/object:Gem::Dependency
|
16
21
|
name: yard
|
17
|
-
|
18
|
-
|
19
|
-
version_requirements: !ruby/object:Gem::Requirement
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
24
|
requirements:
|
21
25
|
- - ">="
|
22
26
|
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
23
29
|
version: "0"
|
24
|
-
|
25
|
-
|
30
|
+
type: :development
|
31
|
+
version_requirements: *id001
|
32
|
+
description: "Use this instead: http://rubygems.org/gems/rubypan"
|
26
33
|
email: kabari@gmail.com
|
27
34
|
executables: []
|
28
35
|
|
@@ -33,7 +40,6 @@ extra_rdoc_files:
|
|
33
40
|
- README.textile
|
34
41
|
files:
|
35
42
|
- LICENSE
|
36
|
-
- Rakefile
|
37
43
|
- VERSION
|
38
44
|
- lib/commands/locate.rb
|
39
45
|
- lib/gem_extension/source_index.rb
|
@@ -61,20 +67,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
67
|
requirements:
|
62
68
|
- - ">="
|
63
69
|
- !ruby/object:Gem::Version
|
70
|
+
segments:
|
71
|
+
- 0
|
64
72
|
version: "0"
|
65
|
-
version:
|
66
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
74
|
requirements:
|
68
75
|
- - ">="
|
69
76
|
- !ruby/object:Gem::Version
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 3
|
80
|
+
- 5
|
70
81
|
version: 1.3.5
|
71
|
-
version:
|
72
82
|
requirements: []
|
73
83
|
|
74
84
|
rubyforge_project:
|
75
|
-
rubygems_version: 1.3.
|
85
|
+
rubygems_version: 1.3.6
|
76
86
|
signing_key:
|
77
87
|
specification_version: 3
|
78
|
-
summary:
|
88
|
+
summary: "Use this instead: http://rubygems.org/gems/rubypan"
|
79
89
|
test_files: []
|
80
90
|
|
data/Rakefile
DELETED
@@ -1,51 +0,0 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "gem_locate"
|
8
|
-
gem.summary = %Q{Same as 'gem search' but search description and summary also}
|
9
|
-
gem.description = %Q{Searches gems by name, summary, and description in case you want to find a gem by what it is doing rather than it's name.}
|
10
|
-
gem.email = "kabari@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/kabari/gem_locate"
|
12
|
-
gem.authors = ["Kabari Hendrick"]
|
13
|
-
gem.files = FileList["lib/rubygems_plugin.rb",
|
14
|
-
"lib/commands/locate.rb",
|
15
|
-
"lib/gem_extension/source_index.rb",
|
16
|
-
"README.rdoc",
|
17
|
-
"LICENSE",
|
18
|
-
"VERSION",
|
19
|
-
"Rakefile"]
|
20
|
-
gem.test_files = []
|
21
|
-
gem.executables = []
|
22
|
-
gem.required_rubygems_version = Gem::Requirement.new(">= 1.3.5") if gem.respond_to? :required_rubygems_version=
|
23
|
-
gem.post_install_message = <<MESSAGE
|
24
|
-
|
25
|
-
========================================================================
|
26
|
-
|
27
|
-
Thanks for installing Gem Locate! You can now run:
|
28
|
-
|
29
|
-
gem locate STRING Same as 'gem search' but search description and summary also
|
30
|
-
|
31
|
-
========================================================================
|
32
|
-
|
33
|
-
MESSAGE
|
34
|
-
|
35
|
-
gem.add_development_dependency "yard", ">= 0"
|
36
|
-
end
|
37
|
-
Jeweler::GemcutterTasks.new
|
38
|
-
rescue LoadError
|
39
|
-
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
40
|
-
end
|
41
|
-
|
42
|
-
task :default => :check_dependencies
|
43
|
-
|
44
|
-
begin
|
45
|
-
require 'yard'
|
46
|
-
YARD::Rake::YardocTask.new
|
47
|
-
rescue LoadError
|
48
|
-
task :yardoc do
|
49
|
-
abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
|
50
|
-
end
|
51
|
-
end
|