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 CHANGED
File without changes
@@ -2,11 +2,11 @@ module GetVersion
2
2
 
3
3
  namespace :apple
4
4
 
5
- executable 'security' do
5
+ executable :security do
6
6
  osx_version
7
7
  end
8
8
 
9
- executable 'xcodebuild' do
9
+ executable :xcodebuild do
10
10
  find_version_in_output '-version'
11
11
  end
12
12
 
@@ -2,11 +2,11 @@ module GetVersion
2
2
 
3
3
  namespace :google
4
4
 
5
- executable 'appcfg' do
5
+ executable :appcfg do
6
6
  google_appengine_version
7
7
  end
8
8
 
9
- executable 'dev_appserver' do
9
+ executable :dev_appserver do
10
10
  google_appengine_version
11
11
  end
12
12
 
@@ -2,7 +2,7 @@ module GetVersion
2
2
 
3
3
  namespace :jetbrains
4
4
 
5
- executable 'dotcover' do
5
+ executable :dotcover do
6
6
  find_version_in_output
7
7
  end
8
8
 
@@ -2,35 +2,35 @@ module GetVersion
2
2
 
3
3
  namespace :microsoft
4
4
 
5
- executable 'aspnet_compiler' do
5
+ executable :aspnet_compiler do
6
6
  GetVersion['msbuild']
7
7
  end
8
8
 
9
- executable 'installutil' do
9
+ executable :installutil do
10
10
  find_version_in_output
11
11
  end
12
12
 
13
- executable 'msbuild' do
13
+ executable :msbuild do
14
14
  find_version_in_output '/version'
15
15
  end
16
16
 
17
- executable 'msdeploy' do
17
+ executable :msdeploy do
18
18
  find_version_in_output
19
19
  end
20
20
 
21
- executable 'mstest' do
21
+ executable :mstest do
22
22
  find_version_in_output '/help'
23
23
  end
24
24
 
25
- executable 'netsh' do
25
+ executable :netsh do
26
26
  windows_version
27
27
  end
28
28
 
29
- executable 'nuget' do
29
+ executable :nuget do
30
30
  find_version_in_output
31
31
  end
32
32
 
33
- executable 'tf' do
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 'bundle' do
5
+ executable :bundle do
6
6
  find_version_in_output '--version'
7
7
  end
8
8
 
9
- executable 'cucumber' do
9
+ executable :cucumber do
10
10
  find_version_in_output '--version'
11
11
  end
12
12
 
13
- executable 'rake' do
13
+ executable :rake do
14
14
  find_version_in_output '--version'
15
15
  end
16
16
 
@@ -1,10 +1,10 @@
1
1
  module GetVersion
2
2
 
3
- executable 'conlinkchecker' do
3
+ executable :conlinkchecker do
4
4
  find_version_in_output
5
5
  end
6
6
 
7
- executable 'nunit' do
7
+ executable :nunit do
8
8
  find_version_in_output '/help'
9
9
  end
10
10
 
@@ -4,31 +4,18 @@ require_relative 'execution_context'
4
4
  module GetVersion
5
5
  class Executable
6
6
 
7
- attr_reader :name, :namespace, :block
7
+ attr_reader :block
8
8
 
9
- def initialize(name, namespace, &block)
10
- @name = name
11
- @namespace = namespace
12
- @block = block
9
+ def initialize(&block)
10
+ @block = block || Proc.new {}
13
11
  end
14
12
 
15
- def version(name, dir=nil)
16
- ExecutionContext.execute path(name, dir), &@block
13
+ def version(path)
14
+ ExecutionContext.execute path, &@block
17
15
  end
18
16
 
19
- def self.version(name, &block)
20
- Executable.new(name, nil, &block).version(name)
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 << Executable.new(name, namespace, &block)
11
+ @executables << {name: name.to_sym, namespace: namespace.to_sym, value: Executable.new(&block)}
12
12
  end
13
13
 
14
- def get_executable(name)
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.name) == 0 } }
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
- dir = File.dirname @path
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(name) || executable_if_nil
23
- executable.version name, dir
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 name, nil do
42
- end
27
+ Executable.new
43
28
  end
44
29
 
45
30
  def executable_for_guessing
46
- Executable.new name, nil do
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.8
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-02 00:00:00.000000000 Z
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: &70254546514720 !ruby/object:Gem::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: *70254546514720
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: