do_riak 0.10.1.pre
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.
- data/CHANGELOG +2 -0
- data/Gemfile +9 -0
- data/LICENSE +20 -0
- data/README.textile +23 -0
- data/TODO.txt +4 -0
- data/deps.rip +8 -0
- data/do_riak.gemspec +40 -0
- data/do_riak.pre.gemspec +8 -0
- data/gems/cache/bacon-1.1.0.gem +0 -0
- data/gems/cache/code-cleaner-0.8.1.gem +0 -0
- data/gems/cache/nake-0.0.8.gem +0 -0
- data/gems/cache/term-ansicolor-1.0.4.gem +0 -0
- data/gems/environment.rb +107 -0
- data/gems/gems/bacon-1.1.0/COPYING +18 -0
- data/gems/gems/bacon-1.1.0/ChangeLog +220 -0
- data/gems/gems/bacon-1.1.0/RDOX +69 -0
- data/gems/gems/bacon-1.1.0/README +290 -0
- data/gems/gems/bacon-1.1.0/Rakefile +138 -0
- data/gems/gems/bacon-1.1.0/bin/bacon +117 -0
- data/gems/gems/bacon-1.1.0/lib/autotest/bacon.rb +36 -0
- data/gems/gems/bacon-1.1.0/lib/autotest/bacon_rspec.rb +2 -0
- data/gems/gems/bacon-1.1.0/lib/autotest/discover.rb +9 -0
- data/gems/gems/bacon-1.1.0/lib/bacon.rb +354 -0
- data/gems/gems/bacon-1.1.0/test/spec_bacon.rb +374 -0
- data/gems/gems/bacon-1.1.0/test/spec_should.rb +32 -0
- data/gems/gems/code-cleaner-0.8.1/LICENSE +20 -0
- data/gems/gems/code-cleaner-0.8.1/README.textile +87 -0
- data/gems/gems/code-cleaner-0.8.1/TODO.txt +1 -0
- data/gems/gems/code-cleaner-0.8.1/bin/code-cleaner +143 -0
- data/gems/gems/code-cleaner-0.8.1/code-cleaner-0.8.gem +0 -0
- data/gems/gems/code-cleaner-0.8.1/code-cleaner.gemspec +25 -0
- data/gems/gems/code-cleaner-0.8.1/support/pre-commit.erb +70 -0
- data/gems/gems/code-cleaner-0.8.1/tasks.rb +13 -0
- data/gems/gems/code-cleaner-0.8.1/tasks/code-cleaner.nake +49 -0
- data/gems/gems/code-cleaner-0.8.1/tasks/code-cleaner.rake +22 -0
- data/gems/gems/code-cleaner-0.8.1/tasks/code-cleaner.thor +35 -0
- data/gems/gems/nake-0.0.8/CHANGELOG +48 -0
- data/gems/gems/nake-0.0.8/LICENSE +20 -0
- data/gems/gems/nake-0.0.8/README.textile +39 -0
- data/gems/gems/nake-0.0.8/TODO.txt +23 -0
- data/gems/gems/nake-0.0.8/bin/nake +66 -0
- data/gems/gems/nake-0.0.8/bin/nrake +4 -0
- data/gems/gems/nake-0.0.8/bin/rake2nake +1 -0
- data/gems/gems/nake-0.0.8/bin/snake +41 -0
- data/gems/gems/nake-0.0.8/bm/Rakefile +28 -0
- data/gems/gems/nake-0.0.8/bm/bms.rb +56 -0
- data/gems/gems/nake-0.0.8/bm/output.txt +5 -0
- data/gems/gems/nake-0.0.8/bm/tasks.rb +21 -0
- data/gems/gems/nake-0.0.8/bm/tmp/test.c +6 -0
- data/gems/gems/nake-0.0.8/bm/tmp/www/index.html +1 -0
- data/gems/gems/nake-0.0.8/deps.rb +5 -0
- data/gems/gems/nake-0.0.8/deps.rip +5 -0
- data/gems/gems/nake-0.0.8/examples/arguments.rb +38 -0
- data/gems/gems/nake-0.0.8/examples/basic.rb +5 -0
- data/gems/gems/nake-0.0.8/examples/boot.rb +18 -0
- data/gems/gems/nake-0.0.8/examples/complex.rb +9 -0
- data/gems/gems/nake-0.0.8/examples/configuration.rb +15 -0
- data/gems/gems/nake-0.0.8/examples/default.rb +10 -0
- data/gems/gems/nake-0.0.8/examples/default_proc.rb +11 -0
- data/gems/gems/nake-0.0.8/examples/dependencies.rb +10 -0
- data/gems/gems/nake-0.0.8/examples/description.rb +33 -0
- data/gems/gems/nake-0.0.8/examples/file.rb +22 -0
- data/gems/gems/nake-0.0.8/examples/helpers.rb +3 -0
- data/gems/gems/nake-0.0.8/examples/invoking.rb +14 -0
- data/gems/gems/nake-0.0.8/examples/rules.rb +0 -0
- data/gems/gems/nake-0.0.8/examples/script.rb +20 -0
- data/gems/gems/nake-0.0.8/examples/task_arguments.rb +27 -0
- data/gems/gems/nake-0.0.8/features/arguments.feature +22 -0
- data/gems/gems/nake-0.0.8/features/basic.feature +6 -0
- data/gems/gems/nake-0.0.8/features/boot.feature +5 -0
- data/gems/gems/nake-0.0.8/features/builtin_arguments.feature +14 -0
- data/gems/gems/nake-0.0.8/features/complex.feature +6 -0
- data/gems/gems/nake-0.0.8/features/configuration.feature +10 -0
- data/gems/gems/nake-0.0.8/features/default.feature +10 -0
- data/gems/gems/nake-0.0.8/features/default_proc.feature +6 -0
- data/gems/gems/nake-0.0.8/features/dependencies.feature +16 -0
- data/gems/gems/nake-0.0.8/features/description.feature +0 -0
- data/gems/gems/nake-0.0.8/features/env.rb +11 -0
- data/gems/gems/nake-0.0.8/features/executable.feature +29 -0
- data/gems/gems/nake-0.0.8/features/file.feature +23 -0
- data/gems/gems/nake-0.0.8/features/helpers.feature +6 -0
- data/gems/gems/nake-0.0.8/features/invoking.feature +14 -0
- data/gems/gems/nake-0.0.8/features/rules.feature +0 -0
- data/gems/gems/nake-0.0.8/features/script.feature +10 -0
- data/gems/gems/nake-0.0.8/features/steps.rb +39 -0
- data/gems/gems/nake-0.0.8/features/task_arguments.feature +10 -0
- data/gems/gems/nake-0.0.8/lib/nake.rb +103 -0
- data/gems/gems/nake-0.0.8/lib/nake/abstract_task.rb +175 -0
- data/gems/gems/nake-0.0.8/lib/nake/args.rb +65 -0
- data/gems/gems/nake-0.0.8/lib/nake/argv.rb +47 -0
- data/gems/gems/nake-0.0.8/lib/nake/colors.rb +22 -0
- data/gems/gems/nake-0.0.8/lib/nake/dsl.rb +70 -0
- data/gems/gems/nake-0.0.8/lib/nake/file_task.rb +62 -0
- data/gems/gems/nake-0.0.8/lib/nake/helpers.rb +65 -0
- data/gems/gems/nake-0.0.8/lib/nake/rake.rb +38 -0
- data/gems/gems/nake-0.0.8/lib/nake/rule.rb +35 -0
- data/gems/gems/nake-0.0.8/lib/nake/struct_hash.rb +22 -0
- data/gems/gems/nake-0.0.8/lib/nake/task.rb +6 -0
- data/gems/gems/nake-0.0.8/lib/nake/tasks/bundle.rb +30 -0
- data/gems/gems/nake-0.0.8/lib/nake/tasks/clean.rb +12 -0
- data/gems/gems/nake-0.0.8/lib/nake/tasks/gem.rb +29 -0
- data/gems/gems/nake-0.0.8/lib/nake/tasks/release.rb +43 -0
- data/gems/gems/nake-0.0.8/lib/nake/tasks/rip.rb +33 -0
- data/gems/gems/nake-0.0.8/lib/nake/tasks/spec.rb +20 -0
- data/gems/gems/nake-0.0.8/lib/nake/template.rb +51 -0
- data/gems/gems/nake-0.0.8/nake-0.0.8.pre.gem +0 -0
- data/gems/gems/nake-0.0.8/nake.gemspec +42 -0
- data/gems/gems/nake-0.0.8/nake.pre.gemspec +8 -0
- data/gems/gems/nake-0.0.8/spec/nake/abstract_task_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/args_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/argv_spec.rb +51 -0
- data/gems/gems/nake-0.0.8/spec/nake/colors_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/dsl_spec.rb +35 -0
- data/gems/gems/nake-0.0.8/spec/nake/file_task_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/helpers_spec.rb +14 -0
- data/gems/gems/nake-0.0.8/spec/nake/rake_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/rule_spec.rb +72 -0
- data/gems/gems/nake-0.0.8/spec/nake/struct_hash_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/task_spec.rb +72 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks/bundle_spec.rb +28 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks/clean_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks/gem_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks/release_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks/rip_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks/spec_spec.rb +0 -0
- data/gems/gems/nake-0.0.8/spec/nake/tasks_spec.rb +48 -0
- data/gems/gems/nake-0.0.8/spec/nake/template_spec.rb +84 -0
- data/gems/gems/nake-0.0.8/spec/nake_spec.rb +9 -0
- data/gems/gems/nake-0.0.8/spec/spec.opts +5 -0
- data/gems/gems/nake-0.0.8/spec/spec_helper.rb +29 -0
- data/gems/gems/nake-0.0.8/spec/stubs/database.yml.erb +9 -0
- data/gems/gems/nake-0.0.8/spec/stubs/database.yml.tt +9 -0
- data/gems/gems/nake-0.0.8/tasks.rb +42 -0
- data/gems/gems/term-ansicolor-1.0.4/CHANGES +22 -0
- data/gems/gems/term-ansicolor-1.0.4/COPYING +340 -0
- data/gems/gems/term-ansicolor-1.0.4/README +31 -0
- data/gems/gems/term-ansicolor-1.0.4/Rakefile +86 -0
- data/gems/gems/term-ansicolor-1.0.4/VERSION +1 -0
- data/gems/gems/term-ansicolor-1.0.4/doc-main.txt +119 -0
- data/gems/gems/term-ansicolor-1.0.4/examples/cdiff.rb +19 -0
- data/gems/gems/term-ansicolor-1.0.4/examples/example.rb +89 -0
- data/gems/gems/term-ansicolor-1.0.4/install.rb +15 -0
- data/gems/gems/term-ansicolor-1.0.4/lib/term/ansicolor.rb +102 -0
- data/gems/gems/term-ansicolor-1.0.4/lib/term/ansicolor/version.rb +10 -0
- data/gems/gems/term-ansicolor-1.0.4/term-ansicolor.gemspec +20 -0
- data/gems/specifications/bacon-1.1.0.gemspec +30 -0
- data/gems/specifications/code-cleaner-0.8.1.gemspec +31 -0
- data/gems/specifications/nake-0.0.8.gemspec +35 -0
- data/gems/specifications/term-ansicolor-1.0.4.gemspec +30 -0
- data/lib/do_riak.rb +10 -0
- data/lib/do_riak/errors.rb +11 -0
- data/lib/do_riak/transaction.rb +24 -0
- data/lib/do_riak/version.rb +7 -0
- data/script/bacon +3 -0
- data/script/code-cleaner +3 -0
- data/script/nake +3 -0
- data/spec/command_spec.rb +8 -0
- data/spec/connection_spec.rb +17 -0
- data/spec/reader_spec.rb +8 -0
- data/spec/result_spec.rb +12 -0
- data/spec/spec_helper.rb +19 -0
- data/spec/typecast/array_spec.rb +8 -0
- data/spec/typecast/bigdecimal_spec.rb +8 -0
- data/spec/typecast/boolean_spec.rb +8 -0
- data/spec/typecast/byte_array_spec.rb +8 -0
- data/spec/typecast/class_spec.rb +8 -0
- data/spec/typecast/date_spec.rb +8 -0
- data/spec/typecast/datetime_spec.rb +8 -0
- data/spec/typecast/float_spec.rb +12 -0
- data/spec/typecast/integer_spec.rb +8 -0
- data/spec/typecast/nil_spec.rb +16 -0
- data/spec/typecast/other_spec.rb +8 -0
- data/spec/typecast/range_spec.rb +8 -0
- data/spec/typecast/string_spec.rb +8 -0
- data/spec/typecast/time_spec.rb +8 -0
- data/tasks.rb +37 -0
- metadata +238 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
=== 0.1 ===
|
2
|
+
- README
|
3
|
+
- update examples
|
4
|
+
- features
|
5
|
+
|
6
|
+
- task inheritance => sharing config via super
|
7
|
+
- rework rule
|
8
|
+
- check if everything works
|
9
|
+
- specs
|
10
|
+
- update benchmarks
|
11
|
+
- yardoc
|
12
|
+
- refactor bin/nake
|
13
|
+
|
14
|
+
=== 0.2 ===
|
15
|
+
Task.new(:test) do |task|
|
16
|
+
task.options[:optional] = [:force] # maybe {force: :boolean}
|
17
|
+
task.options[:required] = [:name]
|
18
|
+
end
|
19
|
+
=> better -T list + validations
|
20
|
+
|
21
|
+
=== 0.3 ===
|
22
|
+
- nrake & nake/rake for running rake tasks in nake
|
23
|
+
- rake2nake
|
@@ -0,0 +1,66 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$:.unshift File.join(File.dirname(__FILE__), "..", "lib")
|
4
|
+
|
5
|
+
require "nake"
|
6
|
+
require "nake/args"
|
7
|
+
require "nake/helpers"
|
8
|
+
|
9
|
+
# parse arguments
|
10
|
+
begin
|
11
|
+
Nake.parse
|
12
|
+
rescue Exception => exception
|
13
|
+
puts "~ Arguments parsed into #{Nake.parse.inspect.green}"
|
14
|
+
puts "Exception occured during parsing arguments"
|
15
|
+
print_exception_with_backtrace_and_abort(exception)
|
16
|
+
else
|
17
|
+
if Nake.parse[:nake] && Nake.parse[:nake].include?("--debug") # Nake.debug isn't initialized yet
|
18
|
+
puts "~ Arguments parsed into #{Nake.parse.inspect.green}"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# load task file
|
23
|
+
if Nake.parse[:file]
|
24
|
+
begin
|
25
|
+
load Nake.parse[:file]
|
26
|
+
rescue Exception => exception
|
27
|
+
print_exception_with_backtrace_and_abort(exception)
|
28
|
+
end
|
29
|
+
elsif File.exist?("tasks.rb")
|
30
|
+
# default value, useful when running nake on systems without
|
31
|
+
# shebang support, so you are using nake -T instead of ./tasks.rb -T
|
32
|
+
Nake.parse[:file] = "tasks.rb"
|
33
|
+
else
|
34
|
+
abort "You have to specify a file with tasks"
|
35
|
+
end
|
36
|
+
|
37
|
+
# run arguments
|
38
|
+
# yes, arguments has to run after the task file is loaded
|
39
|
+
begin
|
40
|
+
original_args = Nake.parse.dup
|
41
|
+
Nake.run_args
|
42
|
+
rescue SystemExit => exception
|
43
|
+
exit exception.status
|
44
|
+
rescue Exception => exception
|
45
|
+
puts "~ Arguments parsed into #{Nake.parse.inspect.green}"
|
46
|
+
puts "Exception occured setting nake flags"
|
47
|
+
print_exception_with_backtrace_and_abort(exception)
|
48
|
+
else
|
49
|
+
if Nake.debug && Nake.parse != original_args
|
50
|
+
puts "~ Arguments changed into #{Nake.parse.inspect.green}"
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# run tasks
|
55
|
+
begin
|
56
|
+
Nake.run_task
|
57
|
+
rescue TaskNotFound => exception
|
58
|
+
abort exception.message
|
59
|
+
rescue SystemExit => exception
|
60
|
+
exit exception.status
|
61
|
+
rescue Exception => exception
|
62
|
+
print_exception_with_backtrace_and_abort(exception)
|
63
|
+
end
|
64
|
+
|
65
|
+
# exit with exit status of the last command
|
66
|
+
exit $? ? $?.exitstatus : 0
|
@@ -0,0 +1 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
@@ -0,0 +1,41 @@
|
|
1
|
+
#!/usr/bin/env nake
|
2
|
+
|
3
|
+
# Snake is similar to sake http://www.rubyinside.com/sake-system-wide-rake-tasks-543.html
|
4
|
+
|
5
|
+
# tasks
|
6
|
+
|
7
|
+
# snake get db_tasks.rb
|
8
|
+
# snake get http://gist.github.com/raw/266818/7239049c59b32d07a8af7e26f89190b61e0a7860/snake.rb
|
9
|
+
Task.new(:get) do |task|
|
10
|
+
task.description = "Add tasks from given file or URL to your %{task_file}"
|
11
|
+
|
12
|
+
task.define do |path|
|
13
|
+
require "open-uri"
|
14
|
+
begin
|
15
|
+
open(path) do |stream|
|
16
|
+
File.open(self.config[:task_file], "a") do |file|
|
17
|
+
file.puts(stream.read, "")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
rescue Exception => exception
|
21
|
+
abort exception.message
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
Task.new(:edit) do |task|
|
27
|
+
task.config = Task[:get].config
|
28
|
+
task.description = "Edit %{task_file} in your editor"
|
29
|
+
|
30
|
+
task.define do
|
31
|
+
exec((ENV["EDITOR"] || "vim"), task.config[:task_file])
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
# setup
|
36
|
+
Task[:get].config[:task_file] = File.expand_path("~/.tasks.rb")
|
37
|
+
|
38
|
+
# run
|
39
|
+
if File.exist?(Task[:get].config[:task_file])
|
40
|
+
load Task[:get].config[:task_file]
|
41
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
desc "Simple task"
|
2
|
+
task :simple do
|
3
|
+
puts "Hello World!"
|
4
|
+
end
|
5
|
+
|
6
|
+
desc "Namespaced task"
|
7
|
+
task "a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z" do
|
8
|
+
# do nothing
|
9
|
+
end
|
10
|
+
|
11
|
+
desc "Task with arguments"
|
12
|
+
task :arguments
|
13
|
+
|
14
|
+
desc "Task with dependencies"
|
15
|
+
task :dependencies
|
16
|
+
|
17
|
+
directory "tmp/www"
|
18
|
+
|
19
|
+
desc "Generate tmp/www/index.html"
|
20
|
+
file "tmp/www/index.html" => "tmp/www" do |task|
|
21
|
+
File.open(task.name, "w") do |file|
|
22
|
+
file.puts("<html>Hello World!</html>")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
rule ".o" => [".c"] do |task|
|
27
|
+
sh "gcc #{task.source} -c -o #{task.name}"
|
28
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$VERBOSE = nil # shut up
|
4
|
+
|
5
|
+
require "rbench"
|
6
|
+
|
7
|
+
rake = `which rake`.chomp
|
8
|
+
nake = "./bin/nake"
|
9
|
+
|
10
|
+
abort "You have to install Rake!" if rake.empty?
|
11
|
+
puts "Using nake from #{nake} and rake from #{rake}\n\n"
|
12
|
+
|
13
|
+
def run(command)
|
14
|
+
system("#{command} &> /dev/null") || abort("Problem during running #{command}")
|
15
|
+
end
|
16
|
+
|
17
|
+
# Make sure you are running both Rake and Nake on the same Ruby version!
|
18
|
+
RBench.run(10) do
|
19
|
+
column :rake
|
20
|
+
column :nake
|
21
|
+
|
22
|
+
report "list tasks" do
|
23
|
+
rake { run "#{rake} -T" }
|
24
|
+
nake { run "#{nake} -T" }
|
25
|
+
end
|
26
|
+
|
27
|
+
report "simple task" do
|
28
|
+
rake { run "#{rake} simple" }
|
29
|
+
nake { run "#{nake} simple" }
|
30
|
+
end
|
31
|
+
|
32
|
+
report "namespaced task" do
|
33
|
+
rake { run "#{rake} a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z" }
|
34
|
+
nake { run "#{nake} a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z" }
|
35
|
+
end
|
36
|
+
|
37
|
+
#report "task with arguments" do
|
38
|
+
# rake { run "#{rake} arguments" }
|
39
|
+
# nake { run "#{nake} arguments" }
|
40
|
+
#end
|
41
|
+
#
|
42
|
+
#report "task with dependencies" do
|
43
|
+
# rake { run "#{rake} dependencies" }
|
44
|
+
# nake { run "#{nake} dependencies" }
|
45
|
+
#end
|
46
|
+
|
47
|
+
report "file task" do
|
48
|
+
rake { run "#{rake} tmp/www/index.html" }
|
49
|
+
nake { run "#{nake} tmp/www/index.html" }
|
50
|
+
end
|
51
|
+
|
52
|
+
#report "rule" do
|
53
|
+
# rake { run "#{rake} tmp/test.o" }
|
54
|
+
# nake { run "#{nake} tmp/test.o" }
|
55
|
+
#end
|
56
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
#!../bin/nake
|
2
|
+
|
3
|
+
task :simple do
|
4
|
+
puts "Hello World!"
|
5
|
+
end
|
6
|
+
|
7
|
+
task "a:b:c:d:e:f:g:h:i:j:k:l:m:n:o:p:q:r:s:t:u:v:w:x:y:z" do
|
8
|
+
# do nothing
|
9
|
+
end
|
10
|
+
|
11
|
+
directory "tmp/www"
|
12
|
+
|
13
|
+
file "tmp/www/index.html", "tmp/www" do |path|
|
14
|
+
File.open(path, "w") do |file|
|
15
|
+
file.puts("<html>Hello World!</html>")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
#rule ".o" => [".c"] do |task|
|
20
|
+
# sh "gcc #{task.source} -c -o #{task.name}"
|
21
|
+
#end
|
@@ -0,0 +1 @@
|
|
1
|
+
<html>Hello World!</html>
|
@@ -0,0 +1,38 @@
|
|
1
|
+
#!/usr/bin/env ./bin/nake --debug
|
2
|
+
|
3
|
+
# This example document how you can change different flags
|
4
|
+
# - specify these flags in shebang
|
5
|
+
# - use API directly
|
6
|
+
# - ./examples/flags --verbose
|
7
|
+
Nake.verbose = false
|
8
|
+
|
9
|
+
# Arguments might be considered as a light-weight variant to tasks
|
10
|
+
# There are two ways how you can use tasks:
|
11
|
+
# 1) as a filter, just set a variable --debug
|
12
|
+
# 2) add your own functionality and then use exit
|
13
|
+
# 3) just set the task which will run afterwards
|
14
|
+
Nake.args["-H", "--help"] = lambda { Kernel.abort("This is my customized help!") }
|
15
|
+
|
16
|
+
task(:tasks) { puts "Available tasks: #{Nake::Task.tasks.keys.join(", ")}" }
|
17
|
+
Nake.args["-T", "--tasks"] = lambda { |*| Nake.parse[:task].clear.push("tasks") }
|
18
|
+
|
19
|
+
argument("--debug", "--no-debug") do |key, value|
|
20
|
+
puts "~ Setting #{key} to #{value}"
|
21
|
+
Nake.debug = value
|
22
|
+
end
|
23
|
+
|
24
|
+
# ./examples/arguments.rb --report greet
|
25
|
+
# ./examples/arguments.rb --report wait
|
26
|
+
task(:greet) { puts "Hey mate!" }
|
27
|
+
task(:wait) { sleep(1) }
|
28
|
+
|
29
|
+
argument("--report") do |*|
|
30
|
+
@before = Time.now
|
31
|
+
at_exit do
|
32
|
+
task = Nake.parse[:task].first
|
33
|
+
time = Time.now - @before
|
34
|
+
puts "Running task #{task} took #{time} seconds"
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# TODO: execution order, argument helper + args passing to the proc
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#!/usr/bin/env ./bin/nake
|
2
|
+
|
3
|
+
# You might want to give more useful description, however you don't have access
|
4
|
+
# to some variables so far ... at least with Rake. Nake provides boot method which
|
5
|
+
# run after everything is loaded, and if you specify optional dependencies for the
|
6
|
+
# boot method, it will run the boot block of specified tasks first. This might come
|
7
|
+
# handy time to time, but usually it's enough to use it without arguments since you
|
8
|
+
# usually need just to load the whole task file where is all the configuration.
|
9
|
+
|
10
|
+
# Typical usecases:
|
11
|
+
# - you want to provide concrete info in description
|
12
|
+
# - you need to access configuration of a task on other place than in the define block
|
13
|
+
|
14
|
+
Task.new(:build) do |task|
|
15
|
+
task.boot(:release) do
|
16
|
+
task.description = "Release version #{Task[:release].config[:version]}"
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ./bin/nake
|
2
|
+
|
3
|
+
# this will be probably in a library
|
4
|
+
Task.new(:build) do |task|
|
5
|
+
task.define do
|
6
|
+
sh "gem build #{task.config[:gemspec]}"
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
# and this in your file with tasks
|
11
|
+
Task[:build].config[:gemspec] = "nake.gemspec"
|
12
|
+
|
13
|
+
# if the task isn't defined yet
|
14
|
+
task(:mytask)
|
15
|
+
Task[:mytask].config[:name] = "foo"
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ./bin/nake
|
2
|
+
|
3
|
+
# When you run rake without arguments, it will try to run task called default.
|
4
|
+
# Since I don't believe in any stupid convention, I don't support anything similar,
|
5
|
+
# because you can do it just using standard Ruby methods like Hash#default=(value)
|
6
|
+
# Of course the task which you are assigning as a default have to already exist,
|
7
|
+
# so you have to put this to the end of your file or you might want to use
|
8
|
+
# Hash#default_proc=(proc) as described in examples/default_proc.rb like:
|
9
|
+
# Task.tasks.default_proc = lambda { |*| Task[:build] }
|
10
|
+
Task.tasks.default = Nake.args["-T"] #Task["-T"]
|
@@ -0,0 +1,11 @@
|
|
1
|
+
#!/usr/bin/env ./bin/nake
|
2
|
+
|
3
|
+
# Default value returned from Task["not_existing_task"] don't have to be even a task,
|
4
|
+
# it just have to respond to #call, so you can use Hash#default_proc=(proc) as well
|
5
|
+
# Just make sure you are wrap the callable object in lambda, because the callable
|
6
|
+
# object has to be returned as a result from the finding on the hash, but the
|
7
|
+
# default proc is what is actually called if nothing is found.
|
8
|
+
# You might i. e. customize error message or you might detect desired task in runtime.
|
9
|
+
Task.tasks.default_proc = lambda do |tasks, name|
|
10
|
+
lambda { |*args| abort("Task #{name} executed with args: #{args.inspect}") }
|
11
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
#!/usr/bin/env ./bin/nake
|
2
|
+
|
3
|
+
# You can do the same by adding Task[name].call in the define block, but please,
|
4
|
+
# don't use this approach. Dependencies are readable and if someone wants to,
|
5
|
+
# he can simply remove a dependency from the dependency array.
|
6
|
+
task(:greet1)
|
7
|
+
task(:greet2)
|
8
|
+
|
9
|
+
task = task(:greet3, :greet1, :greet2)
|
10
|
+
task.description = "Run greet1 & greet2"
|
@@ -0,0 +1,33 @@
|
|
1
|
+
desc :release, "Create a new release"
|
2
|
+
task(:release) do
|
3
|
+
# ...
|
4
|
+
end
|
5
|
+
|
6
|
+
task = task(:release) do
|
7
|
+
# ...
|
8
|
+
end
|
9
|
+
task.description = "Create a new release"
|
10
|
+
|
11
|
+
task(:release) do
|
12
|
+
# ...
|
13
|
+
end
|
14
|
+
Task[:release].description = "Create a new release"
|
15
|
+
|
16
|
+
task = task(:release)
|
17
|
+
task.description = "Create a new release"
|
18
|
+
task.define do
|
19
|
+
# ...
|
20
|
+
end
|
21
|
+
|
22
|
+
task(:release)
|
23
|
+
Task[:release].description = "Create a new release"
|
24
|
+
task(:release) do
|
25
|
+
# ...
|
26
|
+
end
|
27
|
+
|
28
|
+
Task.new(:release) do |task|
|
29
|
+
task.description = "Create a new release"
|
30
|
+
task.define do
|
31
|
+
# ...
|
32
|
+
end
|
33
|
+
end
|