do_riak 0.10.1.pre
Sign up to get free protection for your applications and to get access to all the features.
- 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,65 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "fileutils"
|
4
|
+
require "nake/colors"
|
5
|
+
|
6
|
+
module Nake
|
7
|
+
module TaskHelpers
|
8
|
+
include FileUtils
|
9
|
+
def run(*parts)
|
10
|
+
puts parts.join(" ").cyan
|
11
|
+
system(*parts)
|
12
|
+
end
|
13
|
+
|
14
|
+
# return true if process suceeded, false otherwise
|
15
|
+
# sh "ls -a"
|
16
|
+
# sh "ls", "-a"
|
17
|
+
def sh(*parts)
|
18
|
+
puts "#{"$".magenta} #{parts.join(" ").cyan}"
|
19
|
+
system("sh", "-c", *parts)
|
20
|
+
end
|
21
|
+
|
22
|
+
# zsh "ls .*(.)"
|
23
|
+
def zsh(*parts)
|
24
|
+
puts "#{"%".magenta} #{parts.join(" ").cyan}"
|
25
|
+
system("zsh", "-c", *parts)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
module PrintHelpers
|
30
|
+
def info(message)
|
31
|
+
puts "~ #{message}".cyan if Nake.verbose
|
32
|
+
end
|
33
|
+
|
34
|
+
def note(message)
|
35
|
+
puts "~ #{message}".green if Nake.verbose
|
36
|
+
end
|
37
|
+
|
38
|
+
def warn(message)
|
39
|
+
Kernel.warn("~ #{message.yellow}") if Nake.debug
|
40
|
+
end
|
41
|
+
|
42
|
+
def debug(message)
|
43
|
+
STDERR.puts("~ #{message.yellow}") if Nake.debug
|
44
|
+
end
|
45
|
+
|
46
|
+
def error(message)
|
47
|
+
STDERR.puts "~ #{message}".red
|
48
|
+
end
|
49
|
+
|
50
|
+
def abort(message)
|
51
|
+
Kernel.abort "[#{"ERROR".red}] #{message}"
|
52
|
+
end
|
53
|
+
|
54
|
+
def print_exception_and_abort(exception)
|
55
|
+
abort exception.message
|
56
|
+
end
|
57
|
+
|
58
|
+
def print_exception_with_backtrace_and_abort(exception)
|
59
|
+
abort [exception.message, exception.backtrace.join("\n- ")].join("\n")
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
Object.send(:include, Nake::TaskHelpers)
|
65
|
+
Object.send(:include, Nake::PrintHelpers)
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module Rake
|
2
|
+
def self.method_missing
|
3
|
+
raise NotImplementedError
|
4
|
+
end
|
5
|
+
|
6
|
+
def self.const_missing(constant)
|
7
|
+
raise NotImplementedError, "Nake doesn't support Rake::#{constant}, please use normal Rake"
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# lazy-loading FTW!
|
12
|
+
def Object.const_missing(constant)
|
13
|
+
if constant.eql?(:FileList)
|
14
|
+
begin
|
15
|
+
require "filelist"
|
16
|
+
FileList
|
17
|
+
rescue LoadError
|
18
|
+
raise LoadError, "You have to install filelist gem!"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
module Nake
|
24
|
+
module RakeDSL
|
25
|
+
def task
|
26
|
+
end
|
27
|
+
|
28
|
+
def file
|
29
|
+
end
|
30
|
+
|
31
|
+
def rule
|
32
|
+
end
|
33
|
+
|
34
|
+
def multitask
|
35
|
+
raise NotImplementedError, "Multitask method won't be supported"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "nake/abstract_task"
|
4
|
+
|
5
|
+
module Nake
|
6
|
+
class Rule < AbstractTask
|
7
|
+
undef_method :hidden, :hidden=
|
8
|
+
class << self
|
9
|
+
undef_method :tasks
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.rules
|
13
|
+
@@rules ||= Hash.new
|
14
|
+
end
|
15
|
+
|
16
|
+
# Rule["test.o"]
|
17
|
+
# # => rule with pattern ".o"
|
18
|
+
def self.[](file)
|
19
|
+
self.rules.find { |rule| rule.match?(file.to_s) }
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.[]=(pattern, rule)
|
23
|
+
self.rules[pattern.to_s] = rule
|
24
|
+
end
|
25
|
+
|
26
|
+
alias_method :pattern, :name
|
27
|
+
def match?(file)
|
28
|
+
#
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# Somewhat like method_missing:
|
33
|
+
# If you can't find a task, try to look for a rule
|
34
|
+
AbstractTask.tasks.default_proc = lambda { |hash, name| Rule[name] }
|
35
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# options.extend(HashStructMixin)
|
4
|
+
# options.name
|
5
|
+
# options.force?
|
6
|
+
module Nake
|
7
|
+
module HashStructMixin
|
8
|
+
def method_missing(name, *args, &block)
|
9
|
+
if args.empty? && block.nil?
|
10
|
+
# options.name
|
11
|
+
if value = self[name]
|
12
|
+
return value
|
13
|
+
# options.force?
|
14
|
+
elsif name.to_s.match(/^(.*)\?$/) && value = self[$1.to_sym]
|
15
|
+
return value
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
super(name, *args, &block)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "nake/task"
|
4
|
+
|
5
|
+
# NOTE: if you have bundler bundled locally, just
|
6
|
+
# add bundler/lib into $: and this task will work
|
7
|
+
Nake::Task.new(:bundle) do |task|
|
8
|
+
task.description = "Install your gems locally from gems/cache via bundler"
|
9
|
+
|
10
|
+
# define bundler method, so we can test it
|
11
|
+
task.define_singleton_method(:bundler) do
|
12
|
+
@bundler ||= Gem::Commands::BundleCommand.new
|
13
|
+
end
|
14
|
+
|
15
|
+
# task definition
|
16
|
+
task.define do |*args, options|
|
17
|
+
require 'rubygems'
|
18
|
+
require 'rubygems/command'
|
19
|
+
|
20
|
+
begin
|
21
|
+
require 'bundler'
|
22
|
+
require 'bundler/commands/bundle_command'
|
23
|
+
rescue LoadError
|
24
|
+
abort "You have to have bundler installed!"
|
25
|
+
end
|
26
|
+
|
27
|
+
args.push("--cached") unless options.delete[:cached]
|
28
|
+
self.bundler.invoke(*task.original_args)
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "nake/dsl"
|
4
|
+
|
5
|
+
# require "nake/tasks/clean"
|
6
|
+
# Task[:clean].config[:files] = Dir["*.gem"]
|
7
|
+
Task.new(:clean) do |task|
|
8
|
+
task.config[:files] = Array.new
|
9
|
+
task.define do
|
10
|
+
task.config[:files].each { |file| rm_f file }
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "nake/dsl"
|
4
|
+
require "nake/tasks/clean"
|
5
|
+
|
6
|
+
# register gem files for cleaning
|
7
|
+
Task[:clean].config[:files].push(*Dir["*.gem"])
|
8
|
+
|
9
|
+
module Nake::PackageMixin
|
10
|
+
def gem_name
|
11
|
+
"#{Task[:release].config[:name]}-#{Task[:release].config[:version]}.gem"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# require "nake/tasks/gem"
|
16
|
+
# Task[:build].config[:gemspec] = Dir["*.gemspec"]
|
17
|
+
Task.new(:build) do |task|
|
18
|
+
task.define do
|
19
|
+
sh "gem build #{task.config[:gemspec]}"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Task.new(:install, :build) do |task|
|
24
|
+
task.extend(PackageMixin)
|
25
|
+
task.description = "Install"
|
26
|
+
task.define do
|
27
|
+
sh "gem install #{self.gem_name}"
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require "nake/tasks/gem"
|
4
|
+
|
5
|
+
# require "nake/tasks/release"
|
6
|
+
# Task[:release].config[:version] = Nake::VERSION
|
7
|
+
task(:release, "release:tag", "release:gemcutter").tap do |task|
|
8
|
+
task.description = "Release current version version"
|
9
|
+
task.define do
|
10
|
+
puts "Version #{task.config[:version]} was successfuly published. Don't forget to increase VERSION constant!"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
task(:prerelease).tap do |task|
|
15
|
+
task.description = "Update prerelease version"
|
16
|
+
task.define do
|
17
|
+
Task[:release].config[:version] = "#{Task[:release].config[:version]}.pre"
|
18
|
+
Task[:build].config[:gemspec] = Task[:build].config[:gemspec].sub(/\.gemspec/, ".pre.gemspec")
|
19
|
+
Task["release:gemcutter"].call
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
Task.new("release:tag") do |task|
|
24
|
+
task.description = "Create Git tag"
|
25
|
+
task.define do
|
26
|
+
version = Task[:release].config[:version]
|
27
|
+
raise ConfigurationError, "You have to provide Task[:release].config[:version]!" if version.nil?
|
28
|
+
puts "Creating new git tag #{version} and pushing it online ..."
|
29
|
+
sh "git tag -a -m 'Version #{version}' #{version}"
|
30
|
+
sh "git push --tags"
|
31
|
+
puts "Tag #{version} was created and pushed to GitHub."
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
Task.new("release:gemcutter") do |task|
|
36
|
+
task.description = "Push gem to Gemcutter"
|
37
|
+
task.dependencies = [:clean, :build]
|
38
|
+
task.extend(PackageMixin)
|
39
|
+
task.define do
|
40
|
+
puts "Pushing to Gemcutter ..."
|
41
|
+
sh "gem push #{self.gem_name}"
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
begin
|
4
|
+
require "recho"
|
5
|
+
rescue LoadError
|
6
|
+
raise LoadError, "This task require recho gem!"
|
7
|
+
end
|
8
|
+
|
9
|
+
require "nake/file_task"
|
10
|
+
|
11
|
+
# FileTask["deps.rip"].config[:versions] = {rack: "1.0.1", media_path: "SHA1"}
|
12
|
+
|
13
|
+
# register task
|
14
|
+
#Task[:release].dependencies.unshift("deps.rip")
|
15
|
+
|
16
|
+
# deps.rip.str:
|
17
|
+
##!/usr/bin/env rip install
|
18
|
+
#
|
19
|
+
## Syntax:
|
20
|
+
## repository [tag or commit to install]
|
21
|
+
#git://github.com/botanicus/media-path.git %{media_path}
|
22
|
+
#git://github.com/rack/rack.git %{rack}
|
23
|
+
|
24
|
+
FileTask.new("deps.rip", "deps.rip.str") do |task|
|
25
|
+
task.config[:versions] = Hash.new
|
26
|
+
task.description = "Regenerate deps.rip"
|
27
|
+
task.define do
|
28
|
+
data = File.read("deps.rip.str")
|
29
|
+
dependencies = "%Q{#{data}}" % task.config[:versions]
|
30
|
+
FileUtils.echo("deps.str") > dependencies
|
31
|
+
sh "chmod +x deps.rip"
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
# ./tasks.rb spec/nake/argv_spec.rb spec/nake/task_spec.rb
|
4
|
+
task(:spec) do |*paths, options|
|
5
|
+
paths.push("spec") if paths.empty?
|
6
|
+
sh "spec", *paths
|
7
|
+
end
|
8
|
+
|
9
|
+
Task.new("spec:stubs") do |task|
|
10
|
+
task.description = "Create stubs of all library files."
|
11
|
+
task.define do
|
12
|
+
Dir.glob("lib/**/*.rb").each do |file|
|
13
|
+
specfile = file.sub(/^lib/, "spec").sub(/\.rb$/, '_spec.rb')
|
14
|
+
unless File.exist?(specfile)
|
15
|
+
sh "mkdir -p #{File.dirname(specfile)}"
|
16
|
+
sh "touch #{specfile}"
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Nake
|
4
|
+
module TaskHelpers
|
5
|
+
def template(source, target, context = Hash.new)
|
6
|
+
template = Template.new(source)
|
7
|
+
File.open(target, "w") do |file|
|
8
|
+
file.puts(template.render(context))
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def erb(source, target, context = Hash.new)
|
13
|
+
template = ErbTemplate.new(source)
|
14
|
+
File.open(target, "w") do |file|
|
15
|
+
file.puts(template.render(context))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
class Template
|
21
|
+
def initialize(path)
|
22
|
+
@path = path
|
23
|
+
end
|
24
|
+
|
25
|
+
def render(context = Hash.new)
|
26
|
+
File.read(@path) % context
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class ErbTemplate
|
31
|
+
def initialize(path)
|
32
|
+
require "erb"
|
33
|
+
@path = path
|
34
|
+
end
|
35
|
+
|
36
|
+
def set_locals(context)
|
37
|
+
context.inject("") do |source, pair|
|
38
|
+
source += "#{pair.first} = context[:#{pair.first}]\n"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def source(context)
|
43
|
+
["<% #{self.set_locals(context)} %>", File.read(@path)].join("")
|
44
|
+
end
|
45
|
+
|
46
|
+
def render(context = Hash.new)
|
47
|
+
template = ERB.new(self.source(context))
|
48
|
+
template.result(binding)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
Binary file
|
@@ -0,0 +1,42 @@
|
|
1
|
+
#!/usr/bin/env gem build
|
2
|
+
# encoding: utf-8
|
3
|
+
|
4
|
+
# NOTE: we can't use require_relative because when we run gem build, it use eval for executing this file
|
5
|
+
#$:.unshift(File.join(File.dirname(__FILE__), "lib"))
|
6
|
+
#require "nake"
|
7
|
+
|
8
|
+
Gem::Specification.new do |s|
|
9
|
+
s.name = "nake"
|
10
|
+
s.version = "0.0.8"
|
11
|
+
s.authors = ["Jakub Šťastný aka Botanicus"]
|
12
|
+
s.homepage = "http://github.com/botanicus/nake"
|
13
|
+
s.summary = "Nake is light-weight and highly flexible Rake replacement with much better arguments parsing"
|
14
|
+
s.description = "" # TODO: long description
|
15
|
+
s.cert_chain = nil
|
16
|
+
s.email = ["knava.bestvinensis", "gmail.com"].join("@")
|
17
|
+
s.has_rdoc = true
|
18
|
+
|
19
|
+
# files
|
20
|
+
s.files = Dir.glob("**/*")
|
21
|
+
s.executables = ["nake"]
|
22
|
+
s.default_executable = "nake"
|
23
|
+
s.require_paths = ["lib"]
|
24
|
+
|
25
|
+
# Ruby version
|
26
|
+
s.required_ruby_version = ::Gem::Requirement.new("~> 1.9")
|
27
|
+
|
28
|
+
# dependencies
|
29
|
+
s.add_dependency "term-ansicolor"
|
30
|
+
|
31
|
+
begin
|
32
|
+
require "changelog"
|
33
|
+
rescue LoadError
|
34
|
+
warn "You have to have changelog gem installed for post install message"
|
35
|
+
else
|
36
|
+
changelog = CHANGELOG.new(File.join(File.dirname(__FILE__), "CHANGELOG"))
|
37
|
+
s.post_install_message = "=== Changes in the last Nake ===\n- #{changelog.last_version_changes.join("\n- ")}"
|
38
|
+
end
|
39
|
+
|
40
|
+
# RubyForge
|
41
|
+
s.rubyforge_project = "nake"
|
42
|
+
end
|