console_cmdr 0.4.0 → 0.4.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +1 -4
- data.tar.gz.sig +0 -0
- data/lib/console_cmdr.rb +71 -42
- metadata +1 -1
- metadata.gz.sig +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 601ff0285d317389e4a6ef22cf4060d9b99806c7
         | 
| 4 | 
            +
              data.tar.gz: 81935978bdadac036b615e3843c716a581955771
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ee069686795d2674297fa3da000bf446db8ac62aca177ccee92003965abfd7433dd44f2db6db5a050a2d8e2dc52d09dd22119a8e7eeb27e4bea24a45590b834c
         | 
| 7 | 
            +
              data.tar.gz: b634103b3ae5507c27609e4e17b382e710d67ce105ea84d2647ef4036e7ec5ae64fd71845742ef0158a3204b0a1ced684b2f5976872a091c4c99b0641df763ee
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    
    
        data.tar.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/lib/console_cmdr.rb
    CHANGED
    
    | @@ -9,7 +9,6 @@ require 'terminfo' | |
| 9 9 | 
             
            require 'io/console'
         | 
| 10 10 |  | 
| 11 11 |  | 
| 12 | 
            -
             | 
| 13 12 | 
             
            class ConsoleCmdr < Cmdr
         | 
| 14 13 |  | 
| 15 14 | 
             
              def initialize(pxindex: nil)
         | 
| @@ -177,45 +176,11 @@ class ConsoleCmdr < Cmdr | |
| 177 176 | 
             
                  @keys = []
         | 
| 178 177 |  | 
| 179 178 | 
             
                  if key.to_i.to_s == key and @input_selection and @input_selection.any?
         | 
| 180 | 
            -
                     | 
| 181 | 
            -
                    key = '' 
         | 
| 182 | 
            -
                    return r
         | 
| 183 | 
            -
                  end
         | 
| 184 | 
            -
             | 
| 185 | 
            -
                  parent = @pxi.parent.title if @pxi.parent
         | 
| 186 | 
            -
             | 
| 187 | 
            -
                  a = @pxi.q?(@linebuffer+key)
         | 
| 188 | 
            -
                
         | 
| 189 | 
            -
                  if a then
         | 
| 190 | 
            -
                    unless @input_selection == a.map(&:title) then
         | 
| 191 | 
            -
                      @input_selection = a.map(&:title)
         | 
| 192 | 
            -
                      @selection = a.map.with_index do |x,i| 
         | 
| 193 | 
            -
                        
         | 
| 194 | 
            -
                        branch = x.records.any? ? :branch : nil
         | 
| 195 | 
            -
             | 
| 196 | 
            -
                        title = x.title
         | 
| 197 | 
            -
                        # is the target a web page?
         | 
| 198 | 
            -
                        title = title.green  if x.target[0] == 'w' 
         | 
| 199 | 
            -
                        title << '>' if branch
         | 
| 200 | 
            -
                        
         | 
| 201 | 
            -
                        ["%d.%s" % [i+1, title], branch, x.desc.yellow]
         | 
| 202 | 
            -
                        
         | 
| 203 | 
            -
                      end
         | 
| 204 | 
            -
                      print ("\b" * @linebuffer.length) + @selection.map \
         | 
| 205 | 
            -
                          {|x| x.values_at(0,2).join ' '}.join(" | ") + "\n"
         | 
| 206 | 
            -
             | 
| 207 | 
            -
                    end
         | 
| 208 | 
            -
                    print ("\b" * @linebuffer.length)
         | 
| 179 | 
            +
                    key = select_item(key.to_i-1)        
         | 
| 209 180 |  | 
| 210 | 
            -
                    if (@linebuffer[/\s/] or a.length == 1) and key == ' ' then
         | 
| 211 | 
            -
             | 
| 212 | 
            -
                      @linebuffer.sub!(/\w+$/, @item_selected)
         | 
| 213 | 
            -
                      
         | 
| 214 | 
            -
                    end
         | 
| 215 | 
            -
                    print @linebuffer + key
         | 
| 216 | 
            -
                  else
         | 
| 217 | 
            -
                    @input_selection = nil
         | 
| 218 181 | 
             
                  end
         | 
| 182 | 
            +
             | 
| 183 | 
            +
                  query key if key
         | 
| 219 184 |  | 
| 220 185 | 
             
                elsif key == :arrow_down or key == :arrow_right      
         | 
| 221 186 |  | 
| @@ -293,8 +258,10 @@ class ConsoleCmdr < Cmdr | |
| 293 258 | 
             
                oldlinebuffer = @linebuffer
         | 
| 294 259 | 
             
                print ("\b" * oldlinebuffer.length)
         | 
| 295 260 |  | 
| 261 | 
            +
                type = @selection[-1][-1]
         | 
| 262 | 
            +
                branch = @selection[i][1] == :branch
         | 
| 296 263 |  | 
| 297 | 
            -
                if  | 
| 264 | 
            +
                if  branch or append_command or type == :message then
         | 
