spline 0.0.11 → 0.0.12

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.
Files changed (139) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/lib/spline/action_command.rb +21 -0
  4. data/lib/spline/install_command.rb +28 -0
  5. data/lib/spline/process_command.rb +20 -0
  6. data/lib/spline/spline_cli.rb +7 -19
  7. data/lib/spline/templates/action.tt +7 -0
  8. data/lib/spline/templates/my_first_action.tt +11 -0
  9. data/lib/spline/templates/my_process.tt +21 -0
  10. data/lib/spline/templates/my_second_action.tt +11 -0
  11. data/lib/spline/templates/process.tt +6 -0
  12. data/lib/spline/version.rb +1 -1
  13. data/spline.gemspec +0 -1
  14. metadata +9 -140
  15. data/vendor/bundle/ruby/2.1.0/bin/rake +0 -23
  16. data/vendor/bundle/ruby/2.1.0/bin/spline +0 -23
  17. data/vendor/bundle/ruby/2.1.0/build_info/rake-10.3.2.info +0 -1
  18. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.autotest +0 -7
  19. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.gemtest +0 -0
  20. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.rubocop.yml +0 -27
  21. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/.togglerc +0 -7
  22. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/CONTRIBUTING.rdoc +0 -34
  23. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/History.rdoc +0 -609
  24. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/MIT-LICENSE +0 -21
  25. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Manifest.txt +0 -162
  26. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/README.rdoc +0 -137
  27. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/Rakefile +0 -81
  28. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/bin/rake +0 -33
  29. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/alt_system.rb +0 -110
  30. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/application.rb +0 -783
  31. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/backtrace.rb +0 -23
  32. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/clean.rb +0 -76
  33. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cloneable.rb +0 -16
  34. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/.document +0 -0
  35. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/compositepublisher.rb +0 -21
  36. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/ftptools.rb +0 -137
  37. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/publisher.rb +0 -81
  38. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/rubyforgepublisher.rb +0 -18
  39. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sshpublisher.rb +0 -61
  40. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/contrib/sys.rb +0 -4
  41. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/cpu_counter.rb +0 -109
  42. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/default_loader.rb +0 -14
  43. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/dsl_definition.rb +0 -198
  44. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/early_time.rb +0 -21
  45. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/core.rb +0 -25
  46. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/module.rb +0 -1
  47. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/string.rb +0 -173
  48. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ext/time.rb +0 -15
  49. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_creation_task.rb +0 -24
  50. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_list.rb +0 -414
  51. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_task.rb +0 -46
  52. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils.rb +0 -116
  53. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/file_utils_ext.rb +0 -144
  54. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/gempackagetask.rb +0 -4
  55. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_chain.rb +0 -56
  56. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/invocation_exception_mixin.rb +0 -16
  57. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/linked_list.rb +0 -103
  58. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/loaders/makefile.rb +0 -40
  59. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/multi_task.rb +0 -13
  60. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/name_space.rb +0 -38
  61. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/packagetask.rb +0 -202
  62. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pathmap.rb +0 -3
  63. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/phony.rb +0 -15
  64. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/private_reader.rb +0 -20
  65. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/promise.rb +0 -99
  66. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/pseudo_status.rb +0 -29
  67. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_module.rb +0 -38
  68. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rake_test_loader.rb +0 -22
  69. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rdoctask.rb +0 -4
  70. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/ruby182_test_unit_fix.rb +0 -29
  71. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/rule_recursion_overflow_error.rb +0 -20
  72. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/runtest.rb +0 -27
  73. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/scope.rb +0 -42
  74. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task.rb +0 -383
  75. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_argument_error.rb +0 -7
  76. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_arguments.rb +0 -98
  77. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/task_manager.rb +0 -310
  78. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/tasklib.rb +0 -24
  79. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/testtask.rb +0 -212
  80. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_history_display.rb +0 -48
  81. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/thread_pool.rb +0 -164
  82. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/trace_output.rb +0 -22
  83. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/version.rb +0 -7
  84. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake/win32.rb +0 -56
  85. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/lib/rake.rb +0 -78
  86. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/publish.rake +0 -20
  87. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/rakelib/test_times.rake +0 -25
  88. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/file_creation.rb +0 -34
  89. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/helper.rb +0 -127
  90. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/rakefile_definitions.rb +0 -478
  91. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/support/ruby_runner.rb +0 -33
  92. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_private_reader.rb +0 -42
  93. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake.rb +0 -40
  94. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application.rb +0 -641
  95. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_application_options.rb +0 -466
  96. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_backtrace.rb +0 -119
  97. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_clean.rb +0 -55
  98. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_cpu_counter.rb +0 -50
  99. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_definitions.rb +0 -79
  100. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_directory_task.rb +0 -63
  101. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_dsl.rb +0 -40
  102. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_early_time.rb +0 -31
  103. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_extension.rb +0 -59
  104. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_creation_task.rb +0 -56
  105. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list.rb +0 -627
  106. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_list_path_map.rb +0 -8
  107. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_task.rb +0 -186
  108. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_file_utils.rb +0 -309
  109. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_ftp_file.rb +0 -74
  110. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_functional.rb +0 -482
  111. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_invocation_chain.rb +0 -64
  112. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_linked_list.rb +0 -84
  113. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_makefile_loader.rb +0 -46
  114. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_multi_task.rb +0 -58
  115. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_name_space.rb +0 -57
  116. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_package_task.rb +0 -79
  117. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map.rb +0 -168
  118. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_explode.rb +0 -34
  119. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_path_map_partial.rb +0 -18
  120. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_pseudo_status.rb +0 -21
  121. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rake_test_loader.rb +0 -20
  122. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_reduce_compat.rb +0 -26
  123. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_require.rb +0 -40
  124. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_rules.rb +0 -388
  125. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_scope.rb +0 -44
  126. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task.rb +0 -392
  127. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_argument_parsing.rb +0 -109
  128. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_arguments.rb +0 -127
  129. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_lib.rb +0 -9
  130. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager.rb +0 -178
  131. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_manager_argument_resolution.rb +0 -19
  132. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_task_with_arguments.rb +0 -171
  133. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_test_task.rb +0 -141
  134. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_thread_pool.rb +0 -142
  135. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_top_level_functions.rb +0 -71
  136. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_rake_win32.rb +0 -72
  137. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_thread_history_display.rb +0 -101
  138. data/vendor/bundle/ruby/2.1.0/gems/rake-10.3.2/test/test_trace_output.rb +0 -52
  139. data/vendor/bundle/ruby/2.1.0/specifications/rake-10.3.2.gemspec +0 -45
