gemma 3.0.0 → 4.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +15 -0
- data/README.rdoc +8 -10
- data/lib/gemma.rb +0 -1
- data/lib/gemma/rake_tasks.rb +3 -9
- data/lib/gemma/version.rb +1 -1
- data/template/base/.gitignore +3 -0
- data/template/base/gem_name.gemspec.erb +0 -2
- data/template/minitest/test/gem_name/gem_name_test.rb.erb +2 -2
- data/test/gemma/gem_from_template_test.rb +2 -2
- data/test/gemma/gemma_new_test.rb +3 -9
- data/test/gemma/gemma_test.rb +3 -14
- data/test/gemma/options_test.rb +3 -3
- metadata +66 -57
- data/lib/gemma/rake_tasks/run_tasks.rb +0 -64
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NTYwMGFlZTBkMzY3MzY4NDUyMDVkMTFhNmJlNDQ2ZGM4NGQ3MTUxOQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NGU5NjIzNWQ3ZWFmYTY4OGEzMGQ0ODlhYTkwYjdhMzEyNWYwNWE5Mg==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
MGFlMDc5ZWY5NGE0NTYzYzViNjFjMDhkMzIxZDlmOWJlYWY3NWUwZWY0NWE5
|
10
|
+
NGZkZmYyN2Q0NGRlOTJkZjBlMDYwYzBhYzNiZmFmYmVjMDVhOTc4MWVlZDI4
|
11
|
+
OTQxYjY5MDE1OTUxYjMxMmYxOWE1YTJhNWYyMGRmZWU2Yzc4MTM=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YjQxYjE4ZGE2NmFkMjc1NzkwMThhZmFjYzgzNzM3ZGM3N2UxOTEzMWQ1YjY5
|
14
|
+
NjlhZGYzNzFmN2ZkZDY5YTYyMjBiMTMzOGEzNTY4ZWVhZjIwMGYyYzFlZjA1
|
15
|
+
MTkxMDZmN2NiYzg0ODAzZTNhZTc1NDQ5OWYyMzM1MDc4OWVmMGU=
|
data/README.rdoc
CHANGED
@@ -79,7 +79,6 @@ Run <tt>rake -T</tt> for a full list of tasks.
|
|
79
79
|
rake clobber # Remove any generated file.
|
80
80
|
rake clobber_rdoc # Remove RDoc HTML files
|
81
81
|
rake install # Build and install my_gem-0.0.1.gem into system gems
|
82
|
-
rake my_gem[args] # run my_gem
|
83
82
|
rake rdoc # Build RDoc HTML files
|
84
83
|
rake release # Create tag v0.0.1 and build and push my_gem-0.0.1.gem ...
|
85
84
|
rake rerdoc # Rebuild RDoc HTML files
|
@@ -94,14 +93,6 @@ You can customize the standard tasks by passing a block to +with_gemspec_file+:
|
|
94
93
|
|
95
94
|
See the gemma API docs for more information.
|
96
95
|
|
97
|
-
== REQUIREMENTS
|
98
|
-
|
99
|
-
Gemma has been tested on:
|
100
|
-
* ruby 1.9.2p290 (2011-07-09 revision 32553) [i686-linux] and [x86_64-linux]
|
101
|
-
* ruby 1.8.7 (2011-06-30 patchlevel 352) [i686-linux] and [x86_64-linux]
|
102
|
-
|
103
|
-
Gemma has not yet been tested on Windows or Mac OS X.
|
104
|
-
|
105
96
|
== INSTALLATION
|
106
97
|
|
107
98
|
On RVM:
|
@@ -137,6 +128,13 @@ On a system ruby:
|
|
137
128
|
|
138
129
|
== HISTORY
|
139
130
|
|
131
|
+
<em>4.0.0</em>
|
132
|
+
* updated dependencies
|
133
|
+
* removed RunTasks -- bundler handles this now
|
134
|
+
|
135
|
+
<em>3.0.0</em>
|
136
|
+
* updated dependencies
|
137
|
+
|
140
138
|
<em>2.2.0</em>
|
141
139
|
* updated dependencies; now using bundler 1.1
|
142
140
|
|
@@ -164,7 +162,7 @@ On a system ruby:
|
|
164
162
|
|
165
163
|
== LICENSE
|
166
164
|
|
167
|
-
Copyright (c) 2010 John Lees-Miller
|
165
|
+
Copyright (c) 2010-2014 John Lees-Miller
|
168
166
|
|
169
167
|
Permission is hereby granted, free of charge, to any person obtaining
|
170
168
|
a copy of this software and associated documentation files (the
|
data/lib/gemma.rb
CHANGED
@@ -8,7 +8,6 @@ require 'gemma/rake_tasks'
|
|
8
8
|
# Load default Rakefile plugins:
|
9
9
|
require 'gemma/rake_tasks/plugin'
|
10
10
|
require 'gemma/rake_tasks/rdoc_tasks'
|
11
|
-
require 'gemma/rake_tasks/run_tasks'
|
12
11
|
require 'gemma/rake_tasks/yard_tasks'
|
13
12
|
require 'gemma/rake_tasks/minitest_tasks'
|
14
13
|
require 'gemma/rake_tasks/gem_tasks'
|
data/lib/gemma/rake_tasks.rb
CHANGED
@@ -56,7 +56,7 @@ module Gemma
|
|
56
56
|
@plugins.values.each do |plugin|
|
57
57
|
begin
|
58
58
|
plugin.create_rake_tasks
|
59
|
-
rescue
|
59
|
+
rescue
|
60
60
|
warn "plugin #{plugin.class} failed: #{$!}"
|
61
61
|
end
|
62
62
|
end
|
@@ -75,7 +75,7 @@ module Gemma
|
|
75
75
|
#
|
76
76
|
# @return [Gem::Specification] not nil; you should not modify this object
|
77
77
|
# (make the changes in the gemspec file instead).
|
78
|
-
#
|
78
|
+
#
|
79
79
|
attr_reader :gemspec
|
80
80
|
|
81
81
|
#
|
@@ -84,15 +84,10 @@ module Gemma
|
|
84
84
|
attr_reader :plugins
|
85
85
|
|
86
86
|
#
|
87
|
-
# @return [RDocTasks]
|
87
|
+
# @return [RDocTasks]
|
88
88
|
#
|
89
89
|
def rdoc; @plugins[:rdoc] end
|
90
90
|
|
91
|
-
#
|
92
|
-
# @return [RunTasks]
|
93
|
-
#
|
94
|
-
def run; @plugins[:run] end
|
95
|
-
|
96
91
|
#
|
97
92
|
# @return [MinitestTasks]
|
98
93
|
#
|
@@ -112,7 +107,6 @@ module Gemma
|
|
112
107
|
|
113
108
|
def create_default_plugins
|
114
109
|
@plugins[:rdoc] = Gemma::RakeTasks::RDocTasks.new(gemspec)
|
115
|
-
@plugins[:run] = Gemma::RakeTasks::RunTasks.new(gemspec)
|
116
110
|
@plugins[:test] = Gemma::RakeTasks::MinitestTasks.new(gemspec)
|
117
111
|
@plugins[:yard] = Gemma::RakeTasks::YardTasks.new(gemspec)
|
118
112
|
@plugins[:gem] = Gemma::RakeTasks::GemTasks.new(gemspec,gemspec_file_name)
|
data/lib/gemma/version.rb
CHANGED
data/template/base/.gitignore
CHANGED
@@ -14,8 +14,6 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.summary = %q{TODO write short gem summary}
|
15
15
|
s.description = %q{TODO write longer gem description}
|
16
16
|
|
17
|
-
s.rubyforge_project = '<%= gem_name %>'
|
18
|
-
|
19
17
|
#s.add_runtime_dependency '...', '~> x.y.z'
|
20
18
|
s.add_development_dependency 'gemma', '~> <%= Gemma::VERSION %>'
|
21
19
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'gemma/test_helper'
|
2
2
|
require 'tmpdir'
|
3
3
|
|
4
|
-
class Gemma::GemFromTemplateTest < Test
|
4
|
+
class Gemma::GemFromTemplateTest < MiniTest::Test
|
5
5
|
def setup
|
6
6
|
@tmp = Dir.mktmpdir('gemma')
|
7
7
|
@old_pwd = Dir.pwd
|
@@ -20,7 +20,7 @@ class Gemma::GemFromTemplateTest < Test::Unit::TestCase
|
|
20
20
|
gt = Gemma::GemFromTemplate.new
|
21
21
|
gt.gem_name = "my_new_gem"
|
22
22
|
assert gt.good_gem_name?
|
23
|
-
|
23
|
+
|
24
24
|
assert_equal "MyNewGem", gt.module_name
|
25
25
|
gt.module_name = "Foo" # override default
|
26
26
|
assert_equal "Foo", gt.module_name
|
@@ -6,7 +6,7 @@ require 'open4'
|
|
6
6
|
# Run the 'gemma new' command and then run some basic commands to make sure that
|
7
7
|
# things worked out.
|
8
8
|
#
|
9
|
-
class Gemma::GemmaNewTest < Test
|
9
|
+
class Gemma::GemmaNewTest < MiniTest::Test
|
10
10
|
#
|
11
11
|
# Run a command in a bundler-free environment and capture both stdout and
|
12
12
|
# stderror output.
|
@@ -66,7 +66,7 @@ class Gemma::GemmaNewTest < Test::Unit::TestCase
|
|
66
66
|
end
|
67
67
|
|
68
68
|
# run bundler on the test gem; it should find the same gems that we're using
|
69
|
-
# in the gemma bundle
|
69
|
+
# in the gemma bundle
|
70
70
|
status, output = run_cmd('bundle', 'install', '--local')
|
71
71
|
raise "bundle failed:\n#{output}" unless status.exitstatus == 0
|
72
72
|
|
@@ -90,20 +90,14 @@ class Gemma::GemmaNewTest < Test::Unit::TestCase
|
|
90
90
|
status, output = run_cmd('rake -T')
|
91
91
|
assert_equal 0, status.exitstatus
|
92
92
|
assert_match /rake test/, output
|
93
|
-
assert_match /rake test_gem/, output
|
94
93
|
assert_match /rake rdoc/, output
|
95
94
|
assert_match /rake yard/, output
|
96
95
|
|
97
96
|
# run the tests; they should fail initially
|
98
97
|
status, output = run_cmd('rake')
|
99
|
-
|
98
|
+
assert status.exitstatus != 0
|
100
99
|
assert_match /TODO write tests/, output
|
101
100
|
|
102
|
-
# run the executable; it should also fail
|
103
|
-
status, output = run_cmd('rake test_gem')
|
104
|
-
assert_not_equal 0, status.exitstatus
|
105
|
-
assert_match /TODO write program code/, output
|
106
|
-
|
107
101
|
# generate rdoc output
|
108
102
|
status, output = run_cmd('rake rdoc')
|
109
103
|
assert_equal 0, status.exitstatus
|
data/test/gemma/gemma_test.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require 'gemma/test_helper'
|
2
2
|
require 'set'
|
3
3
|
|
4
|
-
class Gemma::GemmaTest < Test
|
4
|
+
class Gemma::GemmaTest < MiniTest::Test
|
5
5
|
# Can load empty spec.
|
6
6
|
def test_empty_spec
|
7
7
|
s = Gem::Specification.new
|
@@ -27,24 +27,13 @@ class Gemma::GemmaTest < Test::Unit::TestCase
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
def test_run_tasks
|
31
|
-
s = Gem::Specification.new
|
32
|
-
s.files = %w(lib/a.rb)
|
33
|
-
s.executables = %w(a b)
|
34
|
-
s.test_files = %w(test/test_a.rb)
|
35
|
-
|
36
|
-
Gemma::RakeTasks.new(s) do |g|
|
37
|
-
assert_equal %w(a b).to_set, g.run.program_names.to_set
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
30
|
def test_yard_tasks
|
42
31
|
s = Gem::Specification.new
|
43
32
|
s.files = %w(lib/a.rb)
|
44
33
|
s.test_files = %w(test/test_a.rb)
|
45
34
|
s.rdoc_options = ['--main', 'README.rdoc']
|
46
35
|
s.extra_rdoc_files = ['README.rdoc']
|
47
|
-
|
36
|
+
|
48
37
|
# Just one option.
|
49
38
|
# A file should not be passed as an extra file if it's the --main file.
|
50
39
|
# Test files should not be documented.
|
@@ -168,7 +157,7 @@ class Gemma::GemmaTest < Test::Unit::TestCase
|
|
168
157
|
def test_plugin_abstract
|
169
158
|
s = Gem::Specification.new
|
170
159
|
plugin = Gemma::RakeTasks::Plugin.new(s)
|
171
|
-
|
160
|
+
assert_raises(NotImplementedError) {
|
172
161
|
plugin.create_rake_tasks # abstract method
|
173
162
|
}
|
174
163
|
end
|
data/test/gemma/options_test.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
require 'gemma/test_helper'
|
2
2
|
|
3
|
-
class OptionsTest < Test
|
3
|
+
class OptionsTest < MiniTest::Test
|
4
4
|
include Gemma
|
5
5
|
|
6
|
-
def test_empty
|
6
|
+
def test_empty
|
7
7
|
# empty input
|
8
8
|
assert_equal Options::ExtractResult.new(nil, []),
|
9
9
|
Options.extract(%w(--a), [])
|
@@ -42,7 +42,7 @@ class OptionsTest < Test::Unit::TestCase
|
|
42
42
|
def test_terminator_2
|
43
43
|
input = %w(foo --a av -- --b bv)
|
44
44
|
|
45
|
-
# should not be able to find options after the -- terminator
|
45
|
+
# should not be able to find options after the -- terminator
|
46
46
|
assert_equal Options::ExtractResult.new('av', %w(foo -- --b bv)),
|
47
47
|
Options.extract(%w(--a), input)
|
48
48
|
assert_equal Options::ExtractResult.new(nil, input),
|
metadata
CHANGED
@@ -1,82 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gemma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 4.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- John Lees-Miller
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-03-29 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: highline
|
16
|
-
requirement:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 1.6.
|
19
|
+
version: 1.6.21
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ! '>='
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.6.21
|
25
27
|
- !ruby/object:Gem::Dependency
|
26
28
|
name: rake
|
27
|
-
requirement:
|
28
|
-
none: false
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
29
30
|
requirements:
|
30
|
-
- -
|
31
|
+
- - ! '>='
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: 10.
|
33
|
+
version: 10.1.1
|
33
34
|
type: :runtime
|
34
35
|
prerelease: false
|
35
|
-
version_requirements:
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ! '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 10.1.1
|
36
41
|
- !ruby/object:Gem::Dependency
|
37
42
|
name: rdoc
|
38
|
-
requirement:
|
39
|
-
none: false
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
40
44
|
requirements:
|
41
|
-
- -
|
45
|
+
- - ! '>='
|
42
46
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
47
|
+
version: 4.1.1
|
44
48
|
type: :runtime
|
45
49
|
prerelease: false
|
46
|
-
version_requirements:
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 4.1.1
|
47
55
|
- !ruby/object:Gem::Dependency
|
48
56
|
name: yard
|
49
|
-
requirement:
|
50
|
-
none: false
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
51
58
|
requirements:
|
52
|
-
- -
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.8.
|
61
|
+
version: 0.8.7
|
55
62
|
type: :runtime
|
56
63
|
prerelease: false
|
57
|
-
version_requirements:
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ! '>='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 0.8.7
|
58
69
|
- !ruby/object:Gem::Dependency
|
59
70
|
name: minitest
|
60
|
-
requirement:
|
61
|
-
none: false
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
62
72
|
requirements:
|
63
|
-
- -
|
73
|
+
- - ! '>='
|
64
74
|
- !ruby/object:Gem::Version
|
65
|
-
version:
|
75
|
+
version: 5.3.1
|
66
76
|
type: :runtime
|
67
77
|
prerelease: false
|
68
|
-
version_requirements:
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ! '>='
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 5.3.1
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: open4
|
71
|
-
requirement:
|
72
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
73
86
|
requirements:
|
74
87
|
- - ~>
|
75
88
|
- !ruby/object:Gem::Version
|
76
89
|
version: 1.3.0
|
77
90
|
type: :development
|
78
91
|
prerelease: false
|
79
|
-
version_requirements:
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ~>
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.3.0
|
80
97
|
description: ! 'Gemma is a gem development helper like hoe and jeweler, but it keeps
|
81
98
|
the gemspec
|
82
99
|
|
@@ -96,71 +113,63 @@ extra_rdoc_files:
|
|
96
113
|
- README.rdoc
|
97
114
|
- bin/gemma
|
98
115
|
files:
|
116
|
+
- README.rdoc
|
117
|
+
- bin/gemma
|
99
118
|
- lib/gemma.rb
|
100
119
|
- lib/gemma/conventions.rb
|
101
|
-
- lib/gemma/version.rb
|
102
|
-
- lib/gemma/rake_tasks.rb
|
103
|
-
- lib/gemma/options.rb
|
104
120
|
- lib/gemma/gem_from_template.rb
|
105
|
-
- lib/gemma/
|
106
|
-
- lib/gemma/rake_tasks
|
107
|
-
- lib/gemma/rake_tasks/yard_tasks.rb
|
108
|
-
- lib/gemma/rake_tasks/minitest_tasks.rb
|
121
|
+
- lib/gemma/options.rb
|
122
|
+
- lib/gemma/rake_tasks.rb
|
109
123
|
- lib/gemma/rake_tasks/gem_tasks.rb
|
124
|
+
- lib/gemma/rake_tasks/minitest_tasks.rb
|
110
125
|
- lib/gemma/rake_tasks/plugin.rb
|
126
|
+
- lib/gemma/rake_tasks/rdoc_tasks.rb
|
127
|
+
- lib/gemma/rake_tasks/yard_tasks.rb
|
111
128
|
- lib/gemma/utility.rb
|
129
|
+
- lib/gemma/version.rb
|
112
130
|
- template/base/.gitignore
|
113
131
|
- template/base/Gemfile
|
114
|
-
- template/base/lib/gem_name.rb.erb
|
115
|
-
- template/base/lib/gem_name/version.rb.erb
|
116
|
-
- template/base/gem_name.gemspec.erb
|
117
132
|
- template/base/README.rdoc.erb
|
118
133
|
- template/base/Rakefile.rb.erb
|
119
|
-
- template/
|
134
|
+
- template/base/gem_name.gemspec.erb
|
135
|
+
- template/base/lib/gem_name.rb.erb
|
136
|
+
- template/base/lib/gem_name/version.rb.erb
|
120
137
|
- template/executable/bin/gem_name.erb
|
121
|
-
-
|
122
|
-
- bin/gemma
|
138
|
+
- template/minitest/test/gem_name/gem_name_test.rb.erb
|
123
139
|
- test/gemma/gem_from_template_test.rb
|
140
|
+
- test/gemma/gemma_new_test.rb
|
124
141
|
- test/gemma/gemma_test.rb
|
125
142
|
- test/gemma/options_test.rb
|
126
|
-
- test/gemma/gemma_new_test.rb
|
127
143
|
homepage: http://github.com/jdleesmiller/gemma
|
128
144
|
licenses: []
|
145
|
+
metadata: {}
|
129
146
|
post_install_message:
|
130
147
|
rdoc_options:
|
131
148
|
- --main
|
132
149
|
- README.rdoc
|
133
150
|
- --title
|
134
|
-
- gemma-
|
151
|
+
- gemma-4.0.0 Documentation
|
135
152
|
require_paths:
|
136
153
|
- lib
|
137
154
|
required_ruby_version: !ruby/object:Gem::Requirement
|
138
|
-
none: false
|
139
155
|
requirements:
|
140
156
|
- - ! '>='
|
141
157
|
- !ruby/object:Gem::Version
|
142
158
|
version: '0'
|
143
|
-
segments:
|
144
|
-
- 0
|
145
|
-
hash: 184091151
|
146
159
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
147
|
-
none: false
|
148
160
|
requirements:
|
149
161
|
- - ! '>='
|
150
162
|
- !ruby/object:Gem::Version
|
151
163
|
version: '0'
|
152
|
-
segments:
|
153
|
-
- 0
|
154
|
-
hash: 184091151
|
155
164
|
requirements: []
|
156
165
|
rubyforge_project:
|
157
|
-
rubygems_version:
|
166
|
+
rubygems_version: 2.2.0
|
158
167
|
signing_key:
|
159
|
-
specification_version:
|
168
|
+
specification_version: 4
|
160
169
|
summary: A gem development tool that plays well with bundler.
|
161
170
|
test_files:
|
162
171
|
- test/gemma/gem_from_template_test.rb
|
172
|
+
- test/gemma/gemma_new_test.rb
|
163
173
|
- test/gemma/gemma_test.rb
|
164
174
|
- test/gemma/options_test.rb
|
165
|
-
- test/gemma/gemma_new_test.rb
|
166
175
|
has_rdoc:
|
@@ -1,64 +0,0 @@
|
|
1
|
-
module Gemma
|
2
|
-
class RakeTasks
|
3
|
-
#
|
4
|
-
# Run an executable script in the bin folder.
|
5
|
-
#
|
6
|
-
# There is one task per entry in the gemspec's +executables+ list. The
|
7
|
-
# executable is run with <tt>Kernel.exec</tt>. The result is equivalent to
|
8
|
-
# running <tt>bundler exec ...</tt>.
|
9
|
-
#
|
10
|
-
# To pass arguments to the script, you have to pass them as arguments to
|
11
|
-
# the rake task. The syntax for quoting the arguments will depend on your
|
12
|
-
# shell, but on bash looks like:
|
13
|
-
#
|
14
|
-
# rake my_prog['foo --bar=baz --bat=hi']
|
15
|
-
#
|
16
|
-
class RunTasks < Plugin
|
17
|
-
#
|
18
|
-
# @param [Gem::Specification] gemspec
|
19
|
-
#
|
20
|
-
def initialize gemspec
|
21
|
-
super(gemspec)
|
22
|
-
|
23
|
-
# Defaults.
|
24
|
-
@task_prefix = ''
|
25
|
-
@program_names = gemspec.executables.dup
|
26
|
-
end
|
27
|
-
|
28
|
-
#
|
29
|
-
# The task names are formed by prepending this string onto each program
|
30
|
-
# name; defaults to the empty string.
|
31
|
-
#
|
32
|
-
# @return [String]
|
33
|
-
#
|
34
|
-
attr_accessor :task_prefix
|
35
|
-
|
36
|
-
#
|
37
|
-
# Names of the executable (file in the bin directory) to run; by default,
|
38
|
-
# contains the +executables+ from the gemspec.
|
39
|
-
#
|
40
|
-
# @return [Array<String>] may be empty
|
41
|
-
#
|
42
|
-
attr_accessor :program_names
|
43
|
-
|
44
|
-
#
|
45
|
-
# Internal method; see {Plugin#create_rake_tasks}.
|
46
|
-
#
|
47
|
-
# @return [nil]
|
48
|
-
#
|
49
|
-
# @private
|
50
|
-
#
|
51
|
-
def create_rake_tasks
|
52
|
-
program_names.each do |program_name|
|
53
|
-
desc "run #{program_name}"
|
54
|
-
task((task_prefix + program_name), :args) do |t, args|
|
55
|
-
program_args = Shellwords.shellsplit(args[:args] || '')
|
56
|
-
Kernel.exec(program_name, *program_args)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
nil
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|