| 298 265 |  | 
| 299 266 | 
             
                  if @linebuffer[-1] != ' ' then
         | 
| 300 267 | 
             
                    a = @linebuffer.split(/ /)
         | 
| @@ -304,9 +271,12 @@ class ConsoleCmdr < Cmdr | |
| 304 271 |  | 
| 305 272 | 
             
                  linebuffer.prepend @linebuffer
         | 
| 306 273 | 
             
                  execute_command = false
         | 
| 307 | 
            -
                else
         | 
| 308 | 
            -
             | 
| 274 | 
            +
                else      
         | 
| 275 | 
            +
             | 
| 276 | 
            +
                  execute_command = true unless type == :interactive
         | 
| 309 277 | 
             
                end
         | 
| 278 | 
            +
                
         | 
| 279 | 
            +
                execute_command = true if type == :message
         | 
| 310 280 |  | 
| 311 281 | 
             
                if @selection[i][1] == :branch then
         | 
| 312 282 | 
             
                  words = @linebuffer.split(/ /)      
         | 
| @@ -322,8 +292,67 @@ class ConsoleCmdr < Cmdr | |
| 322 292 | 
             
                print rblankpadding
         | 
| 323 293 | 
             
                print ("\b" * rblankpadding.length)    
         | 
| 324 294 |  | 
| 325 | 
            -
                 | 
| 295 | 
            +
                
         | 
| 296 | 
            +
                return execute_command ? "\r" : (branch and type != :webpage) ? ' ' : nil
         | 
| 297 | 
            +
             | 
| 298 | 
            +
              end
         | 
| 299 | 
            +
              
         | 
| 300 | 
            +
              def query(key)
         | 
| 301 | 
            +
                
         | 
| 302 | 
            +
                a = @pxi.q?(@linebuffer+key)
         | 
| 303 | 
            +
             | 
| 304 | 
            +
                if a then
         | 
| 305 | 
            +
                  
         | 
| 306 | 
            +
                  unless @input_selection == a.map(&:title) then
         | 
| 307 | 
            +
                    @input_selection = a.map(&:title)
         | 
| 308 | 
            +
                    @selection = a.map.with_index do |x,i| 
         | 
| 309 | 
            +
                      
         | 
| 310 | 
            +
                      branch = x.records.any? ? :branch : nil
         | 
| 311 | 
            +
             | 
| 312 | 
            +
                      title = x.title
         | 
| 313 | 
            +
                      # is the target a web page?
         | 
| 314 | 
            +
                      title = title.green  if x.target[0] == 'w' 
         | 
| 315 | 
            +
                      title << '>' if branch
         | 
| 316 | 
            +
                      
         | 
| 317 | 
            +
                      ["%d.%s" % [i+1, title], branch, x.desc.yellow, target(x.target.to_s)]
         | 
| 318 | 
            +
                      
         | 
| 319 | 
            +
                    end
         | 
| 320 | 
            +
                    
         | 
| 321 | 
            +
                    print ("\b" * @linebuffer.length) + @selection.map \
         | 
| 322 | 
            +
                        {|x| x.values_at(0,2).join ' '}.join(" | ") + "\n"
         | 
| 326 323 |  | 
| 324 | 
            +
                  end
         | 
| 325 | 
            +
                  
         | 
| 326 | 
            +
                  print ("\b" * @linebuffer.length)
         | 
| 327 | 
            +
                  
         | 
| 328 | 
            +
                  if (@linebuffer[/\s/] or a.length == 1) and key == ' ' then
         | 
| 329 | 
            +
             | 
| 330 | 
            +
                    @linebuffer.sub!(/\w+$/, @item_selected)
         | 
| 331 | 
            +
                    
         | 
| 332 | 
            +
                  end
         | 
| 333 | 
            +
                  
         | 
| 334 | 
            +
                  print @linebuffer + key
         | 
| 335 | 
            +
                  
         | 
| 336 | 
            +
                else
         | 
| 337 | 
            +
                  
         | 
| 338 | 
            +
                  @input_selection = nil
         | 
| 339 | 
            +
                  
         | 
| 340 | 
            +
                end  
         | 
| 341 | 
            +
                
         | 
| 327 342 | 
             
              end
         | 
| 328 343 |  | 
| 344 | 
            +
              def target(c)
         | 
| 345 | 
            +
                
         | 
| 346 | 
            +
                case c.to_sym
         | 
| 347 | 
            +
                when :i 
         | 
| 348 | 
            +
                  :interactive
         | 
| 349 | 
            +
                when :w 
         | 
| 350 | 
            +
                  :webpage      
         | 
| 351 | 
            +
                when :m
         | 
| 352 | 
            +
                  :message
         | 
| 353 | 
            +
                else
         | 
| 354 | 
            +
                  :command
         | 
| 355 | 
            +
                end
         | 
| 356 | 
            +
              end
         | 
| 357 | 
            +
              
         | 
| 329 358 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |