visual_studio 0.0.0.3 → 0.0.0.4

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.
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