visual_studio 0.0.0.3 → 0.0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 88a2fe77633635e22f183f01318391c8eb6e3b31
4
- data.tar.gz: 7ce47ef7267cf01219c084ab82ff50546b5fb0d2
3
+ metadata.gz: 170f4bf5dfff415c14da637f32121dca1ae2774e
4
+ data.tar.gz: 0b57db076db928c11688e9cbcc382c1fdbf6abbc
5
5
  SHA512:
6
- metadata.gz: 4088e2022f8dbe67837699751270d313a1f04fcd804207c2fbd411c3b23b39cd64652fc258159dcd6572518405fd9f77dde98452279338110ba2c3bdf4b92990
7
- data.tar.gz: 87c96da074a44c72c511e4a280bd9228e75fbc7cd9202018134e136517b300933fa2fd5f2f8f6ea1c74d679e2a7a2e5e8cc014d00ee6c60d177e187c7cd25e22
6
+ metadata.gz: 8a656e2a6472ec03ff48536a522b8f6bf0441004ba6d05e390d44ec3b5de56870d2d0cf5d3e263f1ea9b3de60cac6ecca141af8280c60ca91d868b49627d4057
7
+ data.tar.gz: 521e8988157ef6c3165cbfc35a533d3a77186fc04ea553eda259af0cedf4f48dfe9d333acb4c6cfd38734be964c17244ad888c848ee0b050d93055806f2140b7
data/README.md CHANGED
@@ -9,11 +9,69 @@ This will (hopefully) become the de-facto gem for inspecting Visual Studio insta
9
9
 
10
10
  Documentation is on the back-burner, so for now:
11
11
 
