stack_loop 0.0.1 → 0.1.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.
- checksums.yaml +4 -4
- data/lib/stack_loop/app.rb +45 -18
- metadata +4 -4
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cc81712c3e789d109bfae88923d192a92e9861af
         | 
| 4 | 
            +
              data.tar.gz: f7450251ba830fa605ee00a33896c35e158bd46a
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 24c9c520ad3d6b5fb2da442858df29054eb83a8e205f3aee555b2b100ba609c918b957824349572b2c05476db34f09a86c36a34d57ff9ef8441ad8995bbdcbd6
         | 
| 7 | 
            +
              data.tar.gz: 310f47536bafddb9d03ea2fc7b8a59875cc5dd49b380695439b015f7708965470acef7b0a59e7b7cca6df49e6a7c67b0142ff403cf3f9918bf75711c7178bc5b
         | 
    
        data/lib/stack_loop/app.rb
    CHANGED
    
    | @@ -11,17 +11,21 @@ module StackLoop | |
| 11 11 | 
             
                    @action = action
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 |  | 
| 14 | 
            -
                  def run
         | 
| 15 | 
            -
                    @action.call
         | 
| 14 | 
            +
                  def run(arg_array)
         | 
| 15 | 
            +
                    @action.call(arg_array)
         | 
| 16 16 | 
             
                  end
         | 
| 17 17 | 
             
                end
         | 
| 18 18 |  | 
| 19 19 | 
             
                def commands
         | 
