diy_rails 0.1.0 → 0.1.1

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 (150) hide show
  1. checksums.yaml +4 -4
  2. data/lib/diy_rails/version.rb +1 -1
  3. data/lib/diy_rails.rb +7 -3
  4. metadata +12 -151
  5. data/vendor/bundle/ruby/3.0.0/bin/rackup +0 -29
  6. data/vendor/bundle/ruby/3.0.0/bin/rake +0 -29
  7. data/vendor/bundle/ruby/3.0.0/cache/rack-2.2.4.gem +0 -0
  8. data/vendor/bundle/ruby/3.0.0/cache/rake-13.0.6.gem +0 -0
  9. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/CHANGELOG.md +0 -708
  10. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/CONTRIBUTING.md +0 -136
  11. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/MIT-LICENSE +0 -20
  12. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/README.rdoc +0 -306
  13. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/Rakefile +0 -130
  14. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/SPEC.rdoc +0 -288
  15. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/bin/rackup +0 -5
  16. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rack.png +0 -0
  17. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rack.svg +0 -150
  18. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rack_logo.svg +0 -164
  19. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rdoc.css +0 -412
  20. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/example/lobster.ru +0 -6
  21. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/example/protectedlobster.rb +0 -16
  22. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/example/protectedlobster.ru +0 -10
  23. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/abstract/handler.rb +0 -39
  24. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/abstract/request.rb +0 -47
  25. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/basic.rb +0 -61
  26. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/md5.rb +0 -131
  27. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/nonce.rb +0 -54
  28. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/params.rb +0 -54
  29. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/request.rb +0 -43
  30. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/body_proxy.rb +0 -45
  31. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/builder.rb +0 -257
  32. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/cascade.rb +0 -68
  33. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/chunked.rb +0 -117
  34. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/common_logger.rb +0 -83
  35. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/conditional_get.rb +0 -83
  36. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/config.rb +0 -22
  37. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/content_length.rb +0 -38
  38. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/content_type.rb +0 -30
  39. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/core_ext/regexp.rb +0 -14
  40. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/deflater.rb +0 -144
  41. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/directory.rb +0 -199
  42. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/etag.rb +0 -77
  43. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/events.rb +0 -153
  44. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/file.rb +0 -7
  45. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/files.rb +0 -218
  46. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/cgi.rb +0 -59
  47. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/fastcgi.rb +0 -100
  48. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/lsws.rb +0 -61
  49. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/scgi.rb +0 -71
  50. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/thin.rb +0 -36
  51. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/webrick.rb +0 -129
  52. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler.rb +0 -104
  53. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/head.rb +0 -25
  54. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/lint.rb +0 -806
  55. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/lobster.rb +0 -70
  56. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/lock.rb +0 -32
  57. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/logger.rb +0 -20
  58. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/media_type.rb +0 -43
  59. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/method_override.rb +0 -52
  60. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/mime.rb +0 -685
  61. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/mock.rb +0 -273
  62. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart/generator.rb +0 -97
  63. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart/parser.rb +0 -365
  64. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart/uploaded_file.rb +0 -41
  65. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart.rb +0 -64
  66. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/null_logger.rb +0 -39
  67. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/query_parser.rb +0 -221
  68. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/recursive.rb +0 -64
  69. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/reloader.rb +0 -114
  70. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/request.rb +0 -659
  71. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/response.rb +0 -318
  72. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/rewindable_input.rb +0 -94
  73. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/runtime.rb +0 -34
  74. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/sendfile.rb +0 -162
  75. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb +0 -466
  76. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/abstract/id.rb +0 -523
  77. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/cookie.rb +0 -203
  78. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/memcache.rb +0 -10
  79. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/pool.rb +0 -85
  80. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/show_exceptions.rb +0 -390
  81. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/show_status.rb +0 -113
  82. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/static.rb +0 -187
  83. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/tempfile_reaper.rb +0 -22
  84. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/urlmap.rb +0 -97
  85. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/utils.rb +0 -616
  86. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/version.rb +0 -29
  87. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack.rb +0 -141
  88. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/rack.gemspec +0 -46
  89. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/History.rdoc +0 -2403
  90. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/MIT-LICENSE +0 -21
  91. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/README.rdoc +0 -155
  92. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/command_line_usage.rdoc +0 -158
  93. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/Rakefile1 +0 -38
  94. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/Rakefile2 +0 -35
  95. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/a.c +0 -6
  96. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/b.c +0 -6
  97. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/main.c +0 -11
  98. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/glossary.rdoc +0 -42
  99. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/jamis.rb +0 -592
  100. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/proto_rake.rdoc +0 -127
  101. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/rake.1 +0 -156
  102. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/rakefile.rdoc +0 -622
  103. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/rational.rdoc +0 -151
  104. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/exe/rake +0 -27
  105. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/application.rb +0 -831
  106. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/backtrace.rb +0 -24
  107. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/clean.rb +0 -78
  108. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/cloneable.rb +0 -17
  109. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/cpu_counter.rb +0 -107
  110. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/default_loader.rb +0 -15
  111. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/dsl_definition.rb +0 -195
  112. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/early_time.rb +0 -22
  113. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/ext/core.rb +0 -26
  114. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/ext/string.rb +0 -176
  115. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_creation_task.rb +0 -25
  116. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_list.rb +0 -435
  117. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_task.rb +0 -54
  118. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_utils.rb +0 -134
  119. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_utils_ext.rb +0 -134
  120. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/invocation_chain.rb +0 -57
  121. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/invocation_exception_mixin.rb +0 -17
  122. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/late_time.rb +0 -18
  123. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/linked_list.rb +0 -112
  124. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb +0 -54
  125. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/multi_task.rb +0 -14
  126. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/name_space.rb +0 -38
  127. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/packagetask.rb +0 -222
  128. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/phony.rb +0 -16
  129. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/private_reader.rb +0 -21
  130. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/promise.rb +0 -100
  131. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/pseudo_status.rb +0 -30
  132. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/rake_module.rb +0 -67
  133. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb +0 -27
  134. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/rule_recursion_overflow_error.rb +0 -20
  135. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/scope.rb +0 -43
  136. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task.rb +0 -434
  137. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task_argument_error.rb +0 -8
  138. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task_arguments.rb +0 -109
  139. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task_manager.rb +0 -331
  140. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/tasklib.rb +0 -12
  141. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/testtask.rb +0 -189
  142. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/thread_history_display.rb +0 -49
  143. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/thread_pool.rb +0 -163
  144. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/trace_output.rb +0 -23
  145. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/version.rb +0 -10
  146. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/win32.rb +0 -51
  147. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake.rb +0 -71
  148. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/rake.gemspec +0 -100
  149. data/vendor/bundle/ruby/3.0.0/specifications/rack-2.2.4.gemspec +0 -41
  150. data/vendor/bundle/ruby/3.0.0/specifications/rake-13.0.6.gemspec +0 -26
