spline 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
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