| 20 20 | 
             
                  [
         | 
| 21 21 | 
             
                    Command.new("run"){ run_stack_loop },
         | 
| 22 | 
            +
                    Command.new("try"){ run_top },
         | 
| 22 23 | 
             
                    Command.new("collect"){ push_new; run_stack_loop },
         | 
| 24 | 
            +
                    Command.new("list"){ read_stack; @stack.reverse_each{|argset| puts "- #{command_line(argset).join(" ")}"} },
         | 
| 23 25 | 
             
                    Command.new("pop"){ pop_argset },
         | 
| 24 | 
            -
                    Command.new(" | 
| 26 | 
            +
                    Command.new("push"){|args| push_argset(args)},
         | 
| 27 | 
            +
                    Command.new("edit"){ edit_stack },
         | 
| 28 | 
            +
                    Command.new("quit"){ throw :quit },
         | 
| 25 29 | 
             
                    Command.new("help"){ puts "Don't know that one - try: #{command_names.join(", ")}" }
         | 
| 26 30 | 
             
                  ]
         | 
| 27 31 | 
             
                end
         | 
| @@ -86,6 +90,17 @@ module StackLoop | |
| 86 90 | 
             
                  @stack.length
         | 
| 87 91 | 
             
                end
         | 
| 88 92 |  | 
| 93 | 
            +
                def edit_stack
         | 
| 94 | 
            +
                  write_stack
         | 
| 95 | 
            +
                  execute_editor_command(stack_file)
         | 
| 96 | 
            +
                  read_stack
         | 
| 97 | 
            +
                end
         | 
| 98 | 
            +
             | 
| 99 | 
            +
                def execute_editor_command(path)
         | 
| 100 | 
            +
                  editor = ENV["EDITOR"] || "vim"
         | 
| 101 | 
            +
                  system(editor, path)
         | 
| 102 | 
            +
                end
         | 
| 103 | 
            +
             | 
| 89 104 | 
             
                def run
         | 
| 90 105 | 
             
                  validate_options!
         | 
| 91 106 |  | 
| @@ -95,16 +110,19 @@ module StackLoop | |
| 95 110 |  | 
| 96 111 | 
             
                  abbreviations = Abbrev.abbrev(command_names)
         | 
| 97 112 |  | 
| 98 | 
            -
                   | 
| 99 | 
            -
                     | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 102 | 
            -
                      command_name =  | 
| 113 | 
            +
                  catch :quit do
         | 
| 114 | 
            +
                    loop do
         | 
| 115 | 
            +
                      prompt
         | 
| 116 | 
            +
                      command_line = $stdin.gets.chomp.split(/\s+/)
         | 
| 117 | 
            +
                      command_name = command_line.shift
         | 
| 118 | 
            +
                      if command_name.nil?
         | 
| 119 | 
            +
                        command_name = "run"
         | 
| 120 | 
            +
                      end
         | 
| 121 | 
            +
             | 
| 122 | 
            +
                      command_name = abbreviations[command_name]
         | 
| 123 | 
            +
                      command = command_hash.fetch(command_name, command_hash["help"])
         | 
| 124 | 
            +
                      command.run(command_line)
         | 
| 103 125 | 
             
                    end
         | 
| 104 | 
            -
             | 
| 105 | 
            -
                    command_name = abbreviations[command_name]
         | 
| 106 | 
            -
                    command = command_hash.fetch(command_name, command_hash["help"])
         | 
| 107 | 
            -
                    command.run
         | 
| 108 126 | 
             
                  end
         | 
| 109 127 | 
             
                end
         | 
| 110 128 |  | 
| @@ -113,9 +131,11 @@ module StackLoop | |
| 113 131 | 
             
                end
         | 
| 114 132 |  | 
| 115 133 | 
             
                def current_command_line
         | 
| 116 | 
            -
                   | 
| 134 | 
            +
                  command_line(get_argset)
         | 
| 135 | 
            +
                end
         | 
| 117 136 |  | 
| 118 | 
            -
             | 
| 137 | 
            +
                def command_line(argset)
         | 
| 138 | 
            +
                  command_list + argset
         | 
| 119 139 | 
             
                end
         | 
| 120 140 |  | 
| 121 141 | 
             
                def prompt
         | 
| @@ -135,22 +155,29 @@ module StackLoop | |
| 135 155 | 
             
                def run_stack_loop
         | 
| 136 156 | 
             
                  while run_stack
         | 
| 137 157 | 
             
                    puts
         | 
| 138 | 
            -
                    puts "Success  | 
| 158 | 
            +
                    puts "Success running next..."
         | 
| 139 159 | 
             
                    puts
         | 
| 140 160 | 
             
                  end
         | 
| 161 | 
            +
             | 
| 162 | 
            +
                  run_top if @stack.empty?
         | 
| 141 163 | 
             
                end
         | 
| 142 164 |  | 
| 143 165 | 
             
                def run_stack
         | 
| 144 | 
            -
                   | 
| 166 | 
            +
                  return false if @stack.empty?
         | 
| 167 | 
            +
             | 
| 168 | 
            +
                  success = run_top
         | 
| 145 169 |  | 
| 146 170 | 
             
                  if success.nil?
         | 
| 147 171 | 
             
                    raise "#{[command, *args].inspect} couldn't be run"
         | 
| 148 172 | 
             
                  end
         | 
| 149 173 | 
             
                  pop_argset if success
         | 
| 150 174 |  | 
| 151 | 
            -
                  return false if @stack.empty?
         | 
| 152 | 
            -
             | 
| 153 175 | 
             
                  return success
         | 
| 154 176 | 
             
                end
         | 
| 177 | 
            +
             | 
| 178 | 
            +
                def run_top
         | 
| 179 | 
            +
                  puts current_command_line.join(" ")
         | 
| 180 | 
            +
                  system(*current_command_line)
         | 
| 181 | 
            +
                end
         | 
| 155 182 | 
             
              end
         | 
| 156 183 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,20 +1,20 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: stack_loop
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0 | 
| 4 | 
            +
              version: 0.1.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Judson Lester
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-06-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies: []
         | 
| 13 13 | 
             
            description: |2
         | 
| 14 14 | 
             
                The idea here is to take arguments off of a stack, run a command, and proceed down the stack iff the command
         | 
| 15 15 | 
             
                exits 0.
         | 
| 16 16 |  | 
| 17 | 
            -
                Why? Consider running rspec with a tight focus, adding  | 
| 17 | 
            +
                Why? Consider running rspec with a tight focus, adding breadth on success
         | 
| 18 18 | 
             
            email:
         | 
| 19 19 | 
             
            - nyarly@gmail.com
         | 
| 20 20 | 
             
            executables:
         | 
| @@ -36,7 +36,7 @@ rdoc_options: | |
| 36 36 | 
             
            - --main
         | 
| 37 37 | 
             
            - doc/README
         | 
| 38 38 | 
             
            - --title
         | 
| 39 | 
            -
            - stack_loop-0.0 | 
| 39 | 
            +
            - stack_loop-0.1.0 Documentation
         | 
| 40 40 | 
             
            require_paths:
         | 
| 41 41 | 
             
            - lib/
         | 
| 42 42 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         |