anvil-core 0.0.1.pre.alpha.3 → 0.1.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 +4 -4
- data/README.md +9 -2
- data/VERSION +1 -1
- data/lib/anvil.rb +3 -0
- data/lib/anvil/assure.rb +3 -0
- data/lib/anvil/assures/directory_assure.rb +3 -0
- data/lib/anvil/assures/file_assure.rb +3 -0
- data/lib/anvil/bundler.rb +8 -0
- data/lib/anvil/cli.rb +11 -0
- data/lib/anvil/config.rb +3 -0
- data/lib/anvil/config/class_methods.rb +3 -0
- data/lib/anvil/parser.rb +13 -4
- data/lib/anvil/rubygems.rb +9 -0
- data/lib/anvil/task.rb +9 -1
- data/lib/anvil/task/class_methods.rb +2 -0
- data/lib/anvil/task/naming.rb +5 -0
- data/lib/anvil/task/options.rb +8 -2
- data/lib/anvil/task/repositories.rb +3 -0
- data/lib/anvil/task_manager.rb +30 -3
- data/lib/tasks/gem/bump_task.rb +8 -3
- data/lib/tasks/help_task.rb +1 -1
- data/spec/lib/anvil/parser_spec.rb +17 -0
- data/spec/lib/anvil/task/options_spec.rb +55 -13
- data/spec/lib/anvil/task_manager_spec.rb +35 -0
- data/spec/lib/tasks/gem/bump_task_spec.rb +14 -4
- metadata +25 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1ec595224814976ccada12c8a43dc3041bb43cca
|
4
|
+
data.tar.gz: d31891f5299ddd11c15e30317eb33ac10e737ab8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e86c8cef457da7957997a36c0cf976e5181e0a3e45789036ec6454ebf35f0b557b6c73cf98f54a8b0dc81ab8b4244f2c41cc2ea8293ce510c79185434369fd2
|
7
|
+
data.tar.gz: c55729de1caf67c05e1a4fe5e3d5f96a0dae0e68c0f65d29f607e9ce2db686189707d3f8ac559f836edae4c062347a1a84c3db1c82b6393a8711f134949c91dd
|
data/README.md
CHANGED
@@ -4,12 +4,11 @@ Anvil is a tool for the real craftsmen to build its own tools.
|
|
4
4
|
|
5
5
|
[](https://travis-ci.org/anvil-src/anvil-core)
|
6
6
|
|
7
|
-
|
8
7
|
Anvil tries to be a framework for building command line applications
|
9
8
|
to automate tedious tasks like apps or gems releasing process. Pull
|
10
9
|
request updating, etc.
|
11
10
|
|
12
|
-
It's purpose is to provide an easy to use Object Oriented
|
11
|
+
It's purpose is to provide an easy to use Object Oriented toolset
|
13
12
|
that developers can use to automate par of its day to day work.
|
14
13
|
|
15
14
|
Things like:
|
@@ -19,6 +18,14 @@ Things like:
|
|
19
18
|
* Doing complex build which involve several projects and branches.
|
20
19
|
* Any other stuff you might want.
|
21
20
|
|
21
|
+
## Sample tasks
|
22
|
+
|
23
|
+
You can find some sample tasks in the samples directory, if you want to give them a try, clone this project and do:
|
24
|
+
|
25
|
+
```shell
|
26
|
+
ANVIL_TASKS_DIR=./sample bin/anvil
|
27
|
+
```
|
28
|
+
|
22
29
|
## Installation
|
23
30
|
|
24
31
|
To install it:
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.0
|
data/lib/anvil.rb
CHANGED
data/lib/anvil/assure.rb
CHANGED
data/lib/anvil/cli.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'anvil/task_manager'
|
2
4
|
require 'tasks/help_task'
|
3
5
|
|
4
6
|
module Anvil
|
7
|
+
# Anvil command line interface
|
5
8
|
class Cli
|
6
9
|
HELP = <<-HELP
|
7
10
|
Anvil is a tool for making your life easier.
|
@@ -9,6 +12,10 @@ Anvil is a tool for making your life easier.
|
|
9
12
|
Available tasks:
|
10
13
|
HELP
|
11
14
|
|
15
|
+
# Runs a task or prints its help if it needs arguments
|
16
|
+
#
|
17
|
+
# @param argv [Array] Command line arguments
|
18
|
+
# @return [Object, nil] Anything the task returns
|
12
19
|
def run(argv)
|
13
20
|
load_tasks
|
14
21
|
|
@@ -23,6 +30,10 @@ HELP
|
|
23
30
|
Anvil::TaskManager.load_tasks
|
24
31
|
end
|
25
32
|
|
33
|
+
# Builds a task and prepares it to run
|
34
|
+
#
|
35
|
+
# @param argv [Array] Command line arguments
|
36
|
+
# @return [Anvil::Task] A task ready to run
|
26
37
|
def build_task(argv)
|
27
38
|
arguments = argv.dup
|
28
39
|
task_name = arguments.shift
|
data/lib/anvil/config.rb
CHANGED
data/lib/anvil/parser.rb
CHANGED
@@ -1,4 +1,9 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'anvil/task'
|
4
|
+
|
1
5
|
module Anvil
|
6
|
+
# Parser for anvil command line arguments and options
|
2
7
|
class Parser < OptionParser
|
3
8
|
attr_accessor :options
|
4
9
|
attr_accessor :task
|
@@ -7,10 +12,9 @@ module Anvil
|
|
7
12
|
@options ||= {}
|
8
13
|
end
|
9
14
|
|
10
|
-
def arguments(args =
|
11
|
-
@arguments
|
12
|
-
@arguments
|
13
|
-
@arguments.compact
|
15
|
+
def arguments(args = nil)
|
16
|
+
return @arguments if @arguments
|
17
|
+
@arguments = [args.presence].compact.flatten
|
14
18
|
end
|
15
19
|
|
16
20
|
def banner
|
@@ -30,5 +34,10 @@ module Anvil
|
|
30
34
|
|
31
35
|
message
|
32
36
|
end
|
37
|
+
|
38
|
+
def from(name)
|
39
|
+
task_klass = Anvil::Task.from_name(name)
|
40
|
+
instance_eval(&task_klass.parser_block) if task_klass.parser_block
|
41
|
+
end
|
33
42
|
end
|
34
43
|
end
|
data/lib/anvil/rubygems.rb
CHANGED
@@ -1,14 +1,23 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'cocaine'
|
2
4
|
|
3
5
|
module Anvil
|
6
|
+
# Rubygems wrapper for common commands
|
4
7
|
class Rubygems
|
5
8
|
class << self
|
9
|
+
# Runs gem build for a gemspec
|
10
|
+
#
|
11
|
+
# @param gemspec [String] The gemspec's filename
|
6
12
|
def build(gemspec)
|
7
13
|
line = Cocaine::CommandLine.new 'gem', 'build :gemspec'
|
8
14
|
|
9
15
|
line.run gemspec: gemspec
|
10
16
|
end
|
11
17
|
|
18
|
+
# Runs gem install for a gem file
|
19
|
+
#
|
20
|
+
# @param gem_file [String] The gems' filename
|
12
21
|
def install(gem_file)
|
13
22
|
line = Cocaine::CommandLine.new 'gem', 'install :gem_file'
|
14
23
|
|
data/lib/anvil/task.rb
CHANGED
@@ -1,8 +1,11 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'anvil/task/class_methods'
|
2
4
|
require 'anvil/task/naming'
|
3
5
|
require 'anvil/task/options'
|
4
6
|
|
5
7
|
module Anvil
|
8
|
+
# Common class for all tasks
|
6
9
|
class Task
|
7
10
|
extend ClassMethods
|
8
11
|
extend Naming
|
@@ -14,11 +17,16 @@ module Anvil
|
|
14
17
|
@options = options
|
15
18
|
end
|
16
19
|
|
20
|
+
# Runs a task and its callbacks if the assures are OK
|
21
|
+
#
|
22
|
+
# @return [Object, nil] anything the task might return
|
17
23
|
def run
|
18
24
|
if run_assures
|
19
25
|
run_before_callbacks
|
20
|
-
run_task
|
26
|
+
task_return_value = run_task
|
21
27
|
run_after_callbacks
|
28
|
+
|
29
|
+
task_return_value
|
22
30
|
end
|
23
31
|
end
|
24
32
|
|
data/lib/anvil/task/naming.rb
CHANGED
@@ -2,11 +2,16 @@ require 'active_support/core_ext/string'
|
|
2
2
|
|
3
3
|
module Anvil
|
4
4
|
class Task
|
5
|
+
# Methods for inferring task class names from cli arguments
|
5
6
|
module Naming
|
6
7
|
def get_namespace(task_name)
|
7
8
|
task_name.to_s.split ':'
|
8
9
|
end
|
9
10
|
|
11
|
+
# Returns a ruby class from a CLI name
|
12
|
+
#
|
13
|
+
# @param task_name [String] the CLI name for a task e.g. anvil:build
|
14
|
+
# @return [Class] an {Anvil::Task} descendant
|
10
15
|
def from_name(task_name)
|
11
16
|
namespaced_task = get_namespace task_name
|
12
17
|
camelized_task = "#{namespaced_task.pop}_task".camelize
|
data/lib/anvil/task/options.rb
CHANGED
@@ -1,17 +1,23 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
1
3
|
require 'anvil/parser'
|
2
4
|
|
3
5
|
module Anvil
|
4
6
|
class Task
|
7
|
+
# Cli options parsing definition
|
5
8
|
module Options
|
9
|
+
attr_reader :parser_block
|
10
|
+
|
6
11
|
def help
|
7
12
|
parser.help
|
8
13
|
end
|
9
14
|
|
10
15
|
def parser(&block)
|
11
|
-
@
|
16
|
+
@parser_block = block
|
17
|
+
@parser ||= build_parser(&block)
|
12
18
|
end
|
13
19
|
|
14
|
-
def
|
20
|
+
def build_parser(&block)
|
15
21
|
parser = Anvil::Parser.new
|
16
22
|
parser.task = self
|
17
23
|
configure_parser(parser, &block)
|
data/lib/anvil/task_manager.rb
CHANGED
@@ -1,43 +1,70 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
1
4
|
require 'anvil/config'
|
2
5
|
require 'anvil/task'
|
3
|
-
require '
|
6
|
+
require 'rugged'
|
4
7
|
|
5
8
|
module Anvil
|
9
|
+
# Manage loading and finding anvil tasks
|
6
10
|
module TaskManager
|
7
11
|
@tasks_loaded = false
|
8
12
|
|
13
|
+
# Loads all known anvil tasks
|
9
14
|
def self.load_tasks
|
10
15
|
all_files.each { |file| load(file) }
|
11
16
|
@tasks_loaded = true
|
12
17
|
end
|
13
18
|
|
19
|
+
# @return [Array] all the core anvil tasks
|
14
20
|
def self.files_from_anvil
|
15
21
|
files_from_path(File.expand_path('../..', __FILE__))
|
16
22
|
end
|
17
23
|
|
24
|
+
# @return [Array] all possible anvil tasks in this project
|
18
25
|
def self.files_from_current_project
|
19
26
|
path = current_project_path + '/lib/anvil/'
|
20
27
|
files_from_path(path)
|
21
28
|
end
|
22
29
|
|
30
|
+
# @return [String] top level dir if this is a git managed project
|
23
31
|
def self.current_project_path
|
24
|
-
|
32
|
+
Rugged::Repository.discover(ENV['PWD']).gsub('.git/', '')
|
33
|
+
rescue Rugged::RepositoryError
|
34
|
+
''
|
25
35
|
end
|
26
36
|
|
37
|
+
# @param path [String] a path to glob their anvil tasks
|
38
|
+
# @return [Array] all anvil tasks in the given path
|
27
39
|
def self.files_from_path(path)
|
28
40
|
Dir[path + '/tasks/**/*_task.rb']
|
29
41
|
end
|
30
42
|
|
43
|
+
# @return [Array] anvil tasks installed in gems
|
31
44
|
def self.files_from_gems
|
32
45
|
Gem.find_latest_files 'anvil/tasks/**/*_task.rb'
|
33
46
|
end
|
34
47
|
|
48
|
+
# @return [Array] anvil tasks in the specified dir
|
49
|
+
def self.files_from_env
|
50
|
+
if ENV['ANVIL_TASKS_DIR']
|
51
|
+
env_dir_list = ENV['ANVIL_TASKS_DIR'].split(':').join(',')
|
52
|
+
|
53
|
+
Dir["{#{env_dir_list}}/*_task.rb"]
|
54
|
+
else
|
55
|
+
[]
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# @return [Array] all known anvil task files
|
35
60
|
def self.all_files
|
36
|
-
[
|
61
|
+
[files_from_env,
|
62
|
+
files_from_anvil,
|
37
63
|
files_from_current_project,
|
38
64
|
files_from_gems].compact.reduce(&:+).uniq
|
39
65
|
end
|
40
66
|
|
67
|
+
# @return [Array] all known {Anvil::Task} desdendants
|
41
68
|
def self.all_tasks
|
42
69
|
load_tasks unless @tasks_loaded
|
43
70
|
::Anvil::Task.descendants
|
data/lib/tasks/gem/bump_task.rb
CHANGED
@@ -5,13 +5,18 @@ class Gem::BumpTask < Anvil::Task
|
|
5
5
|
description "Bumps a gem's version"
|
6
6
|
|
7
7
|
parser do
|
8
|
-
arguments %w
|
8
|
+
arguments %w(term)
|
9
|
+
|
10
|
+
on('-p', '--[no-]persist', 'Commit tag and push the changes') do |p|
|
11
|
+
options[:persist] = p
|
12
|
+
end
|
9
13
|
end
|
10
14
|
|
11
15
|
attr_reader :term
|
12
16
|
|
13
17
|
def initialize(term, options = {})
|
14
|
-
@term = term
|
18
|
+
@term = term.to_sym
|
19
|
+
@options = options
|
15
20
|
end
|
16
21
|
|
17
22
|
def task
|
@@ -58,7 +63,7 @@ class Gem::BumpTask < Anvil::Task
|
|
58
63
|
f.close
|
59
64
|
end
|
60
65
|
|
61
|
-
commit_and_tag version
|
66
|
+
commit_and_tag version if options[:persist]
|
62
67
|
end
|
63
68
|
|
64
69
|
def prepare_repo
|
data/lib/tasks/help_task.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Anvil::Parser do
|
6
|
+
let(:task) { DummyTask }
|
7
|
+
|
8
|
+
describe '#from' do
|
9
|
+
before do
|
10
|
+
task.stub(:parser_block).and_return(proc { 'opts' })
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'inherits parser block from another task' do
|
14
|
+
expect(subject.from('dummy')).to eq('opts')
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,33 +1,75 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
require 'anvil/task/options'
|
3
5
|
|
4
6
|
describe Anvil::Task::Options do
|
5
|
-
let(:klass)
|
7
|
+
let(:klass) do
|
8
|
+
Class.new do
|
9
|
+
def self.description
|
10
|
+
'Dummy task'
|
11
|
+
end
|
12
|
+
extend Anvil::Task::Options
|
13
|
+
end
|
14
|
+
end
|
6
15
|
|
7
|
-
describe '.
|
16
|
+
describe '.build_parser' do
|
8
17
|
it 'returns an instance of Anvil::Parser' do
|
9
|
-
expect(klass.
|
18
|
+
expect(klass.build_parser).to be_kind_of(Anvil::Parser)
|
10
19
|
end
|
11
20
|
end
|
12
21
|
|
13
22
|
describe '.parse_options!' do
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
23
|
+
context 'with more than one argument and options' do
|
24
|
+
before do
|
25
|
+
klass.class_eval do
|
26
|
+
parser do
|
27
|
+
arguments %w(arg1 arg2)
|
28
|
+
on('-i', '--install') do |i|
|
29
|
+
options[:install] = i
|
30
|
+
end
|
19
31
|
end
|
20
32
|
end
|
21
33
|
end
|
34
|
+
let(:arguments) { %w(arg1 arg2 --install) }
|
35
|
+
let(:expected) { ['arg1', 'arg2', { install: true }] }
|
36
|
+
|
37
|
+
it 'returns the correct arguments and options' do
|
38
|
+
expect(klass.parse_options!(arguments)).to be_eql(expected)
|
39
|
+
end
|
22
40
|
end
|
23
41
|
|
24
|
-
|
42
|
+
context 'with one argument and options' do
|
43
|
+
before do
|
44
|
+
klass.class_eval do
|
45
|
+
parser do
|
46
|
+
arguments %w(arg1)
|
47
|
+
on('-i', '--install') do |i|
|
48
|
+
options[:install] = i
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
let(:arguments) { %w{arg1 --install} }
|
54
|
+
let(:expected) { ['arg1', { install: true }] }
|
25
55
|
|
26
|
-
|
27
|
-
|
56
|
+
it 'returns the correct arguments and options' do
|
57
|
+
expect(klass.parse_options!(arguments)).to be_eql(expected)
|
58
|
+
end
|
28
59
|
end
|
29
|
-
|
30
|
-
|
60
|
+
|
61
|
+
context 'only with one argument' do
|
62
|
+
let(:arguments) { %w(arg1) }
|
63
|
+
let(:expected) { arguments }
|
64
|
+
let(:parser_block) do
|
65
|
+
proc do
|
66
|
+
arguments %w(arg1)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
it 'returns the correct arguments and options' do
|
71
|
+
expect(klass.parse_options!(arguments)).to be_eql(expected)
|
72
|
+
end
|
31
73
|
end
|
32
74
|
end
|
33
75
|
end
|
@@ -21,6 +21,33 @@ describe Anvil::TaskManager do
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
+
describe '.current_project_path' do
|
25
|
+
let(:pwd) { '/home/user/src/project/' }
|
26
|
+
context 'on a path managed by git' do
|
27
|
+
before do
|
28
|
+
Rugged::Repository.stub(:discover)
|
29
|
+
.and_return(pwd + '.git/')
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'returns the repo workdir' do
|
33
|
+
expect(described_class.current_project_path)
|
34
|
+
.to eq(pwd)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
context 'on a path not managed by git' do
|
39
|
+
before do
|
40
|
+
Rugged::Repository.stub(:discover)
|
41
|
+
.and_raise(Rugged::RepositoryError)
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'returns an empty string' do
|
45
|
+
expect(described_class.current_project_path)
|
46
|
+
.to be_empty
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
24
51
|
describe '.files_from_gems' do
|
25
52
|
it 'asks Gem to return the anvil tasks' do
|
26
53
|
expect(Gem).to receive(:find_latest_files).with('anvil/tasks/**/*_task.rb')
|
@@ -28,6 +55,14 @@ describe Anvil::TaskManager do
|
|
28
55
|
end
|
29
56
|
end
|
30
57
|
|
58
|
+
describe '.files_from_env' do
|
59
|
+
context 'with empty env variable' do
|
60
|
+
it 'returns an empty array' do
|
61
|
+
expect(described_class.files_from_env).to eq([])
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
31
66
|
describe '.load_tasks' do
|
32
67
|
let(:all_files) { %w[file1 file2] }
|
33
68
|
|
@@ -4,7 +4,7 @@ require 'git'
|
|
4
4
|
require 'anvil'
|
5
5
|
|
6
6
|
describe Gem::BumpTask do
|
7
|
-
subject { Gem::BumpTask.new
|
7
|
+
subject { Gem::BumpTask.new 'major' }
|
8
8
|
|
9
9
|
describe '#task' do
|
10
10
|
before { subject.stub(:read_version).and_return('2.0.0') }
|
@@ -18,9 +18,19 @@ describe Gem::BumpTask do
|
|
18
18
|
end
|
19
19
|
|
20
20
|
describe '#write_version' do
|
21
|
-
|
22
|
-
|
23
|
-
|
21
|
+
context 'when persisting' do
|
22
|
+
subject { Gem::BumpTask.new 'major', persist: true }
|
23
|
+
it 'writes the file and push the changes' do
|
24
|
+
expect(subject).to receive(:version_file).with('w+')
|
25
|
+
expect(subject).to receive(:commit_and_tag)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'when no persisting' do
|
30
|
+
it 'writes the file but does not persist the change in git' do
|
31
|
+
expect(subject).to receive(:version_file).with('w+')
|
32
|
+
expect(subject).to_not receive(:commit_and_tag)
|
33
|
+
end
|
24
34
|
end
|
25
35
|
|
26
36
|
after { subject.send :write_version, '2.0.0' }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: anvil-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fran Casas
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-05-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: git
|
@@ -31,14 +31,14 @@ dependencies:
|
|
31
31
|
requirements:
|
32
32
|
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 4.0.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
41
|
+
version: 4.0.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: mixlib-config
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -81,6 +81,20 @@ dependencies:
|
|
81
81
|
- - "~>"
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '1.3'
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: rugged
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - "~>"
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: '0.19'
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - "~>"
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '0.19'
|
84
98
|
- !ruby/object:Gem::Dependency
|
85
99
|
name: bundler
|
86
100
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,7 +153,7 @@ dependencies:
|
|
139
153
|
version: '0.18'
|
140
154
|
description: Anvil is a tool for building tools.
|
141
155
|
email:
|
142
|
-
- nflamel@
|
156
|
+
- nflamel@gmail.com
|
143
157
|
- jondeandres@gmail.com
|
144
158
|
executables:
|
145
159
|
- anvil
|
@@ -156,6 +170,7 @@ files:
|
|
156
170
|
- lib/anvil/assure.rb
|
157
171
|
- lib/anvil/assures/directory_assure.rb
|
158
172
|
- lib/anvil/assures/file_assure.rb
|
173
|
+
- lib/anvil/bundler.rb
|
159
174
|
- lib/anvil/cli.rb
|
160
175
|
- lib/anvil/config.rb
|
161
176
|
- lib/anvil/config/class_methods.rb
|
@@ -181,6 +196,7 @@ files:
|
|
181
196
|
- spec/lib/anvil/assures/file_assure_spec.rb
|
182
197
|
- spec/lib/anvil/cli_spec.rb
|
183
198
|
- spec/lib/anvil/config_spec.rb
|
199
|
+
- spec/lib/anvil/parser_spec.rb
|
184
200
|
- spec/lib/anvil/task/naming_spec.rb
|
185
201
|
- spec/lib/anvil/task/options_spec.rb
|
186
202
|
- spec/lib/anvil/task_manager_spec.rb
|
@@ -216,12 +232,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
216
232
|
version: '0'
|
217
233
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
218
234
|
requirements:
|
219
|
-
- - "
|
235
|
+
- - ">="
|
220
236
|
- !ruby/object:Gem::Version
|
221
|
-
version:
|
237
|
+
version: '0'
|
222
238
|
requirements: []
|
223
239
|
rubyforge_project:
|
224
|
-
rubygems_version: 2.2.
|
240
|
+
rubygems_version: 2.2.2
|
225
241
|
signing_key:
|
226
242
|
specification_version: 4
|
227
243
|
summary: Anvil is a tool for building tools. A tool that a real craftsmen uses to
|
@@ -232,6 +248,7 @@ test_files:
|
|
232
248
|
- spec/lib/anvil/assures/file_assure_spec.rb
|
233
249
|
- spec/lib/anvil/cli_spec.rb
|
234
250
|
- spec/lib/anvil/config_spec.rb
|
251
|
+
- spec/lib/anvil/parser_spec.rb
|
235
252
|
- spec/lib/anvil/task/naming_spec.rb
|
236
253
|
- spec/lib/anvil/task/options_spec.rb
|
237
254
|
- spec/lib/anvil/task_manager_spec.rb
|