boxy 0.1.0 → 0.2.0

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: ce72258b164430e416cd87f325064ca8af6956e2
4
- data.tar.gz: cc283f2206924597fe0852ebfb75a6f8657045dd
3
+ metadata.gz: 96ea93773f02924916551a0d4e4a8bea59993af1
4
+ data.tar.gz: a87b14c7e396a350ae37ac92f5c691c82ce0741b
5
5
  SHA512:
6
- metadata.gz: 5094b144675398051ffe6d15fed47a7afef1981c78134f87457b362563c6df32c627ee75c57c78c63feccb66ccfc769b0641d6018d4ac76d10766b7f13b51df6
7
- data.tar.gz: 64d42f51bc09d4f863f1ab202b1866566ab46ba58611d8fb6bad557abdf0b2bc0163b20f28e6cfbf00be9452fcef6227530e0843a7bfc5a677d40bd825b70911
6
+ metadata.gz: 715fc9ada77415f47b9a726dd996c44cb6e1ff4c76f1f16c8ccad98afcc2229d49efb50cd0311c18fc342101e9d720a7179d263ab3e40885a965534341aaf096
7
+ data.tar.gz: 52321a4cb6cfe41d9bb0e3c53e606df9f8f7b64c25db1f6912776146562d41e3841a03ea46c78f4e8b73c9893081776337ece6246c19dd4a304e9a74ab3e98e4
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  *.a
14
14
  mkmf.log
15
15
  vendor
16
+ *.sw[op]
data/Gemfile CHANGED
@@ -5,4 +5,5 @@ gemspec
5
5
 
6
6
  gem 'pry'
7
7
  gem 'defaulty', github: 'fooheads/defaulty', branch: 'master'
8
+ gem 'mkdirs', github: 'fooheads/mkdirs', branch: 'master'
8
9
 
@@ -13,21 +13,15 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/fooheads/boxy"
14
14
  spec.license = "MIT"
15
15
 
16
- # Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
17
- # delete this section to allow pushing this gem to any host.
18
- if spec.respond_to?(:metadata)
19
- spec.metadata['allowed_push_host'] = "TODO: Set to 'http://mygemserver.com'"
20
- else
21
- raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
22
- end
23
-
24
16
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
25
17
  spec.bindir = "exe"
26
18
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
27
19
  spec.require_paths = ["lib"]
28
20
 
29
- spec.add_dependency "table_print"
30
21
  spec.add_dependency "defaulty"
22
+ spec.add_dependency "mkdirs"
23
+ spec.add_dependency "table_print"
24
+ spec.add_dependency "highline"
31
25
 
32
26
  spec.add_development_dependency "bundler", "~> 1.10"
33
27
  spec.add_development_dependency "rake", "~> 10.0"
@@ -1,6 +1,6 @@
1
1
  require 'boxy/version'
2
2
  require 'boxy/dsl'
3
- require 'bundler'
3
+ require 'highline'
4
4
 
5
5
  module Boxy
6
6
  def self.load_commands(url)
@@ -16,9 +16,11 @@ module Boxy
16
16
 
17
17
 
18
18
  def self.install(commands)
19
+ ensure_homebrew_installed
20
+
19
21
  commands.each do |command|
20
22
  handler = @@handlers[command.type]
21
- Bundler.with_clean_env do
23
+ with_clean_env do
22
24
  handler.install(command.name, command.options)
23
25
  end
24
26
  end
@@ -28,6 +30,32 @@ module Boxy
28
30
  @@handlers ||= {}
29
31
  @@handlers[type] = handler
30
32
  end
33
+
34
+ private
35
+
36
+
37
+ def self.ensure_homebrew_installed
38
+ installed = system 'which brew'
39
+ if not installed
40
+ cli = HighLine.new
41
+ do_install = cli.agree 'Homebrew is not installed, would you like to install it now? (y/n):'
42
+ if do_install
43
+ system '/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"'
44
+ else
45
+ exit -1
46
+ end
47
+ end
48
+ end
49
+
50
+ def self.with_clean_env(&block)
51
+ begin
52
+ require 'bundler'
53
+ Bundler.with_clean_env(&block)
54
+ rescue LoadError
55
+ yield
56
+ end
57
+ end
58
+
31
59
  end
32
60
 
33
61
  require 'boxy/brew'
@@ -35,4 +63,5 @@ require 'boxy/brew_cask'
35
63
  require 'boxy/defaulty'
36
64
  require 'boxy/homesick'
37
65
  require 'boxy/luarock'
66
+ require 'boxy/mkdirs'
38
67
 
@@ -0,0 +1,16 @@
1
+ require 'mkdirs'
2
+
3
+ module Boxy
4
+ class MkdirsHandler
5
+ def install(dirs_file, options)
6
+ config_file = ARGV[1]
7
+ config_dir = File.dirname(config_file)
8
+ root_dir = options[:root_dir] || ENV['HOME']
9
+
10
+ puts "mkdirs #{dirs_file} #{root_dir}"
11
+ Mkdirs.apply_filename(File.join(config_dir, dirs_file), root_dir)
12
+ end
13
+ end
14
+
15
+ Boxy.register(:mkdirs, MkdirsHandler.new)
16
+ end
@@ -1,3 +1,3 @@
1
1
  module Boxy
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: boxy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon-Erling Dahl
@@ -9,76 +9,104 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-02-11 00:00:00.000000000 Z
12
+ date: 2016-08-25 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: defaulty
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: mkdirs
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
14
42
  - !ruby/object:Gem::Dependency