12
- ```ruby
13
- VisualStudio.available? # true
14
- vs = VisualStudio.find :vs2015
15
- vs.name.pretty # "Visual Studio 2015"
16
- vs.name # "vs2015"
17
- vs.version # "14.0"
18
- vs.install # "C:/Program Files (x86)/Microsoft Visual Studio 14.0/"
12
+ ```Ruby
13
+
14
+ VisualStudio.available?
15
+ VisualStudio.installed?
16
+ => true
17
+
18
+ VisualStudio.available? 'vs2015'
19
+ VisualStudio.installed? 'vs2015'
20
+ => true
21
+
22
+ VisualStudio.latest
23
+ VisualStudio.install
24
+ => #<VisualStudio::Install @name=#<VisualStudio::Helpers::Name "vs2015" @pretty=""Visual Studio 2015"> ...>
25
+
26
+ VisualStudio.install 'vs2015'
27
+ VisualStudio.find 'vs2015'
28
+ VisualStudio.find_by(name: 'vs2015')
29
+ VisualStudio.find_by_name 'vs2015'
30
+ VisualStudio.find_by(version: 'vs2015')
31
+ VisualStudio.find_by_version '14.0'
32
+ => #<VisualStudio::Install @name=#<VisualStudio::Helpers::Name "vs2015" @pretty="Visual Studio 2015"> ...>
33
+
34
+ vs = VisualStudio.latest
35
+ vs.name
36
+ => "vs2015"
37
+ vs.name.pretty
38
+ => "vs2015"
39
+ vs.version
40
+ => "14.0"
41
+ vs.root
42
+ => "C:/Program Files (x86)/Microsoft Visual Studio 14.0"
43
+ vs.suite[:c_and_cpp]
44
+ vs.products[:c_and_cpp]
45
+ => #<VisualStudio::Product @name=#<VisualStudio::Helpers::Name "VC" @pretty="Microsoft Visual C/C++"> ...>
46
+ vs.suite[:csharp]
47
+ vs.products[:csharp]
48
+ => #<VisualStudio::Product @name=#<VisualStudio::Helpers::Name "VC" @pretty="Microsoft Visual C#"> ...>
49
+
50
+ vc = vs.products[:c_and_cpp]
51
+ vc.name
52
+ => "VC"
53
+ vc.name.pretty
54
+ => "Microsoft Visual C/C++"
55
+ vc.version
56
+ => "14.0"
57
+ vc.root
58
+ => "C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC"
59
+ vc.paths.includes
60
+ => {:x86 => ..., :x86_64 => ...}
61
+ vc.paths.libraries
62
+ => {:x86 => ..., :x86_64 => ...}
63
+ vc.sdks
64
+ => {:windows => ...}
65
+ vc.platforms
66
+ => [:windows]
67
+ vc.architectures
68
+ => [:x86, :x86_64]
69
+ vc.supports? :windows
70
+ => true
71
+ vc.supports? :arm
72
+ => false
73
+ env = vc.environment target: {platform: :windows,
74
+ arch: :x86_64},
75
+ base: ENV
76
+ => {"PATH" => "...", ...}
19
77
  ```
@@ -0,0 +1,58 @@
1
+ require 'ostruct'
2
+
3
+ module VisualStudio
4
+ module Gem
5
+ # The name of this Gem.
6
+ def self.name
7
+ "visual_studio"
8
+ end
9
+
10
+ # The name and email address of the primary author.
11
+ def self.author
12
+ self.authors.first
13
+ end
14
+
15
+ # The name and email addresses of all authors.
16
+ def self.authors
17
+ [["Michael Williams", "m.t.williams@live.com"]].map do |author|
18
+ name, email = author
19
+ OpenStruct.new(name: name, email: email)
20
+ end
21
+ end
22
+
23
+ # This Gem's homepage URL.
24
+ def self.homepage
25
+ "https://github.com/mtwilliams/visual_studio"
26
+ end
27
+
28
+ # This Gem's URL.
29
+ def self.url
30
+ "https://rubygems.org/gems/#{self.name}"
31
+ end
32
+
33
+ # A short summary of this Gem.
34
+ def self.summary
35
+ "Inspect Visual Studio installs and generate Visual Studio project files."
36
+ end
37
+
38
+ # A full description of this Gem.
39
+ def self.description
40
+ "This will (hopefully) become the de-facto gem for inspecting Visual Studio installs and generating Visual Studio project files."
41
+ end
42
+
43
+ module VERSION #:nodoc:
44
+ MAJOR, MINOR, PATCH, PRE = [0, 0, 0, 4]
45
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
46
+ end
47
+
48
+ # The semantic version of the this Gem.
49
+ def self.version
50
+ Gem::VERSION::STRING
51
+ end
52
+
53
+ # The license covering this Gem.
54
+ def self.license
55
+ "Public Domain"
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,11 @@
1
+ module VisualStudio
2
+ module Helpers
3
+ class PrettyString < String
4
+ attr_reader :pretty
5
+ def initialize(name, opts={})
6
+ super(name)
7
+ @pretty = opts[:pretty] if opts.include? :pretty
8
+ end
9
+ end
10
+ end
11
+ end
@@ -1,69 +1,84 @@
1
1
  module VisualStudio
2
2
  class Install
3
- attr_reader :name
4
- attr_reader :version
5
- attr_reader :root
6
- attr_reader :toolsets
7
- attr_reader :sdks
3
+ attr_reader :name,
4
+ :version,
5
+ :root,
6
+ :products
8
7
 
9
- def initialize(opts={})
10
- @name = opts[:name]
11
- @version = opts[:version]
12
- @root = opts[:root]
13
- @toolsets = opts[:toolsets]
14
- @sdks = opts[:sdks]
8
+ def initialize(desc={})
9
+ @name = desc[:name]
10
+ @version = desc[:version]
11
+ @root = desc[:root]
12
+ @products = desc[:products]
15
13
  end
16
14
 
17
- def self.exists?(name_or_version)
18
- !!(find(name_or_version))
15
+ def self.available?(name_or_version)
16
+ !!(self.find(name_or_version))
17
+ end
18
+
19
+ def self.latest
20
+ VisualStudio::VERSIONS.map{|version| self.find_by_version(version)}.compact.first
19
21
  end
20
22
 
21
23
  def self.find(name_or_version)
22
- return find_by_name(name_or_version) if NAMES.include?(name_or_version)
23
- return find_by_version(name_or_version) if VERSIONS.include?(name_or_version)
24
+ if VisualStudio::NAMES.include?(name_or_version)
25
+ self.find_by_name(name_or_version)
26
+ elsif VisualStudio::VERSIONS.include?(name_or_version)
27
+ self.find_by_version(name_or_version)
28
+ else
29
+ # TODO(mtwilliams): Raise an exception.
30
+ # raise VisualStudio::InvalidCriteria.new("Expected a name or version")
31
+ end
32
+ end
33
+
34
+ def self.find_by(criteria)
35
+ if criteria.include?(:name)
36
+ self.find_by_name(criteria[:name])
37
+ elsif criteria.include?(:version)
38
+ self.find_by_version(criteria[:version])
39
+ else
40
+ # TODO(mtwilliams): Raise an exception.
41
+ # raise VisualStudio::InvalidCriteria.new("Expected 'name' or 'version' to be specified")
42
+ end
24
43
  end
25
44
 
26
45
  def self.find_by_name(name)
27
- find_by_version(NAME_TO_VERSION[name]) if NAMES.include?(name)
46
+ if VisualStudio::NAMES.include?(name)
47
+ self.find_by_version(VisualStudio::NAME_TO_VERSION[name])
48
+ else
49
+ # TODO(mtwilliams): Raise an exception.
50
+ # raise VisualStudio::InvalidName.new(...)
51
+ end
28
52
  end
29
53
 
30
54
  def self.find_by_version(version)
31
- install = _find_install_via_registry(version)
32
- return if install.nil?
55
+ if VisualStudio::VERSIONS.include?(version)
56
+ # Try to find any products (that we care about) for this version.
57
+ c_and_cpp = VisualStudio::Product.find('VC', version)
58
+ csharp = VisualStudio::Product.find('VC#', version)
33
59
 
34
- # HACK(mtwilliams): Assume C/C++ is installed.
35
- c_and_cpp = File.join(install, 'VC')
36
- # TODO(mtwilliams): Search for other toolsets, notably C#.
37
- csharp = nil # File.join(install, 'VC#')
60
+ # If no products (that we care about) for this version are installed,
61
+ # then for all intents and purposes this version of Visual Studio
62
+ # is "not installed". This might not be the truth, but who gives a fuck
63
+ # about Visual Basic anymore?!
64
+ return nil if [c_and_cpp, csharp].all?{|product| product.nil?}
38
65
 
39
- # TODO(mtwilliams): Look for SDKs, including packaged ones.
40
- sdk = nil # ...
66
+ name = Helpers::PrettyString.new VisualStudio::VERSION_TO_NAME[version],
67
+ pretty: VisualStudio::VERSION_TO_PRETTY_NAME[version]
41
68
 
42
- # TODO(mtwilliams): Cache.
43
- VisualStudio::Install.new(name: VERSION_TO_NAME[version],
44
- version: version,
45
- root: install,
46
- toolsets: Hashie::Mash.new({
47
- c: c_and_cpp,
48
- cpp: c_and_cpp,
49
- csharp: csharp }),
50
- sdks: Hashie::Mash.new({
51
- windows: nil }))
52
- end
69
+ root = File.expand_path(File.join([c_and_cpp, csharp].compact.first.root, '..'))
53
70
 
54
- private
55
- def self._find_install_via_registry(version)
56
- # TODO(mtwilliams): Try other products, like C#.
57
- keys = ["SOFTWARE\\Microsoft\\VisualStudio\\#{version}\\Setup\\VC",
58
- "SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\#{version}\\Setup\\VC"]
59
- keys.each do |key|
60
- begin
61
- require 'win32/registry'
62
- return File.expand_path(File.join(::Win32::Registry::HKEY_LOCAL_MACHINE.open(key, ::Win32::Registry::KEY_READ)['ProductDir'], '..')).to_s
63
- rescue
64
- return nil
65
- end
66
- end
71
+ products = {c_and_cpp: c_and_cpp, csharp: csharp}
72
+ products = products.reject{|_, v| v.nil?}
73
+
74
+ VisualStudio::Install.new(name: name,
75
+ version: version,
76
+ root: root,
77
+ products: products)
78
+ else
79
+ # TODO(mtwilliams): Raise an exception.
80
+ # raise VisualStudio::InvalidVersion.new(...)
67
81
  end
82
+ end
68
83
  end
69
84
  end
@@ -0,0 +1,122 @@
1
+ module VisualStudio
2
+ class Product
3
+ NAMES = ['VC', 'VC#']
4
+ PRETTY_NAMES = ['Visual C/C++', 'Visual C#']
5
+ NAME_TO_PRETTY_NAME = Hash[NAMES.zip(PRETTY_NAMES)]
6
+
7
+ attr_reader :name,
8
+ :version,
9
+ :root,
10
+ :includes,
11
+ :libraries,
12
+ :binaries,
13
+ :sdks,
14
+ :supports
15
+
16
+ def initialize(desc)
17
+ @name = desc[:name]
18
+ @version = desc[:version]
19
+ @root = desc[:root]
20
+ @includes = desc[:includes]
21
+ @libraries = desc[:libraries]
22
+ @binaries = desc[:binaries]
23
+ @sdks = desc[:sdks]
24
+ @supports = desc[:supports]
25
+ end
26
+
27
+ def self.find(product, version)
28
+ if VisualStudio::Product::NAMES.include?(product)
29
+ name = Helpers::PrettyString.new VisualStudio::VERSION_TO_NAME[version],
30
+ pretty: VisualStudio::VERSION_TO_PRETTY_NAME[version]
31
+
32
+ root = self._find_via_registry(product, version)
33
+ return nil if root.nil?
34
+
35
+ includes, libraries, binaries =
36
+ case product
37
+ when 'VC'
38
+ case version.to_f
39
+ when 8.0..11.0
40
+ # TODO(mtwilliams): Check if x86_64 support exists.
41
+ includes = [File.join(root, 'VC', 'include')]
42
+ libraries = {:x86 => [File.join(root, 'VC', 'lib')],
43
+ :x86_64 => []}
44
+ binaries = {:x86 => [File.join(root, 'VC', 'bin')],
45
+ :x86_64 => []}
46
+ [includes, libraries, binaries]
47
+ when 12.0..14.0
48
+ # TODO(mtwilliams): Select the 64-bit and ARM host variants
49
+ # when applicable, i.e. when running on 64-bit or ARM.
50
+ includes = [File.join(root, 'VC', 'include')]
51
+ libraries = {:x86 => [File.join(root, 'VC', 'lib')],
52
+ :x86_64 => [File.join(root, 'VC', 'lib', 'amd64')],
53
+ :arm => [File.join(root, 'VC', 'lib', 'arm')]}
54
+ binaries = {:x86 => [File.join(root, 'VC', 'bin')],
55
+ :x86_64 => [File.join(root, 'VC', 'bin', 'x86_amd64')],
56
+ :arm => [File.join(root, 'VC', 'bin', 'x86_arm')]}
57
+ [includes, libraries, binaries]
58
+ else
59
+ # TODO(mtwilliams): Raise a proper extension.
60
+ # raise VisualStudio::Unsupported(...)
61
+ raise "Wha-?"
62
+ end
63
+ when 'VC#'
64
+ # TODO(mtwilliams): Determine search paths.
65
+ [[], {}, {}]
66
+ end
67
+
68
+ # TODO(mtwilliams): Handle the Xbox One and PS4.
69
+ # TODO(mtwilliams): Actually search for the SDKs.
70
+ sdks = VisualStudio::VERSION_TO_SDKS[version][:windows]
71
+
72
+ platforms = [:windows]
73
+ architectures = case product
74
+ when 'VC'
75
+ case version.to_f
76
+ when 8.0..11.0
77
+ # TODO(mtwilliams): Check if x86_64 support exists.
78
+ [:x86]
79
+ when 12.0..14.0
80
+ [:x86, :x86_64, :arm]
81
+ end
82
+ when 'VC#'
83
+ # TODO(mtwilliams): Determine 64-bit support?
84
+ [:x86, :x86_64, :arm]
85
+ end
86
+
87
+ VisualStudio::Product.new(name: name,
88
+ version: version,
89
+ root: root,
90
+ includes: includes,
91
+ libraries: libraries,
92
+ binaries: binaries,
93
+ sdks: ({windows: sdks}),
94
+ supports: ({platforms: platforms,
95
+ architectures: architectures}))
96
+ else
97
+ # TODO(mtwilliams): Raise an exception.
98
+ # raise VisualStudio::InvalidVersion.new(...)
99
+ end
100
+ end
101
+
102
+ private
103
+ def self._find_via_registry(product, version)
104
+ # We try to find a full version of Visual Studio. If we can't, then
105
+ # we look for standalone verions, i.e. Express Editions. This is only
106
+ # required for 2005-2010 so this logic can be removed when we drop
107
+ # support for them.
108
+ keys = ["SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\#{version}\\Setup\\#{product}",
109
+ "SOFTWARE\\Microsoft\\VisualStudio\\#{version}\\Setup\\#{product}",
110
+ "SOFTWARE\\Wow6432Node\\Microsoft\\VCExpress\\#{version}\\Setup\\#{product}",
111
+ "SOFTWARE\\Microsoft\\VCExpress\\#{version}\\Setup\\#{product}"]
112
+ installs = keys.map do |key|
113
+ begin
114
+ require 'win32/registry'
115
+ return File.expand_path(::Win32::Registry::HKEY_LOCAL_MACHINE.open(key, ::Win32::Registry::KEY_READ)['ProductDir']).to_s
116
+ rescue
117
+ end
118
+ end
119
+ installs.compact.first
120
+ end
121
+ end
122
+ end
data/lib/visual_studio.rb CHANGED
@@ -1,43 +1,70 @@
1
- require 'hashie'
2
-
3
1
  module VisualStudio
4
- autoload :VERSION, 'visual_studio/version'
2
+ NAMES = ['vs2015', 'vs2013', 'vs2012', 'vs2010', 'vs2008', 'vs2005']
5
3
 
6
- autoload :Name, 'visual_studio/name'
7
- autoload :Install, 'visual_studio/install'
4
+ PRETTY_NAMES = ['Visual Studio 2015', 'Visual Studio 2013',
5
+ 'Visual Studio 2012', 'Visual Studio 2010',
6
+ 'Visual Studio 2008', 'Visual Studio 2005']
8
7
 
9
- NAMES = [VisualStudio::Name.new('vs2015', pretty: 'Visual Studio 2015'),
10
- VisualStudio::Name.new('vs2013', pretty: 'Visual Studio 2013'),
11
- VisualStudio::Name.new('vs2012', pretty: 'Visual Studio 2012'),
12
- VisualStudio::Name.new('vs2010', pretty: 'Visual Studio 2010'),
13
- VisualStudio::Name.new('vs2008', pretty: 'Visual Studio 2008'),
14
- VisualStudio::Name.new('vs2005', pretty: 'Visual Studio 2005'),
15
- VisualStudio::Name.new('vs2003', pretty: 'Visual Studio .NET 2003'),
16
- VisualStudio::Name.new('vs2003', pretty: 'Visual Studio .NET 2002'),
17
- VisualStudio::Name.new('vs6', pretty: 'Visual Studio 6.0')]
8
+ VERSIONS = [14.0, 12.0, 11.0, 10.0, 9.0, 8.0].map(&:to_s)
18
9
 
19
- VERSIONS = %w{14.0 12.0 11.0 10.0 9.0 8.0 7.1 7.0 6.0}
10
+ SDKS = [{windows: %w{10.0 8.1 8.0 7.1}},
11
+ {windows: %w{8.1 8.0 7.1}},
12
+ {windows: %w{8.1 8.0 7.1}},
13
+ {windows: %w{8.1 8.0 7.1}},
14
+ {windows: %w{7.1 7.0}},
15
+ {windows: %w{7.1 7.0}}]
20
16
 
21
17
  NAME_TO_VERSION = Hash[NAMES.zip(VERSIONS)]
22
18
  VERSION_TO_NAME = Hash[VERSIONS.zip(NAMES)]
23
19
 
24
- def self.available?
25
- VERSIONS.any? { |version| self.installed?(version) }
20
+ NAME_TO_PRETTY_NAME = Hash[NAMES.zip(PRETTY_NAMES)]
21
+ VERSION_TO_PRETTY_NAME = Hash[VERSIONS.zip(PRETTY_NAMES)]
22
+
23
+ NAME_TO_SDKS = Hash[NAMES.zip(SDKS)]
24
+ VERSION_TO_SDKS = Hash[VERSIONS.zip(SDKS)]
25
+
26
+ require 'visual_studio/helpers/pretty_string'
27
+
28
+ require 'visual_studio/install'
29
+ require 'visual_studio/product'
30
+
31
+ def self.available?(name_or_version=nil)
32
+ self.installed?(name_or_version)
26
33
  end
27
34
 
28
- def self.installed?(name_or_version)
29
- VisualStudio::Install.exists?(name_or_version)
35
+ def self.installed?(name_or_version=nil)
36
+ if name_or_version
37
+ VisualStudio::Install.available?(name_or_version)
38
+ else
39
+ VisualStudio::VERSIONS.any?{|version| VisualStudio.installed?(version)}
40
+ end
41
+ end
42
+
43
+ def self.install(name_or_version=nil)
44
+ if name_or_version
45
+ self.find(name_or_version)
46
+ else
47
+ self.latest
48
+ end
49
+ end
50
+
51
+ def self.latest
52
+ VisualStudio::Install.latest
30
53
  end
31
54
 
32
55
  def self.find(name_or_version)
33
56
  VisualStudio::Install.find(name_or_version)
34
57
  end
35
58
 
59
+ def self.find_by(criteria)
60
+ VisualStudio::Install.find_by(criteria)
61
+ end
62
+
36
63
  def self.find_by_name(name)
37
64
  VisualStudio::Install.find_by_name(name)
38
65
  end
39
66
 
40
67
  def self.find_by_version(version)
41
- VisualStudio::Install.find_by_version(version)
68
+ VisualStudio::Install.find_by_version(name)
42
69
  end
43
70
  end
@@ -1,26 +1,25 @@
1
1
  $:.push File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
2
- require 'visual_studio/version'
2
+ require 'visual_studio/gem'
3
3
 
4
4
  Gem::Specification.new do |s|
5
- s.name = 'visual_studio'
6
- s.version = VisualStudio.version
5
+ # This information has been refactored into `lib/visual_studio/gem.lib`.
6
+ s.name = VisualStudio::Gem.name
7
+ s.version = VisualStudio::Gem.version
7
8
  s.platform = Gem::Platform::RUBY
8
- s.author = 'Michael Williams'
9
- s.email = 'm.t.williams@live.com'
10
- s.homepage = 'https://github.com/mtwilliams/visual_studio'
11
- s.summary = 'Inspect Visual Studio installs and generate Visual Studio project files.'
12
- s.description = 'This will (hopefully) become the de-facto gem for inspecting Visual Studio installs and generating Visual Studio project files.'
13
- s.license = 'Public Domain'
9
+ s.author = VisualStudio::Gem.author.name
10
+ s.email = VisualStudio::Gem.author.email
11
+ s.homepage = VisualStudio::Gem.homepage
12
+ s.summary = VisualStudio::Gem.summary
13
+ s.description = VisualStudio::Gem.description
14
+ s.license = VisualStudio::Gem.license
14
15
 
15
- s.required_ruby_version = '>= 1.9.3'
16
+ s.required_ruby_version = '>= 2.0.0'
16
17
 
17
18
  s.files = `git ls-files`.split("\n")
18
19
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
20
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
21
  s.require_paths = %w(lib)
21
22
 
22
- s.add_dependency 'hashie'
23
-
24
23
  s.add_development_dependency 'rspec'
25
24
  s.add_development_dependency 'cucumber'
26
25
  s.add_development_dependency 'aruba'
@@ -12,7 +12,8 @@
12
12
  ],
13
13
 
14
14
  "folder_exclude_patterns": [
15
- ".bundle"
15
+ ".bundle",
16
+ "pkg"
16
17
  ]
17
18
  }
18
19
  ]
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: visual_studio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0.3
4
+ version: 0.0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Williams
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-06 00:00:00.000000000 Z
11
+ date: 2015-09-27 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: hashie
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rspec
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -79,9 +65,10 @@ files:
79
65
  - README.md
80
66
  - Rakefile
81
67
  - lib/visual_studio.rb
68
+ - lib/visual_studio/gem.rb
69
+ - lib/visual_studio/helpers/pretty_string.rb
82
70
  - lib/visual_studio/install.rb
83
- - lib/visual_studio/name.rb
84
- - lib/visual_studio/version.rb
71
+ - lib/visual_studio/product.rb
85
72
  - visual_studio.gemspec
86
73
  - visual_studio.sublime-project
87
74
  homepage: https://github.com/mtwilliams/visual_studio
@@ -96,7 +83,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
96
83
  requirements:
97
84
  - - ">="
98
85
  - !ruby/object:Gem::Version
99
- version: 1.9.3
86
+ version: 2.0.0
100
87
  required_rubygems_version: !ruby/object:Gem::Requirement
101
88
  requirements:
102
89
  - - ">="
@@ -1,9 +0,0 @@
1
- module VisualStudio
2
- class Name < String
3
- attr_reader :pretty
4
- def initialize(name, opts={})
5
- super(name)
6
- @pretty = opts[:pretty] if opts[:pretty]
7
- end
8
- end
9
- end
@@ -1,11 +0,0 @@
1
- class VisualStudio
2
- module VERSION #:nodoc:
3
- MAJOR, MINOR, PATCH, PRE = [0, 0, 0, 3]
4
- STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
5
- end
6
-
7
- # Returns the semantic version of `visual_studio`.
8
- def self.version
9
- VisualStudio::VERSION::STRING
10
- end
11
- end