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