aurb 1.1.1 → 1.1.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/Rakefile +0 -1
- data/VERSION +1 -1
- data/aurb.gemspec +2 -5
- data/bin/aurb +0 -5
- data/lib/aurb.rb +5 -12
- data/lib/aurb/aur.rb +31 -16
- data/lib/aurb/cli.rb +4 -9
- data/test/unit/test_aur.rb +32 -17
- data/test/unit/test_support.rb +4 -3
- metadata +2 -12
data/Rakefile
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.1.
|
1
|
+
1.1.2
|
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.1.
|
8
|
+
s.version = "1.1.2"
|
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-02-
|
12
|
+
s.date = %q{2010-02-09}
|
13
13
|
s.default_executable = %q{aurb}
|
14
14
|
s.email = %q{gigamo@gmail.com}
|
15
15
|
s.executables = ["aurb"]
|
@@ -53,14 +53,12 @@ Gem::Specification.new do |s|
|
|
53
53
|
s.add_runtime_dependency(%q<thor>, [">= 0"])
|
54
54
|
s.add_runtime_dependency(%q<ansi>, [">= 0"])
|
55
55
|
s.add_runtime_dependency(%q<archive-tar-minitar>, [">= 0"])
|
56
|
-
s.add_runtime_dependency(%q<facets>, [">= 0"])
|
57
56
|
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
58
57
|
else
|
59
58
|
s.add_dependency(%q<yajl-ruby>, [">= 0"])
|
60
59
|
s.add_dependency(%q<thor>, [">= 0"])
|
61
60
|
s.add_dependency(%q<ansi>, [">= 0"])
|
62
61
|
s.add_dependency(%q<archive-tar-minitar>, [">= 0"])
|
63
|
-
s.add_dependency(%q<facets>, [">= 0"])
|
64
62
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
65
63
|
end
|
66
64
|
else
|
@@ -68,7 +66,6 @@ Gem::Specification.new do |s|
|
|
68
66
|
s.add_dependency(%q<thor>, [">= 0"])
|
69
67
|
s.add_dependency(%q<ansi>, [">= 0"])
|
70
68
|
s.add_dependency(%q<archive-tar-minitar>, [">= 0"])
|
71
|
-
s.add_dependency(%q<facets>, [">= 0"])
|
72
69
|
s.add_dependency(%q<shoulda>, [">= 0"])
|
73
70
|
end
|
74
71
|
end
|
data/bin/aurb
CHANGED
data/lib/aurb.rb
CHANGED
@@ -1,23 +1,20 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
|
-
|
4
|
-
|
5
|
-
# Copyright protects this work.
|
6
|
-
# See LICENSE file for details.
|
7
|
-
#++
|
3
|
+
|
4
|
+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
|
8
5
|
|
9
6
|
require 'logger'
|
10
|
-
require 'getoptlong'
|
11
7
|
require 'open-uri'
|
12
8
|
|
13
9
|
require 'zlib'
|
14
10
|
require 'yajl'
|
15
11
|
require 'ansi'
|
16
12
|
require 'archive/tar/minitar'
|
17
|
-
require 'facets/version'
|
18
13
|
|
19
14
|
module Aurb #:nodoc:
|
20
|
-
VERSION = '1.1.
|
15
|
+
VERSION = '1.1.2'
|
16
|
+
|
17
|
+
autoload :Aur, 'aurb/aur'
|
21
18
|
|
22
19
|
class AurbError < StandardError
|
23
20
|
def self.status_code(code = nil)
|
@@ -34,8 +31,6 @@ module Aurb #:nodoc:
|
|
34
31
|
class AurbArgumentError < AurbError; status_code(12); end
|
35
32
|
|
36
33
|
class << self
|
37
|
-
attr_reader :aur
|
38
|
-
|
39
34
|
def logger
|
40
35
|
@logger ||= Logger.new(STDOUT)
|
41
36
|
end
|
@@ -54,6 +49,4 @@ module Aurb #:nodoc:
|
|
54
49
|
end
|
55
50
|
end
|
56
51
|
|
57
|
-
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
|
58
|
-
require 'aurb/aur'
|
59
52
|
require 'aurb/support'
|
data/lib/aurb/aur.rb
CHANGED
@@ -1,13 +1,29 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
|
-
#
|
4
|
-
#--
|
5
|
-
# Copyright protects this work.
|
6
|
-
# See LICENSE file for details.
|
7
|
-
#++
|
8
3
|
|
9
4
|
module Aurb
|
10
5
|
class Aur
|
6
|
+
# Compare package versions.
|
7
|
+
#
|
8
|
+
# Version.new('1.0.0') < Version.new('2.0.0') # => true
|
9
|
+
# Version.new('1.1-1') < Version.new('1.0-6') # => false
|
10
|
+
class Version
|
11
|
+
include Comparable
|
12
|
+
|
13
|
+
attr_reader :version
|
14
|
+
|
15
|
+
def initialize(*args)
|
16
|
+
@version = args.join('.').split(/\W+/).map(&:to_i)
|
17
|
+
end
|
18
|
+
|
19
|
+
def <=>(other)
|
20
|
+
[self.version.size, other.version.size].max.times do |i|
|
21
|
+
c = self.version[i] <=> other.version[i]
|
22
|
+
return c if c != 0
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
11
27
|
# Search the AUR for given +packages+.
|
12
28
|
# Returns an array of results.
|
13
29
|
#
|
@@ -34,8 +50,8 @@ module Aurb
|
|
34
50
|
# available to them, which could then in turn be passed on to
|
35
51
|
# the +download+ method.
|
36
52
|
#
|
37
|
-
# # With Aurb on the AUR as version
|
38
|
-
# upgrade(['aurb 0.0.0
|
53
|
+
# # With Aurb on the AUR as version 1.1.2-1
|
54
|
+
# upgrade(['aurb 0.0.0-0', 'aurb 0.9.9-9']) # => [:aurb]
|
39
55
|
def upgrade(list)
|
40
56
|
list.inject([]) do |ary, line|
|
41
57
|
name, version = line.split
|
@@ -59,16 +75,15 @@ module Aurb
|
|
59
75
|
|
60
76
|
# Compare version of local +package+ with the one on the AUR.
|
61
77
|
def upgradable?(package, version)
|
62
|
-
|
63
|
-
|
78
|
+
local_version = Version.new(version)
|
79
|
+
remote_version = nil
|
64
80
|
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
remote_version = VersionNumber.new(remote_package.Version)
|
69
|
-
|
70
|
-
local_version < remote_version
|
81
|
+
parse_json Aurb.aur_path(:info, package.to_s) do |json|
|
82
|
+
return if json.type =~ /error/
|
83
|
+
remote_version = Version.new(json.results.Version)
|
71
84
|
end
|
85
|
+
|
86
|
+
remote_version && local_version < remote_version
|
72
87
|
end
|
73
88
|
|
74
89
|
# Returns an array containing a hash of search results
|
@@ -79,7 +94,7 @@ module Aurb
|
|
79
94
|
|
80
95
|
ids = json.results.map(&:ID)
|
81
96
|
ids.inject([]) do |ary, id|
|
82
|
-
parse_json
|
97
|
+
parse_json Aurb.aur_path(:info, id) do |json|
|
83
98
|
next if json.type =~ /error/
|
84
99
|
result = json.results.symbolize_keys
|
85
100
|
ary << result unless in_community?(result.Name)
|
data/lib/aurb/cli.rb
CHANGED
@@ -1,10 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
# encoding: utf-8
|
3
|
-
#
|
4
|
-
#--
|
5
|
-
# Copyright protects this work.
|
6
|
-
# See LICENSE file for details.
|
7
|
-
#++
|
8
3
|
|
9
4
|
require 'thor'
|
10
5
|
require File.expand_path(File.dirname(__FILE__) + '/../aurb')
|
@@ -30,7 +25,7 @@ module Aurb
|
|
30
25
|
opts = options.dup
|
31
26
|
path = opts[:path][0] == '/' ? opts[:path] : File.join(Dir.pwd, opts[:path])
|
32
27
|
if File.exist?(path)
|
33
|
-
|
28
|
+
path = File.expand_path(path)
|
34
29
|
else
|
35
30
|
raise AurbDownloadError, "'#{path}' is not a valid path"
|
36
31
|
end
|
@@ -40,9 +35,9 @@ module Aurb
|
|
40
35
|
total = pkgs.size
|
41
36
|
local = package.split('/')[-1]
|
42
37
|
|
43
|
-
Dir.chdir
|
44
|
-
open
|
45
|
-
File.open
|
38
|
+
Dir.chdir path do
|
39
|
+
open package do |remote|
|
40
|
+
File.open local, 'wb' do |local|
|
46
41
|
local.write remote.read
|
47
42
|
end
|
48
43
|
end
|
data/test/unit/test_aur.rb
CHANGED
@@ -1,44 +1,58 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../test_helper')
|
2
2
|
|
3
3
|
class AurTest < Test::Unit::TestCase
|
4
|
-
context 'Aurb::Aur
|
5
|
-
|
6
|
-
|
4
|
+
context 'Aurb::Aur ::' do
|
5
|
+
context 'Version' do
|
6
|
+
should 'be able to compare versions and return the newest' do
|
7
|
+
versions = [
|
8
|
+
{:old => '1', :new => '2' },
|
9
|
+
{:old => '1-3', :new => '2-1' },
|
10
|
+
{:old => '1.0.0-2', :new => '2.0.0-3'},
|
11
|
+
{:old => '1.0.pre', :new => '1.0.1' }
|
12
|
+
]
|
13
|
+
|
14
|
+
versions.each do |version|
|
15
|
+
assert Aurb::Aur::Version.new(version[:old]) < Aurb::Aur::Version.new(version[:new])
|
16
|
+
end
|
17
|
+
end
|
7
18
|
end
|
19
|
+
end
|
8
20
|
|
21
|
+
context 'Aurb::Aur #' do
|
9
22
|
context 'upgrade' do
|
10
23
|
setup do
|
11
|
-
@list = ['aurb 0.0.0
|
12
|
-
'aurb 9.9.9
|
24
|
+
@list = ['aurb 0.0.0-0',
|
25
|
+
'aurb 9.9.9-9']
|
13
26
|
end
|
14
27
|
|
15
28
|
should 'return an array' do
|
16
|
-
assert
|
29
|
+
assert Aurb.aur.upgrade(@list).is_a?(Array)
|
17
30
|
end
|
18
31
|
|
19
32
|
should 'contain only upgradable packages' do
|
20
|
-
assert_not_equal [:aurb, :aurb],
|
21
|
-
assert_equal [:aurb],
|
33
|
+
assert_not_equal [:aurb, :aurb], Aurb.aur.upgrade(@list)
|
34
|
+
assert_equal [:aurb], Aurb.aur.upgrade(@list)
|
22
35
|
end
|
23
36
|
end
|
24
37
|
|
25
38
|
context 'download' do
|
26
39
|
setup do
|
27
|
-
@package_working = ['
|
28
|
-
@package_faulty = ['
|
40
|
+
@package_working = ['aurb']
|
41
|
+
@package_faulty = ['foobarbaz']
|
29
42
|
end
|
30
43
|
|
31
44
|
should 'return an array' do
|
32
|
-
assert
|
33
|
-
assert
|
45
|
+
assert Aurb.aur.download(@package_working).is_a?(Array)
|
46
|
+
assert Aurb.aur.download(@package_faulty).is_a?(Array)
|
34
47
|
end
|
35
48
|
|
36
49
|
should 'return download links' do
|
37
|
-
assert_equal [Aurb.aur_download_path(@package_working.join)],
|
50
|
+
assert_equal [Aurb.aur_download_path(@package_working.join)], Aurb.aur.download(@package_working)
|
38
51
|
end
|
39
52
|
|
40
53
|
should 'filter out non-existant packages' do
|
41
|
-
|
54
|
+
assert Aurb.aur.download(@package_faulty).blank?
|
55
|
+
assert_equal [], Aurb.aur.download(@package_faulty)
|
42
56
|
end
|
43
57
|
end
|
44
58
|
|
@@ -49,16 +63,17 @@ class AurTest < Test::Unit::TestCase
|
|
49
63
|
end
|
50
64
|
|
51
65
|
should 'return an array of results' do
|
52
|
-
assert
|
66
|
+
assert Aurb.aur.search(@package_working).is_a?(Array)
|
53
67
|
end
|
54
68
|
|
55
69
|
should 'filter out non-existant packages' do
|
56
|
-
|
70
|
+
assert Aurb.aur.search(@package_faulty).blank?
|
71
|
+
assert_equal [], Aurb.aur.search(@package_faulty)
|
57
72
|
end
|
58
73
|
|
59
74
|
context 'result' do
|
60
75
|
setup do
|
61
|
-
@result =
|
76
|
+
@result = Aurb.aur.search(@package_working).first
|
62
77
|
end
|
63
78
|
|
64
79
|
should 'return an array containing hashes' do
|
data/test/unit/test_support.rb
CHANGED
@@ -12,13 +12,13 @@ class SupportTest < Test::Unit::TestCase
|
|
12
12
|
context 'Hash' do
|
13
13
|
setup do
|
14
14
|
@hash_str = {'hello' => 'world'}
|
15
|
-
@hash_sym = {:hello
|
15
|
+
@hash_sym = {:hello => 'world'}
|
16
16
|
end
|
17
17
|
|
18
18
|
should 'be able to symbolize keys' do
|
19
19
|
assert_equal @hash_sym, @hash_str.symbolize_keys
|
20
|
-
|
21
|
-
assert_equal @hash_sym,
|
20
|
+
@hash_str.symbolize_keys!
|
21
|
+
assert_equal @hash_sym, @hash_str
|
22
22
|
end
|
23
23
|
|
24
24
|
should 'provide methods for its keys through method_missing' do
|
@@ -33,6 +33,7 @@ class SupportTest < Test::Unit::TestCase
|
|
33
33
|
end
|
34
34
|
|
35
35
|
should 'be able to colorize itself through the ansi library' do
|
36
|
+
assert @str.colorize(:blue)
|
36
37
|
assert_equal "\e[34mfoo\e[0m", @str.colorize(:blue)
|
37
38
|
end
|
38
39
|
end
|
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.1.
|
4
|
+
version: 1.1.2
|
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-02-
|
12
|
+
date: 2010-02-09 00:00:00 +01:00
|
13
13
|
default_executable: aurb
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -52,16 +52,6 @@ dependencies:
|
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: "0"
|
54
54
|
version:
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: facets
|
57
|
-
type: :runtime
|
58
|
-
version_requirement:
|
59
|
-
version_requirements: !ruby/object:Gem::Requirement
|
60
|
-
requirements:
|
61
|
-
- - ">="
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: "0"
|
64
|
-
version:
|
65
55
|
- !ruby/object:Gem::Dependency
|
66
56
|
name: shoulda
|
67
57
|
type: :development
|