@@ -1,4 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- fail "ERROR: 'rake/gempackagetask' is obsolete and no longer supported. " +
4
- "Use 'rubygems/package_task' instead."
@@ -1,56 +0,0 @@
1
- module Rake
2
-
3
- # InvocationChain tracks the chain of task invocations to detect
4
- # circular dependencies.
5
- class InvocationChain < LinkedList
6
-
7
- # Is the invocation already in the chain?
8
- def member?(invocation)
9
- head == invocation || tail.member?(invocation)
10
- end
11
-
12
- # Append an invocation to the chain of invocations. It is an error
13
- # if the invocation already listed.
14
- def append(invocation)
15
- if member?(invocation)
16
- fail RuntimeError, "Circular dependency detected: #{to_s} => #{invocation}"
17
- end
18
- conj(invocation)
19
- end
20
-
21
- # Convert to string, ie: TOP => invocation => invocation
22
- def to_s
23
- "#{prefix}#{head}"
24
- end
25
-
26
- # Class level append.
27
- def self.append(invocation, chain)
28
- chain.append(invocation)
29
- end
30
-
31
- private
32
-
33
- def prefix
34
- "#{tail.to_s} => "
35
- end
36
-
37
- # Null object for an empty chain.
38
- class EmptyInvocationChain < LinkedList::EmptyLinkedList
39
- @parent = InvocationChain
40
-
41
- def member?(obj)
42
- false
43
- end
44
-
45
- def append(invocation)
46
- conj(invocation)
47
- end
48
-
49
- def to_s
50
- "TOP"
51
- end
52
- end
53
-
54
- EMPTY = EmptyInvocationChain.new
55
- end
56
- end
@@ -1,16 +0,0 @@
1
- module Rake
2
- module InvocationExceptionMixin
3
- # Return the invocation chain (list of Rake tasks) that were in
4
- # effect when this exception was detected by rake. May be null if
5
- # no tasks were active.
6
- def chain
7
- @rake_invocation_chain ||= nil
8
- end
9
-
10
- # Set the invocation chain in effect when this exception was
11
- # detected.
12
- def chain=(value)
13
- @rake_invocation_chain = value
14
- end
15
- end
16
- end
@@ -1,103 +0,0 @@
1
- module Rake
2
-
3
- # Polylithic linked list structure used to implement several data
4
- # structures in Rake.
5
- class LinkedList
6
- include Enumerable
7
-
8
- attr_reader :head, :tail
9
-
10
- def initialize(head, tail=EMPTY)
11
- @head = head
12
- @tail = tail
13
- end
14
-
15
- # Polymorphically add a new element to the head of a list. The
16
- # type of head node will be the same list type as the tail.
17
- def conj(item)
18
- self.class.cons(item, self)
19
- end
20
-
21
- # Is the list empty?
22
- def empty?
23
- false
24
- end
25
-
26
- # Lists are structurally equivalent.
27
- def ==(other)
28
- current = self
29
- while ! current.empty? && ! other.empty?
30
- return false if current.head != other.head
31
- current = current.tail
32
- other = other.tail
33
- end
34
- current.empty? && other.empty?
35
- end
36
-
37
- # Convert to string: LL(item, item...)
38
- def to_s
39
- items = map { |item| item.to_s }.join(", ")
40
- "LL(#{items})"
41
- end
42
-
43
- # Same as +to_s+, but with inspected items.
44
- def inspect
45
- items = map { |item| item.inspect }.join(", ")
46
- "LL(#{items})"
47
- end
48
-
49
- # For each item in the list.
50
- def each
51
- current = self
52
- while ! current.empty?
53
- yield(current.head)
54
- current = current.tail
55
- end
56
- self
57
- end
58
-
59
- # Make a list out of the given arguments. This method is
60
- # polymorphic
61
- def self.make(*args)
62
- result = empty
63
- args.reverse_each do |item|
64
- result = cons(item, result)
65
- end
66
- result
67
- end
68
-
69
- # Cons a new head onto the tail list.
70
- def self.cons(head, tail)
71
- new(head, tail)
72
- end
73
-
74
- # The standard empty list class for the given LinkedList class.
75
- def self.empty
76
- self::EMPTY
77
- end
78
-
79
- # Represent an empty list, using the Null Object Pattern.
80
- #
81
- # When inheriting from the LinkedList class, you should implement
82
- # a type specific Empty class as well. Make sure you set the class
83
- # instance variable @parent to the associated list class (this
84
- # allows conj, cons and make to work polymorphically).
85
- class EmptyLinkedList < LinkedList
86
- @parent = LinkedList
87
-
88
- def initialize
89
- end
90
-
91
- def empty?
92
- true
93
- end
94
-
95
- def self.cons(head, tail)
96
- @parent.cons(head, tail)
97
- end
98
- end
99
-
100
- EMPTY = EmptyLinkedList.new
101
- end
102
-
103
- end
@@ -1,40 +0,0 @@
1
- module Rake
2
-
3
- # Makefile loader to be used with the import file loader.
4
- class MakefileLoader
5
- include Rake::DSL
6
-
7
- SPACE_MARK = "\0"
8
-
9
- # Load the makefile dependencies in +fn+.
10
- def load(fn)
11
- lines = File.read fn
12
- lines.gsub!(/\\ /, SPACE_MARK)
13
- lines.gsub!(/#[^\n]*\n/m, "")
14
- lines.gsub!(/\\\n/, ' ')
15
- lines.each_line do |line|
16
- process_line(line)
17
- end
18
- end
19
-
20
- private
21
-
22
- # Process one logical line of makefile data.
23
- def process_line(line)
24
- file_tasks, args = line.split(':', 2)
25
- return if args.nil?
26
- dependents = args.split.map { |d| respace(d) }
27
- file_tasks.scan(/\S+/) do |file_task|
28
- file_task = respace(file_task)
29
- file file_task => dependents
30
- end
31
- end
32
-
33
- def respace(str)
34
- str.tr SPACE_MARK, ' '
35
- end
36
- end
37
-
38
- # Install the handler
39
- Rake.application.add_loader('mf', MakefileLoader.new)
40
- end
@@ -1,13 +0,0 @@
1
- module Rake
2
-
3
- # Same as a regular task, but the immediate prerequisites are done in
4
- # parallel using Ruby threads.
5
- #
6
- class MultiTask < Task
7
- private
8
- def invoke_prerequisites(task_args, invocation_chain) # :nodoc:
9
- invoke_prerequisites_concurrently(task_args, invocation_chain)
10
- end
11
- end
12
-
13
- end
@@ -1,38 +0,0 @@
1
- ##
2
- # The NameSpace class will lookup task names in the scope defined by a
3
- # +namespace+ command.
4
-
5
- class Rake::NameSpace
6
-
7
- ##
8
- # Create a namespace lookup object using the given task manager
9
- # and the list of scopes.
10
-
11
- def initialize(task_manager, scope_list)
12
- @task_manager = task_manager
13
- @scope = scope_list.dup
14
- end
15
-
16
- ##
17
- # Lookup a task named +name+ in the namespace.
18
-
19
- def [](name)
20
- @task_manager.lookup(name, @scope)
21
- end
22
-
23
- ##
24
- # The scope of the namespace (a LinkedList)
25
-
26
- def scope
27
- @scope.dup
28
- end
29
-
30
- ##
31
- # Return the list of tasks defined in this and nested namespaces.
32
-
33
- def tasks
34
- @task_manager.tasks_in_scope(@scope)
35
- end
36
-
37
- end
38
-
@@ -1,202 +0,0 @@
1
- # Define a package task library to aid in the definition of
2
- # redistributable package files.
3
-
4
- require 'rake'
5
- require 'rake/tasklib'
6
-
7
- module Rake
8
-
9
- # Create a packaging task that will package the project into
10
- # distributable files (e.g zip archive or tar files).
11
- #
12
- # The PackageTask will create the following targets:
13
- #
14
- # +:package+ ::
15
- # Create all the requested package files.
16
- #
17
- # +:clobber_package+ ::
18
- # Delete all the package files. This target is automatically
19
- # added to the main clobber target.
20
- #
21
- # +:repackage+ ::
22
- # Rebuild the package files from scratch, even if they are not out
23
- # of date.
24
- #
25
- # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tgz"</tt> ::
26
- # Create a gzipped tar package (if <em>need_tar</em> is true).
27
- #
28
- # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.gz"</tt> ::
29
- # Create a gzipped tar package (if <em>need_tar_gz</em> is true).
30
- #
31
- # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.tar.bz2"</tt> ::
32
- # Create a bzip2'd tar package (if <em>need_tar_bz2</em> is true).
33
- #
34
- # <tt>"<em>package_dir</em>/<em>name</em>-<em>version</em>.zip"</tt> ::
35
- # Create a zip package archive (if <em>need_zip</em> is true).
36
- #
37
- # Example:
38
- #
39
- # Rake::PackageTask.new("rake", "1.2.3") do |p|
40
- # p.need_tar = true
41
- # p.package_files.include("lib/**/*.rb")
42
- # end
43
- #
44
- class PackageTask < TaskLib
45
- # Name of the package (from the GEM Spec).
46
- attr_accessor :name
47
-
48
- # Version of the package (e.g. '1.3.2').
49
- attr_accessor :version
50
-
51
- # Directory used to store the package files (default is 'pkg').
52
- attr_accessor :package_dir
53
-
54
- # True if a gzipped tar file (tgz) should be produced (default is
55
- # false).
56
- attr_accessor :need_tar
57
-
58
- # True if a gzipped tar file (tar.gz) should be produced (default
59
- # is false).
60
- attr_accessor :need_tar_gz
61
-
62
- # True if a bzip2'd tar file (tar.bz2) should be produced (default
63
- # is false).
64
- attr_accessor :need_tar_bz2
65
-
66
- # True if a zip file should be produced (default is false)
67
- attr_accessor :need_zip
68
-
69
- # List of files to be included in the package.
70
- attr_accessor :package_files
71
-
72
- # Tar command for gzipped or bzip2ed archives. The default is 'tar'.
73
- attr_accessor :tar_command
74
-
75
- # Zip command for zipped archives. The default is 'zip'.
76
- attr_accessor :zip_command
77
-
78
- # Create a Package Task with the given name and version. Use +:noversion+
79
- # as the version to build a package without a version or to provide a
80
- # fully-versioned package name.
81
-
82
- def initialize(name=nil, version=nil)
83
- init(name, version)
84
- yield self if block_given?
85
- define unless name.nil?
86
- end
87
-
88
- # Initialization that bypasses the "yield self" and "define" step.
89
- def init(name, version)
90
- @name = name
91
- @version = version
92
- @package_files = Rake::FileList.new
93
- @package_dir = 'pkg'
94
- @need_tar = false
95
- @need_tar_gz = false
96
- @need_tar_bz2 = false
97
- @need_zip = false
98
- @tar_command = 'tar'
99
- @zip_command = 'zip'
100
- end
101
-
102
- # Create the tasks defined by this task library.
103
- def define
104
- fail "Version required (or :noversion)" if @version.nil?
105
- @version = nil if :noversion == @version
106
-
107
- desc "Build all the packages"
108
- task :package
109
-
110
- desc "Force a rebuild of the package files"
111
- task :repackage => [:clobber_package, :package]
112
-
113
- desc "Remove package products"
114
- task :clobber_package do
115
- rm_r package_dir rescue nil
116
- end
117
-
118
- task :clobber => [:clobber_package]
119
-
120
- [
121
- [need_tar, tgz_file, "z"],
122
- [need_tar_gz, tar_gz_file, "z"],
123
- [need_tar_bz2, tar_bz2_file, "j"]
124
- ].each do |(need, file, flag)|
125
- if need
126
- task :package => ["#{package_dir}/#{file}"]
127
- file "#{package_dir}/#{file}" =>
128
- [package_dir_path] + package_files do
129
- chdir(package_dir) do
130
- sh %{#{@tar_command} #{flag}cvf #{file} #{package_name}}
131
- end
132
- end
133
- end
134
- end
135
-
136
- if need_zip
137
- task :package => ["#{package_dir}/#{zip_file}"]
138
- file "#{package_dir}/#{zip_file}" =>
139
- [package_dir_path] + package_files do
140
- chdir(package_dir) do
141
- sh %{#{@zip_command} -r #{zip_file} #{package_name}}
142
- end
143
- end
144
- end
145
-
146
- directory package_dir
147
-
148
- file package_dir_path => @package_files do
149
- mkdir_p package_dir rescue nil
150
- @package_files.each do |fn|
151
- f = File.join(package_dir_path, fn)
152
- fdir = File.dirname(f)
153
- mkdir_p(fdir) unless File.exist?(fdir)
154
- if File.directory?(fn)
155
- mkdir_p(f)
156
- else
157
- rm_f f
158
- safe_ln(fn, f)
159
- end
160
- end
161
- end
162
- self
163
- end
164
-
165
- # The name of this package
166
-
167
- def package_name
168
- @version ? "#{@name}-#{@version}" : @name
169
- end
170
-
171
- # The directory this package will be built in
172
-
173
- def package_dir_path
174
- "#{package_dir}/#{package_name}"
175
- end
176
-
177
- # The package name with .tgz added
178
-
179
- def tgz_file
180
- "#{package_name}.tgz"
181
- end
182
-
183
- # The package name with .tar.gz added
184
-
185
- def tar_gz_file
186
- "#{package_name}.tar.gz"
187
- end
188
-
189
- # The package name with .tar.bz2 added
190
-
191
- def tar_bz2_file
192
- "#{package_name}.tar.bz2"
193
- end
194
-
195
- # The package name with .zip added
196
-
197
- def zip_file
198
- "#{package_name}.zip"
199
- end
200
- end
201
-
202
- end
@@ -1,3 +0,0 @@
1
- # TODO: Remove in Rake 11
2
-
3
- require 'rake/ext/string'
@@ -1,15 +0,0 @@
1
- # Defines a :phony task that you can use as a dependency. This allows
2
- # file-based tasks to use non-file-based tasks as prerequisites
3
- # without forcing them to rebuild.
4
- #
5
- # See FileTask#out_of_date? and Task#timestamp for more info.
6
-
7
- require 'rake'
8
-
9
- task :phony
10
-
11
- Rake::Task[:phony].tap do |task|
12
- def task.timestamp # :nodoc:
13
- Time.at 0
14
- end
15
- end
@@ -1,20 +0,0 @@
1
- module Rake
2
-
3
- # Include PrivateReader to use +private_reader+.
4
- module PrivateReader # :nodoc: all
5
-
6
- def self.included(base)
7
- base.extend(ClassMethods)
8
- end
9
-
10
- module ClassMethods
11
-
12
- # Declare a list of private accessors
13
- def private_reader(*names)
14
- attr_reader(*names)
15
- private(*names)
16
- end
17
- end
18
-
19
- end
20
- end
@@ -1,99 +0,0 @@
1
- module Rake
2
-
3
- # A Promise object represents a promise to do work (a chore) in the
4
- # future. The promise is created with a block and a list of
5
- # arguments for the block. Calling value will return the value of
6
- # the promised chore.
7
- #
8
- # Used by ThreadPool.
9
- #
10
- class Promise # :nodoc: all
11
- NOT_SET = Object.new.freeze # :nodoc:
12
-
13
- attr_accessor :recorder
14
-
15
- # Create a promise to do the chore specified by the block.
16
- def initialize(args, &block)
17
- @mutex = Mutex.new
18
- @result = NOT_SET
19
- @error = NOT_SET
20
- @args = args
21
- @block = block
22
- end
23
-
24
- # Return the value of this promise.
25
- #
26
- # If the promised chore is not yet complete, then do the work
27
- # synchronously. We will wait.
28
- def value
29
- unless complete?
30
- stat :sleeping_on, :item_id => object_id
31
- @mutex.synchronize do
32
- stat :has_lock_on, :item_id => object_id
33
- chore
34
- stat :releasing_lock_on, :item_id => object_id
35
- end
36
- end
37
- error? ? raise(@error) : @result
38
- end
39
-
40
- # If no one else is working this promise, go ahead and do the chore.
41
- def work
42
- stat :attempting_lock_on, :item_id => object_id
43
- if @mutex.try_lock
44
- stat :has_lock_on, :item_id => object_id
45
- chore
46
- stat :releasing_lock_on, :item_id => object_id
47
- @mutex.unlock
48
- else
49
- stat :bailed_on, :item_id => object_id
50
- end
51
- end
52
-
53
- private
54
-
55
- # Perform the chore promised
56
- def chore
57
- if complete?
58
- stat :found_completed, :item_id => object_id
59
- return
60
- end
61
- stat :will_execute, :item_id => object_id
62
- begin
63
- @result = @block.call(*@args)
64
- rescue Exception => e
65
- @error = e
66
- end
67
- stat :did_execute, :item_id => object_id
68
- discard
69
- end
70
-
71
- # Do we have a result for the promise
72
- def result?
73
- ! @result.equal?(NOT_SET)
74
- end
75
-
76
- # Did the promise throw an error
77
- def error?
78
- ! @error.equal?(NOT_SET)
79
- end
80
-
81
- # Are we done with the promise
82
- def complete?
83
- result? || error?
84
- end
85
-
86
- # free up these items for the GC
87
- def discard
88
- @args = nil
89
- @block = nil
90
- end
91
-
92
- # Record execution statistics if there is a recorder
93
- def stat(*args)
94
- @recorder.call(*args) if @recorder
95
- end
96
-
97
- end
98
-
99
- end
@@ -1,29 +0,0 @@
1
- module Rake
2
-
3
- ##
4
- # Exit status class for times the system just gives us a nil.
5
- class PseudoStatus # :nodoc: all
6
- attr_reader :exitstatus
7
-
8
- def initialize(code=0)
9
- @exitstatus = code
10
- end
11
-
12
- def to_i
13
- @exitstatus << 8
14
- end
15
-
16
- def >>(n)
17
- to_i >> n
18
- end
19
-
20
- def stopped?
21
- false
22
- end
23
-
24
- def exited?
25
- true
26
- end
27
- end
28
-
29
- end
@@ -1,38 +0,0 @@
1
- require 'rake/application'
2
-
3
- module Rake
4
-
5
- class << self
6
- # Current Rake Application
7
- def application
8
- @application ||= Rake::Application.new
9
- end
10
-
11
- # Set the current Rake application object.
12
- def application=(app)
13
- @application = app
14
- end
15
-
16
- def suggested_thread_count # :nodoc:
17
- @cpu_count ||= Rake::CpuCounter.count
18
- @cpu_count + 4
19
- end
20
-
21
- # Return the original directory where the Rake application was started.
22
- def original_dir
23
- application.original_dir
24
- end
25
-
26
- # Load a rakefile.
27
- def load_rakefile(path)
28
- load(path)
29
- end
30
-
31
- # Add files to the rakelib list
32
- def add_rakelib(*files)
33
- application.options.rakelib ||= []
34
- application.options.rakelib.concat(files)
35
- end
36
- end
37
-
38
- end