rake-dependencies 0.3.0 → 0.4.0

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: 9152da4ea5be88e6a3c8133c459b84e28a882999
4
- data.tar.gz: 89438dee32487d5c7367f828e17b323dece0a358
3
+ metadata.gz: e1af33ae845b043ed3ed1f9dbf190d8bd05593de
4
+ data.tar.gz: efe3a4d0ca603ea54370cfb3085a6cb928014d4b
5
5
  SHA512:
6
- metadata.gz: 120bd0ebb52be42f89fab5bbc3418c4d70a28862398a688ea58b9b635c8d5f6ee579c490eb1d4e2de602db28f71c062bca3c9900f44fbf77861ee7abe255f3f7
7
- data.tar.gz: 94b1cf91a311d75d7c90944fb72332a6c095ca700dc5e5179c689f23ba666edbe26bf945d22cadfe649aad37e7f87d6f9e9f0e40ec62ae0beceb144ed0458532
6
+ metadata.gz: a72ff1dcc89a61cd4b0531cb2e00d8d236b7aca038273a5a1cbfae3714cb45a92fb6b28f8c06402a7b3467d13873fe674ec2176537e2dcdd366c264543c71401
7
+ data.tar.gz: 154e4193a9521571993d935b31d1be7491c4274321a696942cfc90c0c5eba8752abf2ef8b765995500d65f94152173ffbb3590383953240be468f18cfeb399fc
data/Gemfile.lock CHANGED
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rake-dependencies (0.3.0)
4
+ rake-dependencies (0.4.0)
5
5
  hamster (~> 3.0)
6
- mattock (~> 0.10)
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
@@ -14,8 +13,6 @@ GEM
14
13
  minitest (~> 5.1)
15
14
  thread_safe (~> 0.3, >= 0.3.4)
16
15
  tzinfo (~> 1.1)
17
- calibrate (0.0.1)
18
- caliph (0.3.1)
19
16
  concurrent-ruby (1.0.2)
20
17
  diff-lcs (1.3)
21
18
  fakefs (0.10.2)
@@ -24,12 +21,6 @@ GEM
24
21
  concurrent-ruby (~> 1.0)
25
22
  i18n (0.8.0)
26
23
  json (1.8.6)
27
- mattock (0.10.1)
28
- calibrate (~> 0.0.1)
29
- caliph (~> 0.3)
30
- rake (~> 10.0)
31
- tilt (> 0)
32
- valise (~> 1.1)
33
24
  minitest (5.10.1)
34
25
  rake (10.5.0)
35
26
  rspec (3.5.0)
@@ -46,10 +37,8 @@ GEM
46
37
  rspec-support (~> 3.5.0)
47
38
  rspec-support (3.5.0)
48
39
  thread_safe (0.3.5)
49
- tilt (2.0.6)
50
40
  tzinfo (1.2.2)
51
41
  thread_safe (~> 0.1)
52
- valise (1.2.1)
53
42
 
54
43
  PLATFORMS
55
44
  ruby
