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,198 +0,0 @@
1
- # Rake DSL functions.
2
- require 'rake/file_utils_ext'
3
-
4
- module Rake
5
-
6
- ##
7
- # DSL is a module that provides #task, #desc, #namespace, etc. Use this
8
- # when you'd like to use rake outside the top level scope.
9
- #
10
- # For a Rakefile you run from the comamnd line this module is automatically
11
- # included.
12
-
13
- module DSL
14
-
15
- #--
16
- # Include the FileUtils file manipulation functions in the top
17
- # level module, but mark them private so that they don't
18
- # unintentionally define methods on other objects.
19
- #++
20
-
21
- include FileUtilsExt
22
- private(*FileUtils.instance_methods(false))
23
- private(*FileUtilsExt.instance_methods(false))
24
-
25
- private
26
-
27
- # :call-seq:
28
- # task task_name
29
- # task task_name: dependencies
30
- # task task_name, arguments => dependencies
31
- # task task_name, argument[, argument ...], :needs: dependencies
32
- #
33
- # Declare a basic task. The +task_name+ is always the first argument. If
34
- # the task name contains a ":" it is defined in that namespace.
35
- #
36
- # The +dependencies+ may be a single task name or an Array of task names.
37
- # The +argument+ (a single name) or +arguments+ (an Array of names) define
38
- # the arguments provided to the task.
39
- #
40
- # The task, argument and dependency names may be either symbols or
41
- # strings.
42
- #
43
- # A task with a single dependency:
44
- #
45
- # task clobber: %w[clean] do
46
- # rm_rf "html"
47
- # end
48
- #
49
- # A task with an argument and a dependency:
50
- #
51
- # task :package, [:version] => :test do |t, args|
52
- # # ...
53
- # end
54
- #
55
- # To invoke this task from the command line:
56
- #
57
- # $ rake package[1.2.3]
58
- #
59
- # Alternate definition:
60
- #
61
- # task :package, :version, needs: :test do |t, args|
62
- # # ...
63
- # end
64
- #
65
- def task(*args, &block) # :doc:
66
- Rake::Task.define_task(*args, &block)
67
- end
68
-
69
- # Declare a file task.
70
- #
71
- # Example:
72
- # file "config.cfg" => ["config.template"] do
73
- # open("config.cfg", "w") do |outfile|
74
- # open("config.template") do |infile|
75
- # while line = infile.gets
76
- # outfile.puts line
77
- # end
78
- # end
79
- # end
80
- # end
81
- #
82
- def file(*args, &block) # :doc:
83
- Rake::FileTask.define_task(*args, &block)
84
- end
85
-
86
- # Declare a file creation task.
87
- # (Mainly used for the directory command).
88
- def file_create(*args, &block)
89
- Rake::FileCreationTask.define_task(*args, &block)
90
- end
91
-
92
- # Declare a set of files tasks to create the given directories on
93
- # demand.
94
- #
95
- # Example:
96
- # directory "testdata/doc"
97
- #
98
- def directory(*args, &block) # :doc:
99
- result = file_create(*args, &block)
100
- dir, _ = *Rake.application.resolve_args(args)
101
- Rake.each_dir_parent(dir) do |d|
102
- file_create d do |t|
103
- mkdir_p t.name unless File.exist?(t.name)
104
- end
105
- end
106
- result
107
- end
108
-
109
- # Declare a task that performs its prerequisites in
110
- # parallel. Multitasks does *not* guarantee that its prerequisites
111
- # will execute in any given order (which is obvious when you think
112
- # about it)
113
- #
114
- # Example:
115
- # multitask deploy: %w[deploy_gem deploy_rdoc]
116
- #
117
- def multitask(*args, &block) # :doc:
118
- Rake::MultiTask.define_task(*args, &block)
119
- end
120
-
121
- # Create a new rake namespace and use it for evaluating the given
122
- # block. Returns a NameSpace object that can be used to lookup
123
- # tasks defined in the namespace.
124
- #
125
- # Example:
126
- #
127
- # ns = namespace "nested" do
128
- # # the "nested:run" task
129
- # task :run
130
- # end
131
- # task_run = ns[:run] # find :run in the given namespace.
132
- #
133
- # Tasks can also be defined in a namespace by using a ":" in the task
134
- # name:
135
- #
136
- # task "nested:test" do
137
- # # ...
138
- # end
139
- #
140
- def namespace(name=nil, &block) # :doc:
141
- name = name.to_s if name.kind_of?(Symbol)
142
- name = name.to_str if name.respond_to?(:to_str)
143
- unless name.kind_of?(String) || name.nil?
144
- raise ArgumentError, "Expected a String or Symbol for a namespace name"
145
- end
146
- Rake.application.in_namespace(name, &block)
147
- end
148
-
149
- # Declare a rule for auto-tasks.
150
- #
151
- # Example:
152
- # rule '.o' => '.c' do |t|
153
- # sh %{cc -o #{t.name} #{t.source}}
154
- # end
155
- #
156
- def rule(*args, &block) # :doc:
157
- Rake::Task.create_rule(*args, &block)
158
- end
159
-
160
- # Describes the next rake task. Duplicate descriptions are discarded.
161
- #
162
- # Example:
163
- # desc "Run the Unit Tests"
164
- # task test: [:build]
165
- # # ... run tests
166
- # end
167
- #
168
- def desc(description) # :doc:
169
- Rake.application.last_description = description
170
- end
171
-
172
- # Import the partial Rakefiles +fn+. Imported files are loaded
173
- # _after_ the current file is completely loaded. This allows the
174
- # import statement to appear anywhere in the importing file, and yet
175
- # allowing the imported files to depend on objects defined in the
176
- # importing file.
177
- #
178
- # A common use of the import statement is to include files
179
- # containing dependency declarations.
180
- #
181
- # See also the --rakelibdir command line option.
182
- #
183
- # Example:
184
- # import ".depend", "my_rules"
185
- #
186
- def import(*fns) # :doc:
187
- fns.each do |fn|
188
- Rake.application.add_import(fn)
189
- end
190
- end
191
- end
192
- extend FileUtilsExt
193
- end
194
-
195
- # Extend the main object with the DSL commands. This allows top-level
196
- # calls to task, etc. to work from a Rakefile without polluting the
197
- # object inheritance tree.
198
- self.extend Rake::DSL
@@ -1,21 +0,0 @@
1
- module Rake
2
-
3
- # EarlyTime is a fake timestamp that occurs _before_ any other time value.
4
- class EarlyTime
5
- include Comparable
6
- include Singleton
7
-
8
- ##
9
- # The EarlyTime always comes before +other+!
10
-
11
- def <=>(other)
12
- -1
13
- end
14
-
15
- def to_s # :nodoc:
16
- "<EARLY TIME>"
17
- end
18
- end
19
-
20
- EARLY = EarlyTime.instance
21
- end
@@ -1,25 +0,0 @@
1
- class Module
2
- # Check for an existing method in the current class before extending. If
3
- # the method already exists, then a warning is printed and the extension is
4
- # not added. Otherwise the block is yielded and any definitions in the
5
- # block will take effect.
6
- #
7
- # Usage:
8
- #
9
- # class String
10
- # rake_extension("xyz") do
11
- # def xyz
12
- # ...
13
- # end
14
- # end
15
- # end
16
- #
17
- def rake_extension(method) # :nodoc:
18
- if method_defined?(method)
19
- $stderr.puts "WARNING: Possible conflict with Rake extension: " +
20
- "#{self}##{method} already exists"
21
- else
22
- yield
23
- end
24
- end
25
- end
@@ -1 +0,0 @@
1
- # TODO: remove in Rake 11
@@ -1,173 +0,0 @@
1
- require 'rake/ext/core'
2
-
3
- class String
4
-
5
- rake_extension("ext") do
6
- # Replace the file extension with +newext+. If there is no extension on
7
- # the string, append the new extension to the end. If the new extension
8
- # is not given, or is the empty string, remove any existing extension.
9
- #
10
- # +ext+ is a user added method for the String class.
11
- #
12
- # This String extension comes from Rake
13
- def ext(newext='')
14
- return self.dup if ['.', '..'].include? self
15
- newext = (newext =~ /^\./) ? newext : ("." + newext) if newext != ''
16
- self.chomp(File.extname(self)) << newext
17
- end
18
- end
19
-
20
- rake_extension("pathmap") do
21
- # Explode a path into individual components. Used by +pathmap+.
22
- #
23
- # This String extension comes from Rake
24
- def pathmap_explode
25
- head, tail = File.split(self)
26
- return [self] if head == self
27
- return [tail] if head == '.' || tail == '/'
28
- return [head, tail] if head == '/'
29
- return head.pathmap_explode + [tail]
30
- end
31
- protected :pathmap_explode
32
-
33
- # Extract a partial path from the path. Include +n+ directories from the
34
- # front end (left hand side) if +n+ is positive. Include |+n+|
35
- # directories from the back end (right hand side) if +n+ is negative.
36
- #
37
- # This String extension comes from Rake
38
- def pathmap_partial(n)
39
- dirs = File.dirname(self).pathmap_explode
40
- partial_dirs =
41
- if n > 0
42
- dirs[0...n]
43
- elsif n < 0
44
- dirs.reverse[0...-n].reverse
45
- else
46
- "."
47
- end
48
- File.join(partial_dirs)
49
- end
50
- protected :pathmap_partial
51
-
52
- # Preform the pathmap replacement operations on the given path. The
53
- # patterns take the form 'pat1,rep1;pat2,rep2...'.
54
- #
55
- # This String extension comes from Rake
56
- def pathmap_replace(patterns, &block)
57
- result = self
58
- patterns.split(';').each do |pair|
59
- pattern, replacement = pair.split(',')
60
- pattern = Regexp.new(pattern)
61
- if replacement == '*' && block_given?
62
- result = result.sub(pattern, &block)
63
- elsif replacement
64
- result = result.sub(pattern, replacement)
65
- else
66
- result = result.sub(pattern, '')
67
- end
68
- end
69
- result
70
- end
71
- protected :pathmap_replace
72
-
73
- # Map the path according to the given specification. The specification
74
- # controls the details of the mapping. The following special patterns are
75
- # recognized:
76
- #
77
- # <tt>%p</tt> :: The complete path.
78
- # <tt>%f</tt> :: The base file name of the path, with its file extension,
79
- # but without any directories.
80
- # <tt>%n</tt> :: The file name of the path without its file extension.
81
- # <tt>%d</tt> :: The directory list of the path.
82
- # <tt>%x</tt> :: The file extension of the path. An empty string if there
83
- # is no extension.
84
- # <tt>%X</tt> :: Everything *but* the file extension.
85
- # <tt>%s</tt> :: The alternate file separator if defined, otherwise use #
86
- # the standard file separator.
87
- # <tt>%%</tt> :: A percent sign.
88
- #
89
- # The <tt>%d</tt> specifier can also have a numeric prefix (e.g. '%2d').
90
- # If the number is positive, only return (up to) +n+ directories in the
91
- # path, starting from the left hand side. If +n+ is negative, return (up
92
- # to) +n+ directories from the right hand side of the path.
93
- #
94
- # Examples:
95
- #
96
- # 'a/b/c/d/file.txt'.pathmap("%2d") => 'a/b'
97
- # 'a/b/c/d/file.txt'.pathmap("%-2d") => 'c/d'
98
- #
99
- # Also the <tt>%d</tt>, <tt>%p</tt>, <tt>%f</tt>, <tt>%n</tt>,
100
- # <tt>%x</tt>, and <tt>%X</tt> operators can take a pattern/replacement
101
- # argument to perform simple string substitutions on a particular part of
102
- # the path. The pattern and replacement are separated by a comma and are
103
- # enclosed by curly braces. The replacement spec comes after the %
104
- # character but before the operator letter. (e.g. "%{old,new}d").
105
- # Multiple replacement specs should be separated by semi-colons (e.g.
106
- # "%{old,new;src,bin}d").
107
- #
108
- # Regular expressions may be used for the pattern, and back refs may be
109
- # used in the replacement text. Curly braces, commas and semi-colons are
110
- # excluded from both the pattern and replacement text (let's keep parsing
111
- # reasonable).
112
- #
113
- # For example:
114
- #
115
- # "src/org/onestepback/proj/A.java".pathmap("%{^src,class}X.class")
116
- #
117
- # returns:
118
- #
119
- # "class/org/onestepback/proj/A.class"
120
- #
121
- # If the replacement text is '*', then a block may be provided to perform
122
- # some arbitrary calculation for the replacement.
123
- #
124
- # For example:
125
- #
126
- # "/path/to/file.TXT".pathmap("%X%{.*,*}x") { |ext|
127
- # ext.downcase
128
- # }
129
- #
130
- # Returns:
131
- #
132
- # "/path/to/file.txt"
133
- #
134
- # This String extension comes from Rake
135
- def pathmap(spec=nil, &block)
136
- return self if spec.nil?
137
- result = ''
138
- spec.scan(/%\{[^}]*\}-?\d*[sdpfnxX%]|%-?\d+d|%.|[^%]+/) do |frag|
139
- case frag
140
- when '%f'
141
- result << File.basename(self)
142
- when '%n'
143
- result << File.basename(self).ext
144
- when '%d'
145
- result << File.dirname(self)
146
- when '%x'
147
- result << File.extname(self)
148
- when '%X'
149
- result << self.ext
150
- when '%p'
151
- result << self
152
- when '%s'
153
- result << (File::ALT_SEPARATOR || File::SEPARATOR)
154
- when '%-'
155
- # do nothing
156
- when '%%'
157
- result << "%"
158
- when /%(-?\d+)d/
159
- result << pathmap_partial($1.to_i)
160
- when /^%\{([^}]*)\}(\d*[dpfnxX])/
161
- patterns, operator = $1, $2
162
- result << pathmap('%' + operator).pathmap_replace(patterns, &block)
163
- when /^%/
164
- fail ArgumentError, "Unknown pathmap specifier #{frag} in '#{spec}'"
165
- else
166
- result << frag
167
- end
168
- end
169
- result
170
- end
171
- end
172
-
173
- end
@@ -1,15 +0,0 @@
1
- #--
2
- # Extensions to time to allow comparisons with an early time class.
3
-
4
- require 'rake/early_time'
5
-
6
- class Time # :nodoc: all
7
- alias rake_original_time_compare :<=>
8
- def <=>(other)
9
- if Rake::EarlyTime === other
10
- - other.<=>(self)
11
- else
12
- rake_original_time_compare(other)
13
- end
14
- end
15
- end
@@ -1,24 +0,0 @@
1
- require 'rake/file_task'
2
- require 'rake/early_time'
3
-
4
- module Rake
5
-
6
- # A FileCreationTask is a file task that when used as a dependency will be
7
- # needed if and only if the file has not been created. Once created, it is
8
- # not re-triggered if any of its dependencies are newer, nor does trigger
9
- # any rebuilds of tasks that depend on it whenever it is updated.
10
- #
11
- class FileCreationTask < FileTask
12
- # Is this file task needed? Yes if it doesn't exist.
13
- def needed?
14
- ! File.exist?(name)
15
- end
16
-
17
- # Time stamp for file creation task. This time stamp is earlier
18
- # than any other time stamp.
19
- def timestamp
20
- Rake::EARLY
21
- end
22
- end
23
-
24
- end