minarai 0.0.2 → 0.0.3
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 +4 -4
- data/README.md +7 -4
- data/examples/recipe.invalid +1 -0
- data/examples/recipe_erb.yml.erb +4 -0
- data/examples/recipe_rbenv.yml +4 -0
- data/examples/recipe_variable.yml +1 -0
- data/lib/minarai/action_builder.rb +1 -0
- data/lib/minarai/actions/rbenv.rb +49 -0
- data/lib/minarai/actions/unknown.rb +2 -2
- data/lib/minarai/errors/unknown_action_type_error.rb +15 -0
- data/lib/minarai/version.rb +1 -1
- data/lib/validator/type_validator.rb +6 -2
- data/spec/minarai/unit/{action → actions}/base_spec.rb +0 -0
- data/spec/minarai/unit/loaders/recipe_loader_spec.rb +36 -0
- data/spec/spec_helper.rb +3 -0
- metadata +10 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c04f414d627ba508af6b92196764eedde11fb7e1
|
4
|
+
data.tar.gz: 75848c007915cc99573b5e06993d2e02530fc226
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a72f8db9c19f587ff5f28da1bfca44e9e226b47e1e0b5157910a1c8e9df6bdd640e8550974b358f9114ac1f6aff4f5b64c1baac08347d736d8a12f47e059cf59
|
7
|
+
data.tar.gz: 4e6faea2438bcf134fdc0133e1edc7032d16032787984086ce8bbeee0317d33dbbd1f97ae53d76b496cb84c876ab47fb951c629312cda37c9d10ee41980e114b
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Minarai
|
2
|
+
[](http://badge.fury.io/rb/minarai)
|
2
3
|
[](https://travis-ci.org/ganmacs/minarai)
|
4
|
+
[](https://codeclimate.com/github/ganmacs/minarai)
|
3
5
|
|
4
6
|
Configuration-Management Tool
|
5
7
|
|
@@ -42,13 +44,14 @@ $ minarai RECIPE [--variable=VARIABLE_PATH]
|
|
42
44
|
|
43
45
|
## Action type
|
44
46
|
|
45
|
-
* hoembrew
|
46
|
-
* directory
|
47
|
-
* file
|
48
47
|
* git
|
49
|
-
*
|
48
|
+
* file
|
50
49
|
* link
|
50
|
+
* rbenv
|
51
51
|
* url_get
|
52
|
+
* hoembrew
|
53
|
+
* directory
|
54
|
+
* hoembrew_cask
|
52
55
|
|
53
56
|
## recipe
|
54
57
|
|
@@ -0,0 +1 @@
|
|
1
|
+
invalid
|
data/examples/recipe_erb.yml.erb
CHANGED
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'minarai/actions/base'
|
2
|
+
|
3
|
+
module Minarai
|
4
|
+
module Actions
|
5
|
+
class Rbenv < Base
|
6
|
+
attribute :version, required: true, type: String
|
7
|
+
attribute :global, type: [TrueClass, FalseClass], default: true
|
8
|
+
|
9
|
+
def run
|
10
|
+
install_specific_ruby_version unless has_specific_ruby_version?
|
11
|
+
set_global_ruby_version unless set_specific_ruby_version?
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def install_specific_ruby_version
|
17
|
+
run_command "rbenv install #{version}"
|
18
|
+
end
|
19
|
+
|
20
|
+
def complete?
|
21
|
+
has_rbenv? && has_specific_ruby_version? && set_specific_ruby_version?
|
22
|
+
end
|
23
|
+
|
24
|
+
def has_rbenv?
|
25
|
+
check_command 'which rbenv'
|
26
|
+
end
|
27
|
+
|
28
|
+
def has_specific_ruby_version?
|
29
|
+
check_command "rbenv prefix #{version}"
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_valid_glbal_ruby_version?
|
33
|
+
global_version == version
|
34
|
+
end
|
35
|
+
|
36
|
+
def global_version
|
37
|
+
run_command('rbenv global').stdout.rstrip
|
38
|
+
end
|
39
|
+
|
40
|
+
def set_specific_ruby_version?
|
41
|
+
check_command "rbenv global #{version}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def name
|
45
|
+
super || "rbenv install ruby version #{version}"
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'minarai/actions/base'
|
2
|
-
require 'minarai/errors/
|
2
|
+
require 'minarai/errors/unknown_action_type_error'
|
3
3
|
|
4
4
|
module Minarai
|
5
5
|
module Actions
|
@@ -9,7 +9,7 @@ module Minarai
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def error_messages
|
12
|
-
[Minarai::Errors::
|
12
|
+
[Minarai::Errors::UnknownActionTypeError.new(type)]
|
13
13
|
end
|
14
14
|
|
15
15
|
private
|
data/lib/minarai/version.rb
CHANGED
@@ -5,9 +5,13 @@ class TypeValidator < ActiveModel::EachValidator
|
|
5
5
|
super.merge(allow_nil: true)
|
6
6
|
end
|
7
7
|
|
8
|
+
def klasses
|
9
|
+
options[:in] || [options[:with]]
|
10
|
+
end
|
11
|
+
|
8
12
|
def validate_each(record, attribute, value)
|
9
|
-
unless value.is_a?(
|
10
|
-
record.errors.add(attribute, "must be a #{
|
13
|
+
unless klasses.any? { |klass| value.is_a?(klass) }
|
14
|
+
record.errors.add(attribute, "must be a #{klasses}, not #{value.class}")
|
11
15
|
end
|
12
16
|
end
|
13
17
|
end
|
File without changes
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'minarai/loaders/recipe_loader'
|
2
|
+
require 'minarai/recipe'
|
3
|
+
|
4
|
+
describe Minarai::Loaders::RecipeLoader do
|
5
|
+
subject { loader.load }
|
6
|
+
|
7
|
+
let!(:loader) { described_class.new(*option) }
|
8
|
+
|
9
|
+
describe 'loading recipe and variable ' do
|
10
|
+
context 'with recipe file' do
|
11
|
+
context 'when valid path received' do
|
12
|
+
let(:option) { 'examples/recipe_git.yml' }
|
13
|
+
it { is_expected.to be_a Minarai::Recipe }
|
14
|
+
end
|
15
|
+
|
16
|
+
context 'when valid path received' do
|
17
|
+
let(:option) { 'examples/invalid' }
|
18
|
+
it { expect { loader.load }.to raise_error }
|
19
|
+
end
|
20
|
+
|
21
|
+
context 'when excpept yml or erb file received' do
|
22
|
+
let(:option) { 'examples/recipe.invalid' }
|
23
|
+
it { expect { loader.load }.to raise_error }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'with recipe file and variables files' do
|
28
|
+
context 'when valid path received' do
|
29
|
+
let(:option) do
|
30
|
+
['examples/recipe_erb.yml.erb', { variable_path: 'examples/recipe_variable.yml' }]
|
31
|
+
end
|
32
|
+
it { is_expected.to be_a Minarai::Recipe }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minarai
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ganmacs
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -167,6 +167,7 @@ files:
|
|
167
167
|
- README.md
|
168
168
|
- Rakefile
|
169
169
|
- bin/minarai
|
170
|
+
- examples/recipe.invalid
|
170
171
|
- examples/recipe_directory.yml
|
171
172
|
- examples/recipe_erb.yml.erb
|
172
173
|
- examples/recipe_file.yml
|
@@ -174,6 +175,7 @@ files:
|
|
174
175
|
- examples/recipe_homebrew.yml
|
175
176
|
- examples/recipe_homebrew_cask.yml
|
176
177
|
- examples/recipe_link.yml
|
178
|
+
- examples/recipe_rbenv.yml
|
177
179
|
- examples/recipe_url_get.yml
|
178
180
|
- examples/recipe_variable.yml
|
179
181
|
- lib/minarai.rb
|
@@ -185,6 +187,7 @@ files:
|
|
185
187
|
- lib/minarai/actions/homebrew.rb
|
186
188
|
- lib/minarai/actions/homebrew_cask.rb
|
187
189
|
- lib/minarai/actions/link.rb
|
190
|
+
- lib/minarai/actions/rbenv.rb
|
188
191
|
- lib/minarai/actions/unknown.rb
|
189
192
|
- lib/minarai/actions/url_get.rb
|
190
193
|
- lib/minarai/command.rb
|
@@ -192,6 +195,7 @@ files:
|
|
192
195
|
- lib/minarai/errors/base.rb
|
193
196
|
- lib/minarai/errors/invalid_action_type_error.rb
|
194
197
|
- lib/minarai/errors/missing_recipe_path_error.rb
|
198
|
+
- lib/minarai/errors/unknown_action_type_error.rb
|
195
199
|
- lib/minarai/loaders/base.rb
|
196
200
|
- lib/minarai/loaders/recipe_loader.rb
|
197
201
|
- lib/minarai/loaders/variable_loader.rb
|
@@ -203,8 +207,9 @@ files:
|
|
203
207
|
- lib/validator/required_validator.rb
|
204
208
|
- lib/validator/type_validator.rb
|
205
209
|
- minarai.gemspec
|
206
|
-
- spec/minarai/unit/action/base_spec.rb
|
207
210
|
- spec/minarai/unit/action_builder_spec.rb
|
211
|
+
- spec/minarai/unit/actions/base_spec.rb
|
212
|
+
- spec/minarai/unit/loaders/recipe_loader_spec.rb
|
208
213
|
- spec/minarai/unit/logger_spec.rb
|
209
214
|
- spec/minarai/unit/variable_spec.rb
|
210
215
|
- spec/spec_helper.rb
|
@@ -233,8 +238,9 @@ signing_key:
|
|
233
238
|
specification_version: 4
|
234
239
|
summary: Minarai Configuration Tool
|
235
240
|
test_files:
|
236
|
-
- spec/minarai/unit/action/base_spec.rb
|
237
241
|
- spec/minarai/unit/action_builder_spec.rb
|
242
|
+
- spec/minarai/unit/actions/base_spec.rb
|
243
|
+
- spec/minarai/unit/loaders/recipe_loader_spec.rb
|
238
244
|
- spec/minarai/unit/logger_spec.rb
|
239
245
|
- spec/minarai/unit/variable_spec.rb
|
240
246
|
- spec/spec_helper.rb
|