getversion 0.0.8 → 0.0.9
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/bin/getversion.rb +0 -0
- data/lib/getversion/detectors/apple.rb +2 -2
- data/lib/getversion/detectors/google.rb +2 -2
- data/lib/getversion/detectors/jetbrains.rb +1 -1
- data/lib/getversion/detectors/microsoft.rb +8 -8
- data/lib/getversion/detectors/rubygems.rb +3 -3
- data/lib/getversion/detectors/uncategorised.rb +2 -2
- data/lib/getversion/executable.rb +7 -20
- data/lib/getversion/executable_store.rb +6 -3
- data/lib/getversion/platform_versions.rb +3 -1
- data/lib/getversion/version_finder.rb +4 -19
- metadata +15 -4
data/bin/getversion.rb
CHANGED
File without changes
|
@@ -2,35 +2,35 @@ module GetVersion
|
|
2
2
|
|
3
3
|
namespace :microsoft
|
4
4
|
|
5
|
-
executable
|
5
|
+
executable :aspnet_compiler do
|
6
6
|
GetVersion['msbuild']
|
7
7
|
end
|
8
8
|
|
9
|
-
executable
|
9
|
+
executable :installutil do
|
10
10
|
find_version_in_output
|
11
11
|
end
|
12
12
|
|
13
|
-
executable
|
13
|
+
executable :msbuild do
|
14
14
|
find_version_in_output '/version'
|
15
15
|
end
|
16
16
|
|
17
|
-
executable
|
17
|
+
executable :msdeploy do
|
18
18
|
find_version_in_output
|
19
19
|
end
|
20
20
|
|
21
|
-
executable
|
21
|
+
executable :mstest do
|
22
22
|
find_version_in_output '/help'
|
23
23
|
end
|
24
24
|
|
25
|
-
executable
|
25
|
+
executable :netsh do
|
26
26
|
windows_version
|
27
27
|
end
|
28
28
|
|
29
|
-
executable
|
29
|
+
executable :nuget do
|
30
30
|
find_version_in_output
|
31
31
|
end
|
32
32
|
|
33
|
-
executable
|
33
|
+
executable :tf do
|
34
34
|
find_version_in_output
|
35
35
|
end
|
36
36
|
|
@@ -2,15 +2,15 @@ module GetVersion
|
|
2
2
|
|
3
3
|
namespace :rubygems
|
4
4
|
|
5
|
-
executable
|
5
|
+
executable :bundle do
|
6
6
|
find_version_in_output '--version'
|
7
7
|
end
|
8
8
|
|
9
|
-
executable
|
9
|
+
executable :cucumber do
|
10
10
|
find_version_in_output '--version'
|
11
11
|
end
|
12
12
|
|
13
|
-
executable
|
13
|
+
executable :rake do
|
14
14
|
find_version_in_output '--version'
|
15
15
|
end
|
16
16
|
|
@@ -4,31 +4,18 @@ require_relative 'execution_context'
|
|
4
4
|
module GetVersion
|
5
5
|
class Executable
|
6
6
|
|
7
|
-
attr_reader :
|
7
|
+
attr_reader :block
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@
|
11
|
-
@namespace = namespace
|
12
|
-
@block = block
|
9
|
+
def initialize(&block)
|
10
|
+
@block = block || Proc.new {}
|
13
11
|
end
|
14
12
|
|
15
|
-
def version(
|
16
|
-
ExecutionContext.execute path
|
13
|
+
def version(path)
|
14
|
+
ExecutionContext.execute path, &@block
|
17
15
|
end
|
18
16
|
|
19
|
-
def self.version(
|
20
|
-
Executable.new(
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def path(name, dir=nil)
|
26
|
-
path = WickedWitch[name]
|
27
|
-
raise "#{name} not found." unless path
|
28
|
-
dir ||= File.dirname(path)
|
29
|
-
dir = nil if dir == '.'
|
30
|
-
return name unless dir
|
31
|
-
File.join dir, name
|
17
|
+
def self.version(path, &block)
|
18
|
+
Executable.new(&block).version(path)
|
32
19
|
end
|
33
20
|
|
34
21
|
end
|
@@ -8,12 +8,15 @@ module GetVersion
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def add_executable(name, namespace, &block)
|
11
|
-
@executables <<
|
11
|
+
@executables << {name: name.to_sym, namespace: namespace.to_sym, value: Executable.new(&block)}
|
12
12
|
end
|
13
13
|
|
14
|
-
def get_executable(
|
14
|
+
def get_executable(path)
|
15
|
+
basename = File.basename path
|
16
|
+
name = basename == path ? path : basename
|
15
17
|
possibilities = [name, File.basename(name, '.*')]
|
16
|
-
@executables.find { |e| possibilities.find { |p| p.casecmp(e.
|
18
|
+
executable = @executables.find { |e| possibilities.find { |p| p.casecmp(e[:name].to_s) == 0 } }
|
19
|
+
executable[:value] if executable
|
17
20
|
end
|
18
21
|
|
19
22
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'wicked_witch'
|
1
2
|
require 'yaml'
|
2
3
|
require_relative 'executable'
|
3
4
|
|
@@ -5,7 +6,8 @@ module GetVersion
|
|
5
6
|
module PlatformVersions
|
6
7
|
|
7
8
|
def google_appengine_version
|
8
|
-
|
9
|
+
realpath = WickedWitch[@path]
|
10
|
+
dir = File.dirname realpath
|
9
11
|
version_file = File.join dir, 'VERSION'
|
10
12
|
YAML::load_file(version_file)['release']
|
11
13
|
end
|
@@ -19,31 +19,16 @@ module GetVersion
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def get(executable_if_nil)
|
22
|
-
executable = @executable_store.get_executable(
|
23
|
-
executable.version
|
24
|
-
end
|
25
|
-
|
26
|
-
def path
|
27
|
-
@path
|
28
|
-
end
|
29
|
-
|
30
|
-
def name
|
31
|
-
File.basename path
|
32
|
-
end
|
33
|
-
|
34
|
-
def dir
|
35
|
-
dir = File.dirname path
|
36
|
-
dir = nil if dir == '.'
|
37
|
-
dir
|
22
|
+
executable = @executable_store.get_executable(@path) || executable_if_nil
|
23
|
+
executable.version @path
|
38
24
|
end
|
39
25
|
|
40
26
|
def null_executable
|
41
|
-
Executable.new
|
42
|
-
end
|
27
|
+
Executable.new
|
43
28
|
end
|
44
29
|
|
45
30
|
def executable_for_guessing
|
46
|
-
Executable.new
|
31
|
+
Executable.new do
|
47
32
|
args = %w(--version -version /version version --help -help /help help) << nil
|
48
33
|
versions = args.map { |arg| find_version_in_output arg }.compact.uniq
|
49
34
|
versions[0] if versions.length == 1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: getversion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: wicked_witch
|
16
|
-
requirement: &
|
16
|
+
requirement: &70288378670740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,18 @@ dependencies:
|
|
21
21
|
version: 0.0.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70288378670740
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: test-unit
|
27
|
+
requirement: &70288378670260 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.5.5
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70288378670260
|
25
36
|
description: Provides a standard interface for obtaining CLI application version numbers.
|
26
37
|
email: matthew@matthewriley.name
|
27
38
|
executables:
|