lib/dev_scripts.rb in dev_scripts-0.1.3 vs lib/dev_scripts.rb in dev_scripts-0.1.5
- old
+ new
@@ -1,99 +1,16 @@
require "dev_scripts/version"
module DevScripts
class Error < StandardError; end
- class Script
- class Scripts < Array
- def add(script_name:, &block)
- self << Script.new(script_name: script_name, &block)
- end
- end
-
- class << self
- def scripts
- @scripts ||= Scripts.new
- end
-
- def define_script(script_name, &block)
- scripts.add(script_name: script_name, &block)
- end
-
- def execute(args)
- script_name, *rest = args
-
- script_to_execute = scripts.find { |script| script.name == script_name.to_sym }
-
- script_to_execute.run(rest) if script_to_execute
- end
- end
-
- attr_reader :name
-
- def initialize(script_name:, &block)
- @name = script_name
- @block = block
- @base = block.binding.receiver
- @run_args = []
- end
-
- def run(args)
- @run_args = args
-
- instance_eval(&block)
- end
-
- private
-
- attr_reader :block, :base, :run_args, :arg_names_to_args, :before_block
-
- def let(name, &block)
- define_singleton_method(name) do
- found_value = instance_variable_get("@#{name}")
- return found_value unless found_value.nil?
-
- instance_variable_set("@#{name}", instance_eval(&block))
- end
- end
-
- def before(&block)
- @before_block = block
- end
-
- def execute(&block)
- instance_eval(&before_block) if before_block
-
- instance_eval(&block)
- end
-
- def args(*arg_names)
- arg_names.each_with_index do |arg_name, index|
- define_singleton_method(arg_name) do
- found_value = instance_variable_get("@#{arg_name}")
-
- return found_value unless found_value.nil?
-
- instance_variable_set("@#{arg_name}", run_args[index])
- end
- end
- end
-
- def create_file_in_editor(file_path_to_open, &file_content_block)
- File.open(file_path_to_open, 'w') do |file|
- file.write(instance_eval(&file_content_block))
- end
- rescue Errno::ENOENT
- Dir.mkdir file_path_to_open.split('/')[0..-2].join('/')
-
- retry
- end
-
- def open_file_in_editor(file_path_to_open)
- system "code -r #{file_path_to_open}"
- end
- end
end
require 'dev_scripts/scripts/open_spec_file'
require 'dev_scripts/scripts/rubocop_metrics_method_length'
+
+if File.exist? './dev_scripts'
+ Dir['./dev_scripts/**/*.rb'].each do |file|
+ require file
+ end
+end
DevScripts::Script.execute(ARGV)
\ No newline at end of file