@@ -0,0 +1,4 @@
1
+ module RakeDependencies
2
+ class RequiredParameterUnset < ::StandardError
3
+ end
4
+ end
@@ -0,0 +1,98 @@
1
+ require 'rake/tasklib'
2
+ require_relative 'exceptions'
3
+
4
+ module RakeDependencies
5
+ class TaskLib < ::Rake::TaskLib
6
+ class << self
7
+ def parameter_definitions
8
+ @parameter_definitions ||= {}
9
+ end
10
+
11
+ def parameter(name, options = {})
12
+ parameter_definition = ParameterDefinition.new(
13
+ name, options[:default], options[:required])
14
+ name = parameter_definition.name
15
+
16
+ attr_accessor(name)
17
+
18
+ parameter_definitions[name] = parameter_definition
19
+ end
20
+
21
+ def setup_defaults_for(instance)
22
+ parameter_definitions.values.each do |parameter_definition|
23
+ parameter_definition.apply_default_to(instance)
24
+ end
25
+ end
26
+
27
+ def check_required_for(instance)
28
+ dissatisfied = parameter_definitions.values.reject do |definition|
29
+ definition.satisfied_by?(instance)
30
+ end
31
+ unless dissatisfied.empty?
32
+ names = dissatisfied.map(&:name)
33
+ raise RequiredParameterUnset,
34
+ "Required parameter#{names.length > 1 ? 's' : ''} #{names.join(',')} unset."
35
+ end
36
+ end
37
+ end
38
+
39
+ def initialize(*args, &block)
40
+ setup_defaults
41
+ process_arguments(args)
42
+ process_block(block)
43
+ check_required
44
+ define
45
+ end
46
+
47
+ def setup_defaults
48
+ self.class.setup_defaults_for(self)
49
+ end
50
+
51
+ def process_arguments(_)
52
+ end
53
+
54
+ def process_block(block)
55
+ block.call(self) if block
56
+ end
57
+
58
+ def check_required
59
+ self.class.check_required_for(self)
60
+ end
61
+
62
+ def define
63
+ end
64
+
65
+ private
66
+
67
+ class ParameterDefinition
68
+ attr_reader :name
69
+
70
+ def initialize(name, default = nil, required = false)
71
+ @name = name.to_sym
72
+ @default = default
73
+ @required = required
74
+ end
75
+
76
+ def writer_method
77
+ "#{name}="
78
+ end
79
+
80
+ def reader_method
81
+ name
82
+ end
83
+
84
+ def apply_default_to(instance)
85
+ instance.__send__(writer_method, @default) if @default
86
+ end
87
+
88
+ def dissatisfied_by?(instance)
89
+ value = instance.__send__(reader_method)
90
+ @required && value.nil?
91
+ end
92
+
93
+ def satisfied_by?(instance)
94
+ !dissatisfied_by?(instance)
95
+ end
96
+ end
97
+ end
98
+ end
@@ -1,14 +1,13 @@
1
- require 'mattock'
1
+ require_relative '../tasklib'
2
2
 
3
3
  module RakeDependencies
4
4
  module Tasks
5
- class Clean < Mattock::Tasklib
6
- setting :name, :clean
7
- required_fields :path
8
- required_fields :dependency
5
+ class Clean < TaskLib
6
+ parameter :name, :default => :clean
7
+ parameter :path, :required => true
8
+ parameter :dependency, :required => true
9
9
 
10
- def default_configuration(*args)
11
- super(args)
10
+ def process_arguments(args)
12
11
  self.name = args[0] if args[0]
13
12
  end
14
13
 
@@ -1,22 +1,22 @@
1
- require 'mattock'
2
1
  require 'open-uri'
2
+ require_relative '../tasklib'
3
3
  require_relative '../template'
4
4
 
5
5
  module RakeDependencies
6
6
  module Tasks
7
- class Download < Mattock::Tasklib
7
+ class Download < TaskLib
8
8
  extend FileUtils
9
9
 
10
- setting :name, :download
11
- setting :type, :zip
12
- setting :directory, 'dist'
13
- required_fields :path
14
- required_fields :dependency
15
- required_fields :version
16
- required_fields :uri_template
17
- required_fields :file_name_template
10
+ parameter :name, default: :download
11
+ parameter :type, default: :zip
12
+ parameter :directory, default: 'dist'
13
+ parameter :path, required: true
14
+ parameter :dependency, required: true
15
+ parameter :version, required: true
16
+ parameter :uri_template, required: true
17
+ parameter :file_name_template, required: true
18
18
 
19
- def default_configuration(*args)
19
+ def process_arguments(args)
20
20
  super(args)
21
21
  self.name = args[0] if args[0]
22
22
  end
@@ -1,3 +1,3 @@
1
1
  module RakeDependencies
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -25,7 +25,6 @@ Gem::Specification.new do |spec|
25
25
  spec.required_ruby_version = '>= 2.0'
26
26
 
27
27
  spec.add_dependency 'hamster', '~> 3.0'
28
- spec.add_dependency 'mattock', '~> 0.10'
29
28
 
30
29
  spec.add_development_dependency 'bundler', '~> 1.14'
31
30
  spec.add_development_dependency 'rake', '~> 10.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rake-dependencies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: '3.0'
27
- - !ruby/object:Gem::Dependency
28
- name: mattock
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ~>
32
- - !ruby/object:Gem::Version
33
- version: '0.10'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ~>
39
- - !ruby/object:Gem::Version
40
- version: '0.10'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: bundler
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -142,6 +128,8 @@ files:
142
128
  - bin/console
143
129
  - bin/setup
144
130
  - lib/rake_dependencies.rb
131
+ - lib/rake_dependencies/exceptions.rb
132
+ - lib/rake_dependencies/tasklib.rb
145
133
  - lib/rake_dependencies/tasks.rb
146
134
  - lib/rake_dependencies/tasks/clean.rb
147
135
  - lib/rake_dependencies/tasks/download.rb