aurb 1.0.3 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/aurb.gemspec +6 -3
- data/bin/aurb +6 -83
- data/lib/aurb.rb +30 -18
- data/lib/aurb/aur.rb +83 -102
- data/lib/aurb/cli.rb +88 -0
- data/lib/aurb/support.rb +0 -11
- data/test/test_helper.rb +0 -9
- data/test/unit/test_aur.rb +14 -27
- data/test/unit/test_support.rb +0 -11
- metadata +13 -3
- data/lib/aurb/version.rb +0 -19
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/aurb.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{aurb}
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Gigamo"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-02-07}
|
13
13
|
s.default_executable = %q{aurb}
|
14
14
|
s.email = %q{gigamo@gmail.com}
|
15
15
|
s.executables = ["aurb"]
|
@@ -27,8 +27,8 @@ Gem::Specification.new do |s|
|
|
27
27
|
"bin/aurb",
|
28
28
|
"lib/aurb.rb",
|
29
29
|
"lib/aurb/aur.rb",
|
30
|
+
"lib/aurb/cli.rb",
|
30
31
|
"lib/aurb/support.rb",
|
31
|
-
"lib/aurb/version.rb",
|
32
32
|
"test/test_helper.rb",
|
33
33
|
"test/unit/test_aur.rb",
|
34
34
|
"test/unit/test_support.rb"
|
@@ -50,12 +50,14 @@ Gem::Specification.new do |s|
|
|
50
50
|
|
51
51
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
52
52
|
s.add_runtime_dependency(%q<yajl-ruby>, [">= 0"])
|
53
|
+
s.add_runtime_dependency(%q<thor>, [">= 0"])
|
53
54
|
s.add_runtime_dependency(%q<ansi>, [">= 0"])
|
54
55
|
s.add_runtime_dependency(%q<archive-tar-minitar>, [">= 0"])
|
55
56
|
s.add_runtime_dependency(%q<facets>, [">= 0"])
|
56
57
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
57
58
|
else
|
58
59
|
s.add_dependency(%q<yajl-ruby>, [">= 0"])
|
60
|
+
s.add_dependency(%q<thor>, [">= 0"])
|
59
61
|
s.add_dependency(%q<ansi>, [">= 0"])
|
60
62
|
s.add_dependency(%q<archive-tar-minitar>, [">= 0"])
|
61
63
|
s.add_dependency(%q<facets>, [">= 0"])
|
@@ -63,6 +65,7 @@ Gem::Specification.new do |s|
|
|
63
65
|
end
|
64
66
|
else
|
65
67
|
s.add_dependency(%q<yajl-ruby>, [">= 0"])
|
68
|
+
s.add_dependency(%q<thor>, [">= 0"])
|
66
69
|
s.add_dependency(%q<ansi>, [">= 0"])
|
67
70
|
s.add_dependency(%q<archive-tar-minitar>, [">= 0"])
|
68
71
|
s.add_dependency(%q<facets>, [">= 0"])
|
data/bin/aurb
CHANGED
@@ -6,88 +6,11 @@
|
|
6
6
|
# See LICENSE file for details.
|
7
7
|
#++
|
8
8
|
|
9
|
-
require File.expand_path(File.dirname(__FILE__) + '/../lib/aurb')
|
9
|
+
require File.expand_path(File.dirname(__FILE__) + '/../lib/aurb/cli')
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
def self.parse_options
|
17
|
-
ARGV.unshift '-h' if ARGV.empty?
|
18
|
-
|
19
|
-
gopts = GetoptLong.new(
|
20
|
-
['--download', '-d', GetoptLong::REQUIRED_ARGUMENT],
|
21
|
-
['--search', '-s', GetoptLong::REQUIRED_ARGUMENT],
|
22
|
-
['--upgrade', '-u', GetoptLong::NO_ARGUMENT ],
|
23
|
-
['--version', '-v', GetoptLong::NO_ARGUMENT ],
|
24
|
-
['--help', '-h', GetoptLong::NO_ARGUMENT ]
|
25
|
-
)
|
26
|
-
|
27
|
-
gopts.each do |opt, args|
|
28
|
-
case opt
|
29
|
-
when '--download'
|
30
|
-
packages = download(args.split)
|
31
|
-
puts 'No downloadable packages found' and return if packages.blank?
|
32
|
-
packages.each_with_index do |package, index|
|
33
|
-
current = index + 1
|
34
|
-
total = packages.size
|
35
|
-
local = package.split('/')[-1]
|
36
|
-
|
37
|
-
Dir.chdir(@@path) do
|
38
|
-
open(package) do |remote|
|
39
|
-
File.open(local, 'wb') do |local|
|
40
|
-
local.write remote.read
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
Archive::Tar::Minitar.unpack(
|
45
|
-
Zlib::GzipReader.new(File.open(local, 'rb')), Dir.pwd
|
46
|
-
)
|
47
|
-
File.delete local
|
48
|
-
end
|
49
|
-
|
50
|
-
puts "(#{current}/#{total}) downloaded #{local}"
|
51
|
-
end
|
52
|
-
when '--search'
|
53
|
-
packages = search(args.split)
|
54
|
-
puts 'No results found' and return if packages.blank?
|
55
|
-
packages.each do |package|
|
56
|
-
status = package.OutOfDate == '1' ? '✘'.colorize(:red) : '✔'.colorize(:green)
|
57
|
-
name = package.Name.colorize(:yellow)
|
58
|
-
version = package.Version
|
59
|
-
description = package.Description
|
60
|
-
|
61
|
-
puts "[#{status}] #{name} (#{version})\n #{description}"
|
62
|
-
end
|
63
|
-
when '--upgrade'
|
64
|
-
local_list = `pacman -Qm`.split(/\n/)
|
65
|
-
packages = upgrade(local_list)
|
66
|
-
puts 'Nothing to upgrade' and return if packages.blank?
|
67
|
-
packages.each do |package|
|
68
|
-
puts "#{package} has an upgrade available"
|
69
|
-
end
|
70
|
-
when '--version'
|
71
|
-
puts Aurb::Version
|
72
|
-
when '--help'
|
73
|
-
puts %{
|
74
|
-
Aurb - An AUR (Arch User Repository) script
|
75
|
-
|
76
|
-
Usage:
|
77
|
-
#{name = File.basename $0} [options]
|
78
|
-
|
79
|
-
Options (Required):
|
80
|
-
-d, --download "packages" Download package(s).
|
81
|
-
-s, --search "packages" Search package(s).
|
82
|
-
-u, --upgrade Search for package upgrades.
|
83
|
-
|
84
|
-
Other:
|
85
|
-
--version Show version and exit.
|
86
|
-
--help You're looking at it.
|
87
|
-
}
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
11
|
+
begin
|
12
|
+
Aurb::CLI.start
|
13
|
+
rescue Aurb::AurbError => e
|
14
|
+
puts e.message.colorize(:red)
|
15
|
+
exit e.status_code
|
91
16
|
end
|
92
|
-
|
93
|
-
Session.parse_options
|
data/lib/aurb.rb
CHANGED
@@ -8,36 +8,48 @@
|
|
8
8
|
|
9
9
|
require 'logger'
|
10
10
|
require 'getoptlong'
|
11
|
-
require 'zlib'
|
12
11
|
require 'open-uri'
|
12
|
+
|
13
|
+
require 'zlib'
|
13
14
|
require 'yajl'
|
14
15
|
require 'ansi'
|
15
16
|
require 'archive/tar/minitar'
|
16
17
|
require 'facets/version'
|
17
18
|
|
18
|
-
module Aurb
|
19
|
-
|
20
|
-
class AurbError < StandardError; end
|
19
|
+
module Aurb #:nodoc:
|
20
|
+
VERSION = '1.1.0'
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
class AurbError < StandardError
|
23
|
+
def self.status_code(code = nil)
|
24
|
+
return @code unless code
|
25
|
+
@code = code
|
26
26
|
end
|
27
|
-
end
|
28
27
|
|
29
|
-
|
30
|
-
|
31
|
-
|
28
|
+
def status_code
|
29
|
+
self.class.status_code
|
30
|
+
end
|
32
31
|
end
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
class AurbDownloadError < AurbError; status_code(10); end
|
34
|
+
class AurbArgumentError < AurbError; status_code(12); end
|
35
|
+
|
36
|
+
class << self
|
37
|
+
attr_reader :aur
|
38
|
+
|
39
|
+
def logger
|
40
|
+
@logger ||= Logger.new(STDOUT)
|
41
|
+
end
|
42
|
+
|
43
|
+
def aur_path(type, arg)
|
44
|
+
"http://aur.archlinux.org/rpc.php?type=#{type}&arg=#{arg}"
|
45
|
+
end
|
46
|
+
|
47
|
+
def aur
|
48
|
+
@aur ||= Aur.new
|
49
|
+
end
|
37
50
|
end
|
38
51
|
end
|
39
52
|
|
40
|
-
$LOAD_PATH.unshift File.dirname(__FILE__)
|
41
|
-
require 'aurb/support'
|
53
|
+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
|
42
54
|
require 'aurb/aur'
|
43
|
-
require 'aurb/
|
55
|
+
require 'aurb/support'
|
data/lib/aurb/aur.rb
CHANGED
@@ -7,115 +7,96 @@
|
|
7
7
|
#++
|
8
8
|
|
9
9
|
module Aurb
|
10
|
-
|
11
|
-
|
12
|
-
|
10
|
+
class Aur
|
11
|
+
# Search the AUR for given +packages+.
|
12
|
+
# Returns an array of results.
|
13
|
+
#
|
14
|
+
# search(['aurb']) # => [{:ID => ..., :Name => 'aurb', ...}, {...}]
|
15
|
+
def search(packages)
|
16
|
+
packages.map do |package|
|
17
|
+
list_search_results(package)
|
18
|
+
end.flatten.delete_if(&:blank?)
|
13
19
|
end
|
14
20
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
raise AurbArgumentError and return
|
29
|
-
end
|
30
|
-
|
31
|
-
results.delete_if(&:blank?)
|
32
|
-
end
|
21
|
+
# Download +packages+ from the AUR.
|
22
|
+
# Returns an array of downloadable package urls.
|
23
|
+
#
|
24
|
+
# download(['aurb']) # => ['http://.../aurb.tar.gz']
|
25
|
+
def download(packages)
|
26
|
+
url = lambda {|p| "http://aur.archlinux.org/packages/#{p}/#{p}.tar.gz"}
|
27
|
+
|
28
|
+
packages.map do |package|
|
29
|
+
url.call(URI.escape(package.to_s))
|
30
|
+
end.select do |package|
|
31
|
+
downloadable?(package)
|
32
|
+
end.delete_if(&:blank?)
|
33
|
+
end
|
33
34
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
url.call(URI.escape(package.to_s))
|
48
|
-
end.select do |package|
|
49
|
-
downloadable?(package)
|
50
|
-
end
|
51
|
-
|
52
|
-
downloadables.delete_if(&:blank?)
|
35
|
+
# Returns a +list+ of names of packages that have an upgrade
|
36
|
+
# available to them, which could then in turn be passed on to
|
37
|
+
# the +download+ method.
|
38
|
+
#
|
39
|
+
# # With Aurb on the AUR as version [0, 8, 2, 1]
|
40
|
+
# upgrade(['aurb 0.0.0.0', 'aurb 0.9.9.9']) # => [:aurb]
|
41
|
+
def upgrade(list)
|
42
|
+
upgradables = []
|
43
|
+
|
44
|
+
list.each do |line|
|
45
|
+
name, version = line.split
|
46
|
+
next if in_community?(name)
|
47
|
+
upgradables << name.to_sym if upgradable?(name, version)
|
53
48
|
end
|
54
49
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
50
|
+
upgradables
|
51
|
+
end
|
52
|
+
|
53
|
+
protected
|
54
|
+
|
55
|
+
# See if +package+ is available in the community repository.
|
56
|
+
def in_community?(package)
|
57
|
+
Dir["/var/lib/pacman/sync/community/#{package}-*"].any?
|
58
|
+
end
|
59
|
+
|
60
|
+
# Check if +package+ is available for download.
|
61
|
+
def downloadable?(package)
|
62
|
+
open package rescue false
|
63
|
+
end
|
64
|
+
|
65
|
+
# Compare version of local +package+ with the one on the AUR.
|
66
|
+
def upgradable?(package, version)
|
67
|
+
json = parse_json(Aurb.aur_path(:info, package.to_s))
|
68
|
+
return if json.type =~ /error/
|
69
|
+
remote_package = json.results
|
70
|
+
|
71
|
+
local_version = VersionNumber.new(version)
|
72
|
+
remote_version = VersionNumber.new(remote_package.Version)
|
73
|
+
|
74
|
+
local_version < remote_version
|
75
|
+
end
|
76
|
+
|
77
|
+
# Returns an array containing a hash of search results
|
78
|
+
# for a given +package+.
|
79
|
+
def list_search_results(package)
|
80
|
+
json = parse_json(Aurb.aur_path(:search, URI.escape(package.to_s)))
|
81
|
+
return if json.type =~ /error/
|
82
|
+
ids = json.results.map(&:ID)
|
83
|
+
results = []
|
84
|
+
|
85
|
+
ids.each do |id|
|
86
|
+
json = parse_json(Aurb.aur_path(:info, id))
|
87
|
+
next if json.type =~ /error/
|
88
|
+
result = json.results.symbolize_keys
|
89
|
+
results << result unless in_community?(result[:Name])
|
71
90
|
end
|
72
91
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
Yajl::Parser.new.parse(open(json).read)
|
82
|
-
end
|
83
|
-
|
84
|
-
# Check if +package+ is available for download.
|
85
|
-
def downloadable?(package)
|
86
|
-
open package rescue false
|
87
|
-
end
|
88
|
-
|
89
|
-
# Compare version of local +package+ with the one on the AUR.
|
90
|
-
def upgradable?(package, version)
|
91
|
-
json = parse_json(Aurb.aur_path(:info, package.to_s))
|
92
|
-
return if json.type =~ /error/
|
93
|
-
remote_package = json.results
|
94
|
-
|
95
|
-
local_version = VersionNumber.new(version)
|
96
|
-
remote_version = VersionNumber.new(remote_package.Version)
|
97
|
-
|
98
|
-
local_version < remote_version
|
99
|
-
end
|
100
|
-
|
101
|
-
# Returns an array containing a hash of search results
|
102
|
-
# for a given +package+.
|
103
|
-
def list_search_results(package)
|
104
|
-
json = parse_json(Aurb.aur_path(:search, URI.escape(package.to_s)))
|
105
|
-
return if json.type =~ /error/
|
106
|
-
ids = json.results.map(&:ID)
|
107
|
-
results = []
|
108
|
-
|
109
|
-
ids.each do |id|
|
110
|
-
json = parse_json(Aurb.aur_path(:info, id))
|
111
|
-
next if json.type =~ /error/
|
112
|
-
result = json.results.symbolize_keys
|
113
|
-
results << result unless in_community?(result[:Name])
|
114
|
-
end
|
115
|
-
|
116
|
-
results
|
117
|
-
end
|
118
|
-
# private
|
92
|
+
results
|
93
|
+
end
|
94
|
+
|
95
|
+
private
|
96
|
+
|
97
|
+
# Shortcut to the +Yajl+ JSON parser.
|
98
|
+
def parse_json(json)
|
99
|
+
Yajl::Parser.new.parse(open(json).read)
|
119
100
|
end
|
120
101
|
end
|
121
102
|
end
|
data/lib/aurb/cli.rb
ADDED
@@ -0,0 +1,88 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: utf-8
|
3
|
+
#
|
4
|
+
#--
|
5
|
+
# Copyright protects this work.
|
6
|
+
# See LICENSE file for details.
|
7
|
+
#++
|
8
|
+
|
9
|
+
require 'thor'
|
10
|
+
require File.expand_path(File.dirname(__FILE__) + '/../aurb')
|
11
|
+
|
12
|
+
module Aurb
|
13
|
+
class CLI < Thor
|
14
|
+
ARGV = ::ARGV.dup
|
15
|
+
|
16
|
+
map '-d' => :download
|
17
|
+
map '-s' => :search
|
18
|
+
map '-u' => :upgrade
|
19
|
+
|
20
|
+
desc 'download "PACKAGES"', 'Download packages'
|
21
|
+
method_option :path,
|
22
|
+
:type => :string,
|
23
|
+
:default => File.join(ENV[:HOME], 'abs'),
|
24
|
+
:banner => 'Specify the path to download to'
|
25
|
+
def download(pkgs)
|
26
|
+
pkgs = Aurb.aur.download(pkgs.split)
|
27
|
+
|
28
|
+
puts 'No downloadable packages found' and return if pkgs.blank?
|
29
|
+
|
30
|
+
opts = options.dup
|
31
|
+
path = opts[:path][0] == '/' ? opts[:path] : File.join(Dir.pwd, opts[:path])
|
32
|
+
if File.exist?(path)
|
33
|
+
opts[:path] = File.expand_path(path)
|
34
|
+
else
|
35
|
+
raise AurbDownloadError, "'#{path}' is not a valid path"
|
36
|
+
end
|
37
|
+
|
38
|
+
pkgs.each_with_index do |package, index|
|
39
|
+
current = index + 1
|
40
|
+
total = pkgs.size
|
41
|
+
local = package.split('/')[-1]
|
42
|
+
|
43
|
+
Dir.chdir(opts[:path]) do
|
44
|
+
open(package) do |remote|
|
45
|
+
File.open(local, 'wb') do |local|
|
46
|
+
local.write remote.read
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
Archive::Tar::Minitar.unpack(
|
51
|
+
Zlib::GzipReader.new(File.open(local, 'rb')), Dir.pwd
|
52
|
+
)
|
53
|
+
File.delete local
|
54
|
+
end
|
55
|
+
|
56
|
+
puts "(#{current}/#{total}) downloaded #{local}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
desc 'search "PACKAGES"', 'Search for packages'
|
61
|
+
def search(pkgs)
|
62
|
+
pkgs = Aurb.aur.search(pkgs.split)
|
63
|
+
|
64
|
+
puts 'No results found' and return if pkgs.blank?
|
65
|
+
|
66
|
+
pkgs.each do |package|
|
67
|
+
status = package.OutOfDate == '1' ? '✘'.colorize(:red) : '✔'.colorize(:green)
|
68
|
+
name, version, description = package.Name.colorize(:yellow),
|
69
|
+
package.Version,
|
70
|
+
package.Description
|
71
|
+
|
72
|
+
puts "[#{status}] #{name} (#{version})\n #{description}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
desc 'upgrade', 'Search for upgrades to installed packages'
|
77
|
+
def upgrade
|
78
|
+
list = `pacman -Qm`.split(/\n/)
|
79
|
+
pkgs = Aurb.aur.upgrade(list)
|
80
|
+
|
81
|
+
puts 'Nothing to upgrade' and return if pkgs.blank?
|
82
|
+
|
83
|
+
pkgs.each do |package|
|
84
|
+
puts "#{package} has an upgrade available"
|
85
|
+
end
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
data/lib/aurb/support.rb
CHANGED
@@ -10,17 +10,6 @@ class Object
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
class Symbol
|
14
|
-
# Turns the symbol into a proc, useful for enumerations.
|
15
|
-
#
|
16
|
-
# items.select(&:cool?).map(&:name)
|
17
|
-
# # Does the same as
|
18
|
-
# items.select {|i| i.cool?}.map {|i| i.name}
|
19
|
-
def to_proc
|
20
|
-
Proc.new {|obj| obj.__send__(self)}
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
13
|
class Hash
|
25
14
|
# Returns a new hash with all keys converted to symbols.
|
26
15
|
def symbolize_keys
|
data/test/test_helper.rb
CHANGED
data/test/unit/test_aur.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
2
2
|
|
3
3
|
class AurTest < Test::Unit::TestCase
|
4
|
-
context 'Aur
|
4
|
+
context 'Aurb::Aur #' do
|
5
5
|
setup do
|
6
|
-
@
|
6
|
+
@aur = Aurb.aur
|
7
7
|
end
|
8
8
|
|
9
9
|
context 'upgrade' do
|
@@ -13,61 +13,48 @@ class AurTest < Test::Unit::TestCase
|
|
13
13
|
end
|
14
14
|
|
15
15
|
should 'return an array' do
|
16
|
-
assert @
|
16
|
+
assert @aur.upgrade(@list).is_a?(Array)
|
17
17
|
end
|
18
18
|
|
19
19
|
should 'contain only upgradable packages' do
|
20
|
-
assert_not_equal [:aurb, :aurb], @
|
21
|
-
assert_equal [:aurb], @
|
20
|
+
assert_not_equal [:aurb, :aurb], @aur.upgrade(@list)
|
21
|
+
assert_equal [:aurb], @aur.upgrade(@list)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
25
25
|
context 'download' do
|
26
26
|
setup do
|
27
27
|
@url = lambda {|p| "http://aur.archlinux.org/packages/#{p}/#{p}.tar.gz"}
|
28
|
-
@package_working = 'awesome-git'
|
29
|
-
@package_faulty = 'awesome'
|
30
|
-
end
|
31
|
-
|
32
|
-
should 'accept arrays, symbols and strings' do
|
33
|
-
assert_nothing_raised { @session.download(@package_working.to_s) }
|
34
|
-
assert_nothing_raised { @session.download(@package_working.split) }
|
35
|
-
assert_nothing_raised { @session.download(@package_working.to_sym) }
|
28
|
+
@package_working = ['awesome-git']
|
29
|
+
@package_faulty = ['awesome']
|
36
30
|
end
|
37
31
|
|
38
32
|
should 'return an array' do
|
39
|
-
assert @
|
40
|
-
assert @
|
33
|
+
assert @aur.download(@package_working).is_a?(Array)
|
34
|
+
assert @aur.download(@package_faulty).is_a?(Array)
|
41
35
|
end
|
42
36
|
|
43
37
|
should 'return download links' do
|
44
|
-
assert_equal [@url.call(@package_working)], @
|
38
|
+
assert_equal [@url.call(@package_working.join)], @aur.download(@package_working)
|
45
39
|
end
|
46
40
|
|
47
41
|
should 'filter out non-existant packages' do
|
48
|
-
assert_equal [], @
|
42
|
+
assert_equal [], @aur.download(@package_faulty)
|
49
43
|
end
|
50
44
|
end
|
51
45
|
|
52
46
|
context 'search' do
|
53
47
|
setup do
|
54
|
-
@package = 'aurb'
|
55
|
-
end
|
56
|
-
|
57
|
-
should 'accept arrays, symbols and strings' do
|
58
|
-
assert_nothing_raised { @session.search(@package.to_s) }
|
59
|
-
assert_nothing_raised { @session.search(@package.split) }
|
60
|
-
assert_nothing_raised { @session.search(@package.to_sym) }
|
48
|
+
@package = ['aurb']
|
61
49
|
end
|
62
50
|
|
63
51
|
should 'return an array of results' do
|
64
|
-
assert @
|
65
|
-
assert @session.search(@package.split).is_a?(Array)
|
52
|
+
assert @aur.search(@package).is_a?(Array)
|
66
53
|
end
|
67
54
|
|
68
55
|
context 'result' do
|
69
56
|
setup do
|
70
|
-
@result = @
|
57
|
+
@result = @aur.search(@package).first
|
71
58
|
end
|
72
59
|
|
73
60
|
should 'return an array containing hashes' do
|
data/test/unit/test_support.rb
CHANGED
@@ -7,17 +7,6 @@ class SupportTest < Test::Unit::TestCase
|
|
7
7
|
assert nil.blank?
|
8
8
|
end
|
9
9
|
|
10
|
-
context 'for symbol' do
|
11
|
-
setup do
|
12
|
-
@stub = ['HELLO']
|
13
|
-
end
|
14
|
-
|
15
|
-
should 'allow for to_proc on enumerations' do
|
16
|
-
assert_equal @stub.map {|s| s.downcase}, @stub.map(&:downcase)
|
17
|
-
assert_equal ['hello'], @stub.map(&:downcase)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
10
|
context 'for hash' do
|
22
11
|
setup do
|
23
12
|
@hash_s = {'hello' => 'world'}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: aurb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gigamo
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-02-07 00:00:00 +01:00
|
13
13
|
default_executable: aurb
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -22,6 +22,16 @@ dependencies:
|
|
22
22
|
- !ruby/object:Gem::Version
|
23
23
|
version: "0"
|
24
24
|
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: thor
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: "0"
|
34
|
+
version:
|
25
35
|
- !ruby/object:Gem::Dependency
|
26
36
|
name: ansi
|
27
37
|
type: :runtime
|
@@ -81,8 +91,8 @@ files:
|
|
81
91
|
- bin/aurb
|
82
92
|
- lib/aurb.rb
|
83
93
|
- lib/aurb/aur.rb
|
94
|
+
- lib/aurb/cli.rb
|
84
95
|
- lib/aurb/support.rb
|
85
|
-
- lib/aurb/version.rb
|
86
96
|
- test/test_helper.rb
|
87
97
|
- test/unit/test_aur.rb
|
88
98
|
- test/unit/test_support.rb
|
data/lib/aurb/version.rb
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: utf-8
|
3
|
-
#
|
4
|
-
#--
|
5
|
-
# Copyright protects this work.
|
6
|
-
# See LICENSE file for details.
|
7
|
-
#++
|
8
|
-
|
9
|
-
module Aurb
|
10
|
-
module Version
|
11
|
-
MAJOR = '1'
|
12
|
-
MINOR = '0'
|
13
|
-
TINY = '3'
|
14
|
-
|
15
|
-
def self.to_s
|
16
|
-
[MAJOR, MINOR, TINY].join('.').freeze
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|