@@ -1,331 +0,0 @@
1
- # frozen_string_literal: true
2
- module Rake
3
-
4
- # The TaskManager module is a mixin for managing tasks.
5
- module TaskManager
6
- # Track the last comment made in the Rakefile.
7
- attr_accessor :last_description
8
-
9
- def initialize # :nodoc:
10
- super
11
- @tasks = Hash.new
12
- @rules = Array.new
13
- @scope = Scope.make
14
- @last_description = nil
15
- end
16
-
17
- def create_rule(*args, &block) # :nodoc:
18
- pattern, args, deps, order_only = resolve_args(args)
19
- pattern = Regexp.new(Regexp.quote(pattern) + "$") if String === pattern
20
- @rules << [pattern, args, deps, order_only, block]
21
- end
22
-
23
- def define_task(task_class, *args, &block) # :nodoc:
24
- task_name, arg_names, deps, order_only = resolve_args(args)
25
-
26
- original_scope = @scope
27
- if String === task_name and
28
- not task_class.ancestors.include? Rake::FileTask
29
- task_name, *definition_scope = *(task_name.split(":").reverse)
30
- @scope = Scope.make(*(definition_scope + @scope.to_a))
31
- end
32
-
33
- task_name = task_class.scope_name(@scope, task_name)
34
- task = intern(task_class, task_name)
35
- task.set_arg_names(arg_names) unless arg_names.empty?
36
- if Rake::TaskManager.record_task_metadata
37
- add_location(task)
38
- task.add_description(get_description(task))
39
- end
40
- task.enhance(Task.format_deps(deps), &block)
41
- task | order_only unless order_only.nil?
42
- task
43
- ensure
44
- @scope = original_scope
45
- end
46
-
47
- # Lookup a task. Return an existing task if found, otherwise
48
- # create a task of the current type.
49
- def intern(task_class, task_name)
50
- @tasks[task_name.to_s] ||= task_class.new(task_name, self)
51
- end
52
-
53
- # Find a matching task for +task_name+.
54
- def [](task_name, scopes=nil)
55
- task_name = task_name.to_s
56
- self.lookup(task_name, scopes) or
57
- enhance_with_matching_rule(task_name) or
58
- synthesize_file_task(task_name) or
59
- fail generate_message_for_undefined_task(task_name)
60
- end
61
-
62
- def generate_message_for_undefined_task(task_name)
63
- message = "Don't know how to build task '#{task_name}' "\
64
- "(See the list of available tasks with `#{Rake.application.name} --tasks`)"
65
- message + generate_did_you_mean_suggestions(task_name)
66
- end
67
-
68
- def generate_did_you_mean_suggestions(task_name)
69
- return "" unless defined?(::DidYouMean::SpellChecker)
70
-
71
- suggestions = ::DidYouMean::SpellChecker.new(dictionary: @tasks.keys).correct(task_name.to_s)
72
- if ::DidYouMean.respond_to?(:formatter)# did_you_mean v1.2.0 or later
73
- ::DidYouMean.formatter.message_for(suggestions)
74
- elsif defined?(::DidYouMean::Formatter) # before did_you_mean v1.2.0
75
- ::DidYouMean::Formatter.new(suggestions).to_s
76
- else
77
- ""
78
- end
79
- end
80
-
81
- def synthesize_file_task(task_name) # :nodoc:
82
- return nil unless File.exist?(task_name)
83
- define_task(Rake::FileTask, task_name)
84
- end
85
-
86
- # Resolve the arguments for a task/rule. Returns a tuple of
87
- # [task_name, arg_name_list, prerequisites, order_only_prerequisites].
88
- def resolve_args(args)
89
- if args.last.is_a?(Hash)
90
- deps = args.pop
91
- resolve_args_with_dependencies(args, deps)
92
- else
93
- resolve_args_without_dependencies(args)
94
- end
95
- end
96
-
97
- # Resolve task arguments for a task or rule when there are no
98
- # dependencies declared.
99
- #
100
- # The patterns recognized by this argument resolving function are:
101
- #
102
- # task :t
103
- # task :t, [:a]
104
- #
105
- def resolve_args_without_dependencies(args)
106
- task_name = args.shift
107
- if args.size == 1 && args.first.respond_to?(:to_ary)
108
- arg_names = args.first.to_ary
109
- else
110
- arg_names = args
111
- end
112
- [task_name, arg_names, [], nil]
113
- end
114
- private :resolve_args_without_dependencies
115
-
116
- # Resolve task arguments for a task or rule when there are
117
- # dependencies declared.
118
- #
119
- # The patterns recognized by this argument resolving function are:
120
- #
121
- # task :t, order_only: [:e]
122
- # task :t => [:d]
123
- # task :t => [:d], order_only: [:e]
124
- # task :t, [a] => [:d]
125
- # task :t, [a] => [:d], order_only: [:e]
126
- #
127
- def resolve_args_with_dependencies(args, hash) # :nodoc:
128
- fail "Task Argument Error" if
129
- hash.size != 1 &&
130
- (hash.size != 2 || !hash.key?(:order_only))
131
- order_only = hash.delete(:order_only)
132
- key, value = hash.map { |k, v| [k, v] }.first
133
- if args.empty?
134
- task_name = key
135
- arg_names = []
136
- deps = value || []
137
- else
138
- task_name = args.shift
139
- arg_names = key || args.shift|| []
140
- deps = value || []
141
- end
142
- deps = [deps] unless deps.respond_to?(:to_ary)
143
- [task_name, arg_names, deps, order_only]
144
- end
145
- private :resolve_args_with_dependencies
146
-
147
- # If a rule can be found that matches the task name, enhance the
148
- # task with the prerequisites and actions from the rule. Set the
149
- # source attribute of the task appropriately for the rule. Return
150
- # the enhanced task or nil of no rule was found.
151
- def enhance_with_matching_rule(task_name, level=0)
152
- fail Rake::RuleRecursionOverflowError,
153
- "Rule Recursion Too Deep" if level >= 16
154
- @rules.each do |pattern, args, extensions, order_only, block|
155
- if pattern && pattern.match(task_name)
156
- task = attempt_rule(task_name, pattern, args, extensions, block, level)
157
- task | order_only unless order_only.nil?
158
- return task if task
159
- end
160
- end
161
- nil
162
- rescue Rake::RuleRecursionOverflowError => ex
163
- ex.add_target(task_name)
164
- fail ex
165
- end
166
-
167
- # List of all defined tasks in this application.
168
- def tasks
169
- @tasks.values.sort_by { |t| t.name }
170
- end
171
-
172
- # List of all the tasks defined in the given scope (and its
173
- # sub-scopes).
174
- def tasks_in_scope(scope)
175
- prefix = scope.path
176
- tasks.select { |t|
177
- /^#{prefix}:/ =~ t.name
178
- }
179
- end
180
-
181
- # Clear all tasks in this application.
182
- def clear
183
- @tasks.clear
184
- @rules.clear
185
- end
186
-
187
- # Lookup a task, using scope and the scope hints in the task name.
188
- # This method performs straight lookups without trying to
189
- # synthesize file tasks or rules. Special scope names (e.g. '^')
190
- # are recognized. If no scope argument is supplied, use the
191
- # current scope. Return nil if the task cannot be found.
192
- def lookup(task_name, initial_scope=nil)
193
- initial_scope ||= @scope
194
- task_name = task_name.to_s
195
- if task_name =~ /^rake:/
196
- scopes = Scope.make
197
- task_name = task_name.sub(/^rake:/, "")
198
- elsif task_name =~ /^(\^+)/
199
- scopes = initial_scope.trim($1.size)
200
- task_name = task_name.sub(/^(\^+)/, "")
201
- else
202
- scopes = initial_scope
203
- end
204
- lookup_in_scope(task_name, scopes)
205
- end
206
-
207
- # Lookup the task name
208
- def lookup_in_scope(name, scope)
209
- loop do
210
- tn = scope.path_with_task_name(name)
211
- task = @tasks[tn]
212
- return task if task
213
- break if scope.empty?
214
- scope = scope.tail
215
- end
216
- nil
217
- end
218
- private :lookup_in_scope
219
-
220
- # Return the list of scope names currently active in the task
221
- # manager.
222
- def current_scope
223
- @scope
224
- end
225
-
226
- # Evaluate the block in a nested namespace named +name+. Create
227
- # an anonymous namespace if +name+ is nil.
228
- def in_namespace(name)
229
- name ||= generate_name
230
- @scope = Scope.new(name, @scope)
231
- ns = NameSpace.new(self, @scope)
232
- yield(ns)
233
- ns
234
- ensure
235
- @scope = @scope.tail
236
- end
237
-
238
- private
239
-
240
- # Add a location to the locations field of the given task.
241
- def add_location(task)
242
- loc = find_location
243
- task.locations << loc if loc
244
- task
245
- end
246
-
247
- # Find the location that called into the dsl layer.
248
- def find_location
249
- locations = caller
250
- i = 0
251
- while locations[i]
252
- return locations[i + 1] if locations[i] =~ /rake\/dsl_definition.rb/
253
- i += 1
254
- end
255
- nil
256
- end
257
-
258
- # Generate an anonymous namespace name.
259
- def generate_name
260
- @seed ||= 0
261
- @seed += 1
262
- "_anon_#{@seed}"
263
- end
264
-
265
- def trace_rule(level, message) # :nodoc:
266
- options.trace_output.puts "#{" " * level}#{message}" if
267
- Rake.application.options.trace_rules
268
- end
269
-
270
- # Attempt to create a rule given the list of prerequisites.
271
- def attempt_rule(task_name, task_pattern, args, extensions, block, level)
272
- sources = make_sources(task_name, task_pattern, extensions)
273
- prereqs = sources.map { |source|
274
- trace_rule level, "Attempting Rule #{task_name} => #{source}"
275
- if File.exist?(source) || Rake::Task.task_defined?(source)
276
- trace_rule level, "(#{task_name} => #{source} ... EXIST)"
277
- source
278
- elsif parent = enhance_with_matching_rule(source, level + 1)
279
- trace_rule level, "(#{task_name} => #{source} ... ENHANCE)"
280
- parent.name
281
- else
282
- trace_rule level, "(#{task_name} => #{source} ... FAIL)"
283
- return nil
284
- end
285
- }
286
- task = FileTask.define_task(task_name, { args => prereqs }, &block)
287
- task.sources = prereqs
288
- task
289
- end
290
-
291
- # Make a list of sources from the list of file name extensions /
292
- # translation procs.
293
- def make_sources(task_name, task_pattern, extensions)
294
- result = extensions.map { |ext|
295
- case ext
296
- when /%/
297
- task_name.pathmap(ext)
298
- when %r{/}
299
- ext
300
- when /^\./
301
- source = task_name.sub(task_pattern, ext)
302
- source == ext ? task_name.ext(ext) : source
303
- when String, Symbol
304
- ext.to_s
305
- when Proc, Method
306
- if ext.arity == 1
307
- ext.call(task_name)
308
- else
309
- ext.call
310
- end
311
- else
312
- fail "Don't know how to handle rule dependent: #{ext.inspect}"
313
- end
314
- }
315
- result.flatten
316
- end
317
-
318
- # Return the current description, clearing it in the process.
319
- def get_description(task)
320
- desc = @last_description
321
- @last_description = nil
322
- desc
323
- end
324
-
325
- class << self
326
- attr_accessor :record_task_metadata # :nodoc:
327
- TaskManager.record_task_metadata = false
328
- end
329
- end
330
-
331
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
- require "rake"
3
-
4
- module Rake
5
-
6
- # Base class for Task Libraries.
7
- class TaskLib
8
- include Cloneable
9
- include Rake::DSL
10
- end
11
-
12
- end
@@ -1,189 +0,0 @@
1
- # frozen_string_literal: true
2
- require "rake"
3
- require "rake/tasklib"
4
-
5
- module Rake
6
-
7
- # Create a task that runs a set of tests.
8
- #
9
- # Example:
10
- # require "rake/testtask"
11
- #
12
- # Rake::TestTask.new do |t|
13
- # t.libs << "test"
14
- # t.test_files = FileList['test/test*.rb']
15
- # t.verbose = true
16
- # end
17
- #
18
- # If rake is invoked with a "TEST=filename" command line option,
19
- # then the list of test files will be overridden to include only the
20
- # filename specified on the command line. This provides an easy way
21
- # to run just one test.
22
- #
23
- # If rake is invoked with a "TESTOPTS=options" command line option,
24
- # then the given options are passed to the test process after a
25
- # '--'. This allows Test::Unit options to be passed to the test
26
- # suite.
27
- #
28
- # Examples:
29
- #
30
- # rake test # run tests normally
31
- # rake test TEST=just_one_file.rb # run just one test file.
32
- # rake test TESTOPTS="-v" # run in verbose mode
33
- # rake test TESTOPTS="--runner=fox" # use the fox test runner
34
- #
35
- class TestTask < TaskLib
36
-
37
- # Name of test task. (default is :test)
38
- attr_accessor :name
39
-
40
- # List of directories added to $LOAD_PATH before running the
41
- # tests. (default is 'lib')
42
- attr_accessor :libs
43
-
44
- # True if verbose test output desired. (default is false)
45
- attr_accessor :verbose
46
-
47
- # Test options passed to the test suite. An explicit
48
- # TESTOPTS=opts on the command line will override this. (default
49
- # is NONE)
50
- attr_accessor :options
51
-
52
- # Request that the tests be run with the warning flag set.
53
- # E.g. warning=true implies "ruby -w" used to run the tests.
54
- # (default is true)
55
- attr_accessor :warning
56
-
57
- # Glob pattern to match test files. (default is 'test/test*.rb')
58
- attr_accessor :pattern
59
-
60
- # Style of test loader to use. Options are:
61
- #
62
- # * :rake -- Rake provided test loading script (default).
63
- # * :testrb -- Ruby provided test loading script.
64
- # * :direct -- Load tests using command line loader.
65
- #
66
- attr_accessor :loader
67
-
68
- # Array of command line options to pass to ruby when running test loader.
69
- attr_accessor :ruby_opts
70
-
71
- # Description of the test task. (default is 'Run tests')
72
- attr_accessor :description
73
-
74
- # Task prerequisites.
75
- attr_accessor :deps
76
-
77
- # Explicitly define the list of test files to be included in a
78
- # test. +list+ is expected to be an array of file names (a
79
- # FileList is acceptable). If both +pattern+ and +test_files+ are
80
- # used, then the list of test files is the union of the two.
81
- def test_files=(list)
82
- @test_files = list
83
- end
84
-
85
- # Create a testing task.
86
- def initialize(name=:test)
87
- @name = name
88
- @libs = ["lib"]
89
- @pattern = nil
90
- @options = nil
91
- @test_files = nil
92
- @verbose = false
93
- @warning = true
94
- @loader = :rake
95
- @ruby_opts = []
96
- @description = "Run tests" + (@name == :test ? "" : " for #{@name}")
97
- @deps = []
98
- if @name.is_a?(Hash)
99
- @deps = @name.values.first
100
- @name = @name.keys.first
101
- end
102
- yield self if block_given?
103
- @pattern = "test/test*.rb" if @pattern.nil? && @test_files.nil?
104
- define
105
- end
106
-
107
- # Create the tasks defined by this task lib.
108
- def define
109
- desc @description
110
- task @name => Array(deps) do
111
- FileUtilsExt.verbose(@verbose) do
112
- puts "Use TESTOPTS=\"--verbose\" to pass --verbose" \
113
- ", etc. to runners." if ARGV.include? "--verbose"
114
- args =
115
- "#{ruby_opts_string} #{run_code} " +
116
- "#{file_list_string} #{option_list}"
117
- ruby args do |ok, status|
118
- if !ok && status.respond_to?(:signaled?) && status.signaled?
119
- raise SignalException.new(status.termsig)
120
- elsif !ok
121
- status = "Command failed with status (#{status.exitstatus})"
122
- details = ": [ruby #{args}]"
123
- message =
124
- if Rake.application.options.trace or @verbose
125
- status + details
126
- else
127
- status
128
- end
129
-
130
- fail message
131
- end
132
- end
133
- end
134
- end
135
- self
136
- end
137
-
138
- def option_list # :nodoc:
139
- (ENV["TESTOPTS"] ||
140
- ENV["TESTOPT"] ||
141
- ENV["TEST_OPTS"] ||
142
- ENV["TEST_OPT"] ||
143
- @options ||
144
- "")
145
- end
146
-
147
- def ruby_opts_string # :nodoc:
148
- opts = @ruby_opts.dup
149
- opts.unshift("-I\"#{lib_path}\"") unless @libs.empty?
150
- opts.unshift("-w") if @warning
151
- opts.join(" ")
152
- end
153
-
154
- def lib_path # :nodoc:
155
- @libs.join(File::PATH_SEPARATOR)
156
- end
157
-
158
- def file_list_string # :nodoc:
159
- file_list.map { |fn| "\"#{fn}\"" }.join(" ")
160
- end
161
-
162
- def file_list # :nodoc:
163
- if ENV["TEST"]
164
- FileList[ENV["TEST"]]
165
- else
166
- result = []
167
- result += @test_files.to_a if @test_files
168
- result += FileList[@pattern].to_a if @pattern
169
- result
170
- end
171
- end
172
-
173
- def ruby_version # :nodoc:
174
- RUBY_VERSION
175
- end
176
-
177
- def run_code # :nodoc:
178
- case @loader
179
- when :direct
180
- "-e \"ARGV.each{|f| require f}\""
181
- when :testrb
182
- "-S testrb"
183
- when :rake
184
- "#{__dir__}/rake_test_loader.rb"
185
- end
186
- end
187
-
188
- end
189
- end
@@ -1,49 +0,0 @@
1
- # frozen_string_literal: true
2
- require "rake/private_reader"
3
-
4
- module Rake
5
-
6
- class ThreadHistoryDisplay # :nodoc: all
7
- include Rake::PrivateReader
8
-
9
- private_reader :stats, :items, :threads
10
-
11
- def initialize(stats)
12
- @stats = stats
13
- @items = { _seq_: 1 }
14
- @threads = { _seq_: "A" }
15
- end
16
-
17
- def show
18
- puts "Job History:"
19
- stats.each do |stat|
20
- stat[:data] ||= {}
21
- rename(stat, :thread, threads)
22
- rename(stat[:data], :item_id, items)
23
- rename(stat[:data], :new_thread, threads)
24
- rename(stat[:data], :deleted_thread, threads)
25
- printf("%8d %2s %-20s %s\n",
26
- (stat[:time] * 1_000_000).round,
27
- stat[:thread],
28
- stat[:event],
29
- stat[:data].map do |k, v| "#{k}:#{v}" end.join(" "))
30
- end
31
- end
32
-
33
- private
34
-
35
- def rename(hash, key, renames)
36
- if hash && hash[key]
37
- original = hash[key]
38
- value = renames[original]
39
- unless value
40
- value = renames[:_seq_]
41
- renames[:_seq_] = renames[:_seq_].succ
42
- renames[original] = value
43
- end
44
- hash[key] = value
45
- end
46
- end
47
- end
48
-
49
- end