15
43
  name: table_print
16
44
  requirement: !ruby/object:Gem::Requirement
17
45
  requirements:
18
- - - '>='
46
+ - - ">="
19
47
  - !ruby/object:Gem::Version
20
48
  version: '0'
21
49
  type: :runtime
22
50
  prerelease: false
23
51
  version_requirements: !ruby/object:Gem::Requirement
24
52
  requirements:
25
- - - '>='
53
+ - - ">="
26
54
  - !ruby/object:Gem::Version
27
55
  version: '0'
28
56
  - !ruby/object:Gem::Dependency
29
- name: defaulty
57
+ name: highline
30
58
  requirement: !ruby/object:Gem::Requirement
31
59
  requirements:
32
- - - '>='
60
+ - - ">="
33
61
  - !ruby/object:Gem::Version
34
62
  version: '0'
35
63
  type: :runtime
36
64
  prerelease: false
37
65
  version_requirements: !ruby/object:Gem::Requirement
38
66
  requirements:
39
- - - '>='
67
+ - - ">="
40
68
  - !ruby/object:Gem::Version
41
69
  version: '0'
42
70
  - !ruby/object:Gem::Dependency
43
71
  name: bundler
44
72
  requirement: !ruby/object:Gem::Requirement
45
73
  requirements:
46
- - - ~>
74
+ - - "~>"
47
75
  - !ruby/object:Gem::Version
48
76
  version: '1.10'
49
77
  type: :development
50
78
  prerelease: false
51
79
  version_requirements: !ruby/object:Gem::Requirement
52
80
  requirements:
53
- - - ~>
81
+ - - "~>"
54
82
  - !ruby/object:Gem::Version
55
83
  version: '1.10'
56
84
  - !ruby/object:Gem::Dependency
57
85
  name: rake
58
86
  requirement: !ruby/object:Gem::Requirement
59
87
  requirements:
60
- - - ~>
88
+ - - "~>"
61
89
  - !ruby/object:Gem::Version
62
90
  version: '10.0'
63
91
  type: :development
64
92
  prerelease: false
65
93
  version_requirements: !ruby/object:Gem::Requirement
66
94
  requirements:
67
- - - ~>
95
+ - - "~>"
68
96
  - !ruby/object:Gem::Version
69
97
  version: '10.0'
70
98
  - !ruby/object:Gem::Dependency
71
99
  name: rspec
72
100
  requirement: !ruby/object:Gem::Requirement
73
101
  requirements:
74
- - - '>='
102
+ - - ">="
75
103
  - !ruby/object:Gem::Version
76
104
  version: '0'
77
105
  type: :development
78
106
  prerelease: false
79
107
  version_requirements: !ruby/object:Gem::Requirement
80
108
  requirements:
81
- - - '>='
109
+ - - ">="
82
110
  - !ruby/object:Gem::Version
83
111
  version: '0'
84
112
  description:
@@ -90,7 +118,7 @@ executables:
90
118
  extensions: []
91
119
  extra_rdoc_files: []
92
120
  files:
93
- - .gitignore
121
+ - ".gitignore"
94
122
  - CODE_OF_CONDUCT.md
95
123
  - Gemfile
96
124
  - LICENSE.txt
@@ -108,30 +136,31 @@ files:
108
136
  - lib/boxy/dsl.rb
109
137
  - lib/boxy/homesick.rb
110
138
  - lib/boxy/luarock.rb
139
+ - lib/boxy/mkdirs.rb
111
140
  - lib/boxy/version.rb
112
141
  homepage: https://github.com/fooheads/boxy
113
142
  licenses:
114
143
  - MIT
115
- metadata:
116
- allowed_push_host: 'TODO: Set to ''http://mygemserver.com'''
144
+ metadata: {}
117
145
  post_install_message:
118
146
  rdoc_options: []
119
147
  require_paths:
120
148
  - lib
121
149
  required_ruby_version: !ruby/object:Gem::Requirement
122
150
  requirements:
123
- - - ~>
151
+ - - "~>"
124
152
  - !ruby/object:Gem::Version
125
153
  version: '2.0'
126
154
  required_rubygems_version: !ruby/object:Gem::Requirement
127
155
  requirements:
128
- - - '>='
156
+ - - ">="
129
157
  - !ruby/object:Gem::Version
130
158
  version: '0'
131
159
  requirements: []
132
160
  rubyforge_project:
133
- rubygems_version: 2.0.14
161
+ rubygems_version: 2.4.5.1
134
162
  signing_key:
135
163
  specification_version: 4
136
164
  summary: Automates installation of mac computers
137
165
  test_files: []
166
+ has_rdoc: