aurb 1.0.3 → 1.1.0
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/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
|