diy_rails 0.1.0 → 0.2.0

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +5 -2
  3. data/lib/diy_rails/array.rb +5 -0
  4. data/lib/diy_rails/routing.rb +10 -0
  5. data/lib/diy_rails/version.rb +1 -1
  6. data/lib/diy_rails.rb +25 -3
  7. metadata +28 -151
  8. data/vendor/bundle/ruby/3.0.0/bin/rackup +0 -29
  9. data/vendor/bundle/ruby/3.0.0/bin/rake +0 -29
  10. data/vendor/bundle/ruby/3.0.0/cache/rack-2.2.4.gem +0 -0
  11. data/vendor/bundle/ruby/3.0.0/cache/rake-13.0.6.gem +0 -0
  12. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/CHANGELOG.md +0 -708
  13. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/CONTRIBUTING.md +0 -136
  14. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/MIT-LICENSE +0 -20
  15. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/README.rdoc +0 -306
  16. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/Rakefile +0 -130
  17. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/SPEC.rdoc +0 -288
  18. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/bin/rackup +0 -5
  19. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rack.png +0 -0
  20. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rack.svg +0 -150
  21. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rack_logo.svg +0 -164
  22. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/contrib/rdoc.css +0 -412
  23. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/example/lobster.ru +0 -6
  24. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/example/protectedlobster.rb +0 -16
  25. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/example/protectedlobster.ru +0 -10
  26. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/abstract/handler.rb +0 -39
  27. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/abstract/request.rb +0 -47
  28. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/basic.rb +0 -61
  29. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/md5.rb +0 -131
  30. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/nonce.rb +0 -54
  31. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/params.rb +0 -54
  32. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/auth/digest/request.rb +0 -43
  33. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/body_proxy.rb +0 -45
  34. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/builder.rb +0 -257
  35. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/cascade.rb +0 -68
  36. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/chunked.rb +0 -117
  37. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/common_logger.rb +0 -83
  38. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/conditional_get.rb +0 -83
  39. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/config.rb +0 -22
  40. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/content_length.rb +0 -38
  41. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/content_type.rb +0 -30
  42. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/core_ext/regexp.rb +0 -14
  43. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/deflater.rb +0 -144
  44. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/directory.rb +0 -199
  45. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/etag.rb +0 -77
  46. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/events.rb +0 -153
  47. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/file.rb +0 -7
  48. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/files.rb +0 -218
  49. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/cgi.rb +0 -59
  50. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/fastcgi.rb +0 -100
  51. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/lsws.rb +0 -61
  52. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/scgi.rb +0 -71
  53. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/thin.rb +0 -36
  54. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler/webrick.rb +0 -129
  55. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/handler.rb +0 -104
  56. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/head.rb +0 -25
  57. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/lint.rb +0 -806
  58. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/lobster.rb +0 -70
  59. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/lock.rb +0 -32
  60. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/logger.rb +0 -20
  61. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/media_type.rb +0 -43
  62. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/method_override.rb +0 -52
  63. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/mime.rb +0 -685
  64. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/mock.rb +0 -273
  65. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart/generator.rb +0 -97
  66. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart/parser.rb +0 -365
  67. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart/uploaded_file.rb +0 -41
  68. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/multipart.rb +0 -64
  69. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/null_logger.rb +0 -39
  70. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/query_parser.rb +0 -221
  71. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/recursive.rb +0 -64
  72. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/reloader.rb +0 -114
  73. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/request.rb +0 -659
  74. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/response.rb +0 -318
  75. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/rewindable_input.rb +0 -94
  76. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/runtime.rb +0 -34
  77. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/sendfile.rb +0 -162
  78. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/server.rb +0 -466
  79. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/abstract/id.rb +0 -523
  80. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/cookie.rb +0 -203
  81. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/memcache.rb +0 -10
  82. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/session/pool.rb +0 -85
  83. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/show_exceptions.rb +0 -390
  84. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/show_status.rb +0 -113
  85. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/static.rb +0 -187
  86. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/tempfile_reaper.rb +0 -22
  87. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/urlmap.rb +0 -97
  88. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/utils.rb +0 -616
  89. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack/version.rb +0 -29
  90. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/lib/rack.rb +0 -141
  91. data/vendor/bundle/ruby/3.0.0/gems/rack-2.2.4/rack.gemspec +0 -46
  92. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/History.rdoc +0 -2403
  93. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/MIT-LICENSE +0 -21
  94. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/README.rdoc +0 -155
  95. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/command_line_usage.rdoc +0 -158
  96. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/Rakefile1 +0 -38
  97. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/Rakefile2 +0 -35
  98. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/a.c +0 -6
  99. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/b.c +0 -6
  100. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/example/main.c +0 -11
  101. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/glossary.rdoc +0 -42
  102. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/jamis.rb +0 -592
  103. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/proto_rake.rdoc +0 -127
  104. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/rake.1 +0 -156
  105. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/rakefile.rdoc +0 -622
  106. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/doc/rational.rdoc +0 -151
  107. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/exe/rake +0 -27
  108. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/application.rb +0 -831
  109. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/backtrace.rb +0 -24
  110. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/clean.rb +0 -78
  111. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/cloneable.rb +0 -17
  112. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/cpu_counter.rb +0 -107
  113. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/default_loader.rb +0 -15
  114. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/dsl_definition.rb +0 -195
  115. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/early_time.rb +0 -22
  116. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/ext/core.rb +0 -26
  117. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/ext/string.rb +0 -176
  118. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_creation_task.rb +0 -25
  119. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_list.rb +0 -435
  120. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_task.rb +0 -54
  121. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_utils.rb +0 -134
  122. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/file_utils_ext.rb +0 -134
  123. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/invocation_chain.rb +0 -57
  124. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/invocation_exception_mixin.rb +0 -17
  125. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/late_time.rb +0 -18
  126. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/linked_list.rb +0 -112
  127. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/loaders/makefile.rb +0 -54
  128. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/multi_task.rb +0 -14
  129. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/name_space.rb +0 -38
  130. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/packagetask.rb +0 -222
  131. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/phony.rb +0 -16
  132. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/private_reader.rb +0 -21
  133. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/promise.rb +0 -100
  134. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/pseudo_status.rb +0 -30
  135. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/rake_module.rb +0 -67
  136. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/rake_test_loader.rb +0 -27
  137. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/rule_recursion_overflow_error.rb +0 -20
  138. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/scope.rb +0 -43
  139. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task.rb +0 -434
  140. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task_argument_error.rb +0 -8
  141. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task_arguments.rb +0 -109
  142. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/task_manager.rb +0 -331
  143. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/tasklib.rb +0 -12
  144. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/testtask.rb +0 -189
  145. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/thread_history_display.rb +0 -49
  146. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/thread_pool.rb +0 -163
  147. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/trace_output.rb +0 -23
  148. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/version.rb +0 -10
  149. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake/win32.rb +0 -51
  150. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/lib/rake.rb +0 -71
  151. data/vendor/bundle/ruby/3.0.0/gems/rake-13.0.6/rake.gemspec +0 -100
  152. data/vendor/bundle/ruby/3.0.0/specifications/rack-2.2.4.gemspec +0 -41
  153. data/vendor/bundle/ruby/3.0.0/specifications/rake-13.0.6.gemspec +0 -26
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
- module Rake
3
- module Backtrace # :nodoc: all
4
- SYS_KEYS = RbConfig::CONFIG.keys.grep(/(?:[a-z]prefix|libdir)\z/)
5
- SYS_PATHS = RbConfig::CONFIG.values_at(*SYS_KEYS).uniq +
6
- [ File.join(File.dirname(__FILE__), "..") ]
7
-
8
- SUPPRESSED_PATHS = SYS_PATHS.
9
- map { |s| s.tr("\\", "/") }.
10
- map { |f| File.expand_path(f) }.
11
- reject { |s| s.nil? || s =~ /^ *$/ }
12
- SUPPRESSED_PATHS_RE = SUPPRESSED_PATHS.map { |f| Regexp.quote(f) }.join("|")
13
- SUPPRESSED_PATHS_RE << "|^org\\/jruby\\/\\w+\\.java" if
14
- Object.const_defined?(:RUBY_ENGINE) and RUBY_ENGINE == "jruby"
15
-
16
- SUPPRESS_PATTERN = %r!(\A(#{SUPPRESSED_PATHS_RE})|bin/rake:\d+)!i
17
-
18
- def self.collapse(backtrace)
19
- pattern = Rake.application.options.suppress_backtrace_pattern ||
20
- SUPPRESS_PATTERN
21
- backtrace.reject { |elem| elem =~ pattern }
22
- end
23
- end
24
- end
@@ -1,78 +0,0 @@
1
- # frozen_string_literal: true
2
- # The 'rake/clean' file defines two file lists (CLEAN and CLOBBER) and
3
- # two rake tasks (:clean and :clobber).
4
- #
5
- # [:clean] Clean up the project by deleting scratch files and backup
6
- # files. Add files to the CLEAN file list to have the :clean
7
- # target handle them.
8
- #
9
- # [:clobber] Clobber all generated and non-source files in a project.
10
- # The task depends on :clean, so all the clean files will
11
- # be deleted as well as files in the CLOBBER file list.
12
- # The intent of this task is to return a project to its
13
- # pristine, just unpacked state.
14
-
15
- require "rake"
16
-
17
- # :stopdoc:
18
-
19
- module Rake
20
- module Cleaner
21
- extend FileUtils
22
-
23
- module_function
24
-
25
- def cleanup_files(file_names)
26
- file_names.each do |file_name|
27
- cleanup(file_name)
28
- end
29
- end
30
-
31
- def cleanup(file_name, **opts)
32
- begin
33
- opts = { verbose: Rake.application.options.trace }.merge(opts)
34
- rm_r file_name, **opts
35
- rescue StandardError => ex
36
- puts "Failed to remove #{file_name}: #{ex}" unless file_already_gone?(file_name)
37
- end
38
- end
39
-
40
- def file_already_gone?(file_name)
41
- return false if File.exist?(file_name)
42
-
43
- path = file_name
44
- prev = nil
45
-
46
- while path = File.dirname(path)
47
- return false if cant_be_deleted?(path)
48
- break if [prev, "."].include?(path)
49
- prev = path
50
- end
51
- true
52
- end
53
- private_class_method :file_already_gone?
54
-
55
- def cant_be_deleted?(path_name)
56
- File.exist?(path_name) &&
57
- (!File.readable?(path_name) || !File.executable?(path_name))
58
- end
59
- private_class_method :cant_be_deleted?
60
- end
61
- end
62
-
63
- CLEAN = ::Rake::FileList["**/*~", "**/*.bak", "**/core"]
64
- CLEAN.clear_exclude.exclude { |fn|
65
- fn.pathmap("%f").downcase == "core" && File.directory?(fn)
66
- }
67
-
68
- desc "Remove any temporary products."
69
- task :clean do
70
- Rake::Cleaner.cleanup_files(CLEAN)
71
- end
72
-
73
- CLOBBER = ::Rake::FileList.new
74
-
75
- desc "Remove any generated files."
76
- task clobber: [:clean] do
77
- Rake::Cleaner.cleanup_files(CLOBBER)
78
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
- module Rake
3
- ##
4
- # Mixin for creating easily cloned objects.
5
-
6
- module Cloneable # :nodoc:
7
- # The hook that is invoked by 'clone' and 'dup' methods.
8
- def initialize_copy(source)
9
- super
10
- source.instance_variables.each do |var|
11
- src_value = source.instance_variable_get(var)
12
- value = src_value.clone rescue src_value
13
- instance_variable_set(var, value)
14
- end
15
- end
16
- end
17
- end
@@ -1,107 +0,0 @@
1
- # frozen_string_literal: true
2
- module Rake
3
-
4
- # Based on a script at:
5
- # http://stackoverflow.com/questions/891537/ruby-detect-number-of-cpus-installed
6
- class CpuCounter # :nodoc: all
7
- def self.count
8
- new.count_with_default
9
- end
10
-
11
- def count_with_default(default=4)
12
- count || default
13
- rescue StandardError
14
- default
15
- end
16
-
17
- begin
18
- require "etc"
19
- rescue LoadError
20
- else
21
- if Etc.respond_to?(:nprocessors)
22
- def count
23
- return Etc.nprocessors
24
- end
25
- end
26
- end
27
- end
28
- end
29
-
30
- unless Rake::CpuCounter.method_defined?(:count)
31
- Rake::CpuCounter.class_eval <<-'end;', __FILE__, __LINE__+1
32
- require 'rbconfig'
33
-
34
- def count
35
- if RUBY_PLATFORM == 'java'
36
- count_via_java_runtime
37
- else
38
- case RbConfig::CONFIG['host_os']
39
- when /linux/
40
- count_via_cpuinfo
41
- when /darwin|bsd/
42
- count_via_sysctl
43
- when /mswin|mingw/
44
- count_via_win32
45
- else
46
- # Try everything
47
- count_via_win32 ||
48
- count_via_sysctl ||
49
- count_via_cpuinfo
50
- end
51
- end
52
- end
53
-
54
- def count_via_java_runtime
55
- Java::Java.lang.Runtime.getRuntime.availableProcessors
56
- rescue StandardError
57
- nil
58
- end
59
-
60
- def count_via_win32
61
- require 'win32ole'
62
- wmi = WIN32OLE.connect("winmgmts://")
63
- cpu = wmi.ExecQuery("select NumberOfCores from Win32_Processor") # TODO count hyper-threaded in this
64
- cpu.to_enum.first.NumberOfCores
65
- rescue StandardError, LoadError
66
- nil
67
- end
68
-
69
- def count_via_cpuinfo
70
- open('/proc/cpuinfo') { |f| f.readlines }.grep(/processor/).size
71
- rescue StandardError
72
- nil
73
- end
74
-
75
- def count_via_sysctl
76
- run 'sysctl', '-n', 'hw.ncpu'
77
- end
78
-
79
- def run(command, *args)
80
- cmd = resolve_command(command)
81
- if cmd
82
- IO.popen [cmd, *args] do |io|
83
- io.read.to_i
84
- end
85
- else
86
- nil
87
- end
88
- end
89
-
90
- def resolve_command(command)
91
- look_for_command("/usr/sbin", command) ||
92
- look_for_command("/sbin", command) ||
93
- in_path_command(command)
94
- end
95
-
96
- def look_for_command(dir, command)
97
- path = File.join(dir, command)
98
- File.exist?(path) ? path : nil
99
- end
100
-
101
- def in_path_command(command)
102
- IO.popen ['which', command] do |io|
103
- io.eof? ? nil : command
104
- end
105
- end
106
- end;
107
- end
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
- module Rake
3
-
4
- # Default Rakefile loader used by +import+.
5
- class DefaultLoader
6
-
7
- ##
8
- # Loads a rakefile into the current application from +fn+
9
-
10
- def load(fn)
11
- Rake.load_rakefile(File.expand_path(fn))
12
- end
13
- end
14
-
15
- end
@@ -1,195 +0,0 @@
1
- # frozen_string_literal: true
2
- # Rake DSL functions.
3
- require "rake/file_utils_ext"
4
-
5
- module Rake
6
-
7
- ##
8
- # DSL is a module that provides #task, #desc, #namespace, etc. Use this
9
- # when you'd like to use rake outside the top level scope.
10
- #
11
- # For a Rakefile you run from the command line this module is automatically
12
- # included.
13
-
14
- module DSL
15
-
16
- #--
17
- # Include the FileUtils file manipulation functions in the top
18
- # level module, but mark them private so that they don't
19
- # unintentionally define methods on other objects.
20
- #++
21
-
22
- include FileUtilsExt
23
- private(*FileUtils.instance_methods(false))
24
- private(*FileUtilsExt.instance_methods(false))
25
-
26
- private
27
-
28
- # :call-seq:
29
- # task(task_name)
30
- # task(task_name: dependencies)
31
- # task(task_name, arguments => 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
- def task(*args, &block) # :doc:
60
- Rake::Task.define_task(*args, &block)
61
- end
62
-
63
- # Declare a file task.
64
- #
65
- # Example:
66
- # file "config.cfg" => ["config.template"] do
67
- # open("config.cfg", "w") do |outfile|
68
- # open("config.template") do |infile|
69
- # while line = infile.gets
70
- # outfile.puts line
71
- # end
72
- # end
73
- # end
74
- # end
75
- #
76
- def file(*args, &block) # :doc:
77
- Rake::FileTask.define_task(*args, &block)
78
- end
79
-
80
- # Declare a file creation task.
81
- # (Mainly used for the directory command).
82
- def file_create(*args, &block)
83
- Rake::FileCreationTask.define_task(*args, &block)
84
- end
85
-
86
- # Declare a set of files tasks to create the given directories on
87
- # demand.
88
- #
89
- # Example:
90
- # directory "testdata/doc"
91
- #
92
- def directory(*args, &block) # :doc:
93
- result = file_create(*args, &block)
94
- dir, _ = *Rake.application.resolve_args(args)
95
- dir = Rake.from_pathname(dir)
96
- Rake.each_dir_parent(dir) do |d|
97
- file_create d do |t|
98
- mkdir_p t.name unless File.exist?(t.name)
99
- end
100
- end
101
- result
102
- end
103
-
104
- # Declare a task that performs its prerequisites in
105
- # parallel. Multitasks does *not* guarantee that its prerequisites
106
- # will execute in any given order (which is obvious when you think
107
- # about it)
108
- #
109
- # Example:
110
- # multitask deploy: %w[deploy_gem deploy_rdoc]
111
- #
112
- def multitask(*args, &block) # :doc:
113
- Rake::MultiTask.define_task(*args, &block)
114
- end
115
-
116
- # Create a new rake namespace and use it for evaluating the given
117
- # block. Returns a NameSpace object that can be used to lookup
118
- # tasks defined in the namespace.
119
- #
120
- # Example:
121
- #
122
- # ns = namespace "nested" do
123
- # # the "nested:run" task
124
- # task :run
125
- # end
126
- # task_run = ns[:run] # find :run in the given namespace.
127
- #
128
- # Tasks can also be defined in a namespace by using a ":" in the task
129
- # name:
130
- #
131
- # task "nested:test" do
132
- # # ...
133
- # end
134
- #
135
- def namespace(name=nil, &block) # :doc:
136
- name = name.to_s if name.kind_of?(Symbol)
137
- name = name.to_str if name.respond_to?(:to_str)
138
- unless name.kind_of?(String) || name.nil?
139
- raise ArgumentError, "Expected a String or Symbol for a namespace name"
140
- end
141
- Rake.application.in_namespace(name, &block)
142
- end
143
-
144
- # Declare a rule for auto-tasks.
145
- #
146
- # Example:
147
- # rule '.o' => '.c' do |t|
148
- # sh 'cc', '-o', t.name, t.source
149
- # end
150
- #
151
- def rule(*args, &block) # :doc:
152
- Rake::Task.create_rule(*args, &block)
153
- end
154
-
155
- # Describes the next rake task. Duplicate descriptions are discarded.
156
- # Descriptions are shown with <code>rake -T</code> (up to the first
157
- # sentence) and <code>rake -D</code> (the entire description).
158
- #
159
- # Example:
160
- # desc "Run the Unit Tests"
161
- # task test: [:build]
162
- # # ... run tests
163
- # end
164
- #
165
- def desc(description) # :doc:
166
- Rake.application.last_description = description
167
- end
168
-
169
- # Import the partial Rakefiles +fn+. Imported files are loaded
170
- # _after_ the current file is completely loaded. This allows the
171
- # import statement to appear anywhere in the importing file, and yet
172
- # allowing the imported files to depend on objects defined in the
173
- # importing file.
174
- #
175
- # A common use of the import statement is to include files
176
- # containing dependency declarations.
177
- #
178
- # See also the --rakelibdir command line option.
179
- #
180
- # Example:
181
- # import ".depend", "my_rules"
182
- #
183
- def import(*fns) # :doc:
184
- fns.each do |fn|
185
- Rake.application.add_import(fn)
186
- end
187
- end
188
- end
189
- extend FileUtilsExt
190
- end
191
-
192
- # Extend the main object with the DSL commands. This allows top-level
193
- # calls to task, etc. to work from a Rakefile without polluting the
194
- # object inheritance tree.
195
- self.extend Rake::DSL
@@ -1,22 +0,0 @@
1
- # frozen_string_literal: true
2
- module Rake
3
-
4
- # EarlyTime is a fake timestamp that occurs _before_ any other time value.
5
- class EarlyTime
6
- include Comparable
7
- include Singleton
8
-
9
- ##
10
- # The EarlyTime always comes before +other+!
11
-
12
- def <=>(other)
13
- -1
14
- end
15
-
16
- def to_s # :nodoc:
17
- "<EARLY TIME>"
18
- end
19
- end
20
-
21
- EARLY = EarlyTime.instance
22
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
- class Module
3
- # Check for an existing method in the current class before extending. If
4
- # the method already exists, then a warning is printed and the extension is
5
- # not added. Otherwise the block is yielded and any definitions in the
6
- # block will take effect.
7
- #
8
- # Usage:
9
- #
10
- # class String
11
- # rake_extension("xyz") do
12
- # def xyz
13
- # ...
14
- # end
15
- # end
16
- # end
17
- #
18
- def rake_extension(method) # :nodoc:
19
- if method_defined?(method)
20
- $stderr.puts "WARNING: Possible conflict with Rake extension: " +
21
- "#{self}##{method} already exists"
22
- else
23
- yield
24
- end
25
- end
26
- end
@@ -1,176 +0,0 @@
1
- # frozen_string_literal: true
2
- require "rake/ext/core"
3
-
4
- class String
5
-
6
- rake_extension("ext") do
7
- # Replace the file extension with +newext+. If there is no extension on
8
- # the string, append the new extension to the end. If the new extension
9
- # is not given, or is the empty string, remove any existing extension.
10
- #
11
- # +ext+ is a user added method for the String class.
12
- #
13
- # This String extension comes from Rake
14
- def ext(newext="")
15
- return self.dup if [".", ".."].include? self
16
- if newext != ""
17
- newext = "." + newext unless newext =~ /^\./
18
- end
19
- self.chomp(File.extname(self)) << newext
20
- end
21
- end
22
-
23
- rake_extension("pathmap") do
24
- # Explode a path into individual components. Used by +pathmap+.
25
- #
26
- # This String extension comes from Rake
27
- def pathmap_explode
28
- head, tail = File.split(self)
29
- return [self] if head == self
30
- return [tail] if head == "." || tail == "/"
31
- return [head, tail] if head == "/"
32
- return head.pathmap_explode + [tail]
33
- end
34
- protected :pathmap_explode
35
-
36
- # Extract a partial path from the path. Include +n+ directories from the
37
- # front end (left hand side) if +n+ is positive. Include |+n+|
38
- # directories from the back end (right hand side) if +n+ is negative.
39
- #
40
- # This String extension comes from Rake
41
- def pathmap_partial(n)
42
- dirs = File.dirname(self).pathmap_explode
43
- partial_dirs =
44
- if n > 0
45
- dirs[0...n]
46
- elsif n < 0
47
- dirs.reverse[0...-n].reverse
48
- else
49
- "."
50
- end
51
- File.join(partial_dirs)
52
- end
53
- protected :pathmap_partial
54
-
55
- # Perform the pathmap replacement operations on the given path. The
56
- # patterns take the form 'pat1,rep1;pat2,rep2...'.
57
- #
58
- # This String extension comes from Rake
59
- def pathmap_replace(patterns, &block)
60
- result = self
61
- patterns.split(";").each do |pair|
62
- pattern, replacement = pair.split(",")
63
- pattern = Regexp.new(pattern)
64
- if replacement == "*" && block_given?
65
- result = result.sub(pattern, &block)
66
- elsif replacement
67
- result = result.sub(pattern, replacement)
68
- else
69
- result = result.sub(pattern, "")
70
- end
71
- end
72
- result
73
- end
74
- protected :pathmap_replace
75
-
76
- # Map the path according to the given specification. The specification
77
- # controls the details of the mapping. The following special patterns are
78
- # recognized:
79
- #
80
- # <tt>%p</tt> :: The complete path.
81
- # <tt>%f</tt> :: The base file name of the path, with its file extension,
82
- # but without any directories.
83
- # <tt>%n</tt> :: The file name of the path without its file extension.
84
- # <tt>%d</tt> :: The directory list of the path.
85
- # <tt>%x</tt> :: The file extension of the path. An empty string if there
86
- # is no extension.
87
- # <tt>%X</tt> :: Everything *but* the file extension.
88
- # <tt>%s</tt> :: The alternate file separator if defined, otherwise use #
89
- # the standard file separator.
90
- # <tt>%%</tt> :: A percent sign.
91
- #
92
- # The <tt>%d</tt> specifier can also have a numeric prefix (e.g. '%2d').
93
- # If the number is positive, only return (up to) +n+ directories in the
94
- # path, starting from the left hand side. If +n+ is negative, return (up
95
- # to) +n+ directories from the right hand side of the path.
96
- #
97
- # Examples:
98
- #
99
- # 'a/b/c/d/file.txt'.pathmap("%2d") => 'a/b'
100
- # 'a/b/c/d/file.txt'.pathmap("%-2d") => 'c/d'
101
- #
102
- # Also the <tt>%d</tt>, <tt>%p</tt>, <tt>%f</tt>, <tt>%n</tt>,
103
- # <tt>%x</tt>, and <tt>%X</tt> operators can take a pattern/replacement
104
- # argument to perform simple string substitutions on a particular part of
105
- # the path. The pattern and replacement are separated by a comma and are
106
- # enclosed by curly braces. The replacement spec comes after the %
107
- # character but before the operator letter. (e.g. "%{old,new}d").
108
- # Multiple replacement specs should be separated by semi-colons (e.g.
109
- # "%{old,new;src,bin}d").
110
- #
111
- # Regular expressions may be used for the pattern, and back refs may be
112
- # used in the replacement text. Curly braces, commas and semi-colons are
113
- # excluded from both the pattern and replacement text (let's keep parsing
114
- # reasonable).
115
- #
116
- # For example:
117
- #
118
- # "src/org/onestepback/proj/A.java".pathmap("%{^src,class}X.class")
119
- #
120
- # returns:
121
- #
122
- # "class/org/onestepback/proj/A.class"
123
- #
124
- # If the replacement text is '*', then a block may be provided to perform
125
- # some arbitrary calculation for the replacement.
126
- #
127
- # For example:
128
- #
129
- # "/path/to/file.TXT".pathmap("%X%{.*,*}x") { |ext|
130
- # ext.downcase
131
- # }
132
- #
133
- # Returns:
134
- #
135
- # "/path/to/file.txt"
136
- #
137
- # This String extension comes from Rake
138
- def pathmap(spec=nil, &block)
139
- return self if spec.nil?
140
- result = "".dup
141
- spec.scan(/%\{[^}]*\}-?\d*[sdpfnxX%]|%-?\d+d|%.|[^%]+/) do |frag|
142
- case frag
143
- when "%f"
144
- result << File.basename(self)
145
- when "%n"
146
- result << File.basename(self).ext
147
- when "%d"
148
- result << File.dirname(self)
149
- when "%x"
150
- result << File.extname(self)
151
- when "%X"
152
- result << self.ext
153
- when "%p"
154
- result << self
155
- when "%s"
156
- result << (File::ALT_SEPARATOR || File::SEPARATOR)
157
- when "%-"
158
- # do nothing
159
- when "%%"
160
- result << "%"
161
- when /%(-?\d+)d/
162
- result << pathmap_partial($1.to_i)
163
- when /^%\{([^}]*)\}(\d*[dpfnxX])/
164
- patterns, operator = $1, $2
165
- result << pathmap("%" + operator).pathmap_replace(patterns, &block)
166
- when /^%/
167
- fail ArgumentError, "Unknown pathmap specifier #{frag} in '#{spec}'"
168
- else
169
- result << frag
170
- end
171
- end
172
- result
173
- end
174
- end
175
-
176
- end
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
- require "rake/file_task"
3
- require "rake/early_time"
4
-
5
- module Rake
6
-
7
- # A FileCreationTask is a file task that when used as a dependency will be
8
- # needed if and only if the file has not been created. Once created, it is
9
- # not re-triggered if any of its dependencies are newer, nor does trigger
10
- # any rebuilds of tasks that depend on it whenever it is updated.
11
- #
12
- class FileCreationTask < FileTask
13
- # Is this file task needed? Yes if it doesn't exist.
14
- def needed?
15
- !File.exist?(name)
16
- end
17
-
18
- # Time stamp for file creation task. This time stamp is earlier
19
- # than any other time stamp.
20
- def timestamp
21
- Rake::EARLY
22
- end
23
- end
24
-
25
- end