icersplicer 0.3.6 → 0.4.2
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/bin/icersplicer +33 -31
- data/lib/icersplicer.rb +37 -6
- metadata +16 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6e74103ad7acd91e846845928dee5cd14a68b2a0
         | 
| 4 | 
            +
              data.tar.gz: e99b949b976c0e3ee96f8b707db4dd5db1395b60
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 8a1bac8788290a8f83ae8117ff9a8d69c199e38216c880eaa3da7f754e28984d098e889978917712405d63a10305eafd8cca0f78042a205b35cfe9805e7c18ca
         | 
| 7 | 
            +
              data.tar.gz: 7e8ab2a5375746f32a6cb0ad556569e0d948b4300c66ebe5a2afa97f24e1ec2c8904d4d90ab041bc7f4f3e446b966fbdac9c4176bdc1bf00c332bae43fcae686
         | 
    
        data/bin/icersplicer
    CHANGED
    
    | @@ -13,7 +13,9 @@ | |
| 13 13 | 
             
            ########################################################################
         | 
| 14 14 |  | 
| 15 15 | 
             
            require 'getoptlong'
         | 
| 16 | 
            +
            require 'walltime'
         | 
| 16 17 | 
             
            require 'pp'
         | 
| 18 | 
            +
             | 
| 17 19 | 
             
            require File.expand_path(File.join(
         | 
| 18 20 | 
             
                      File.dirname(__FILE__),
         | 
| 19 21 | 
             
                      "../lib/icersplicer.rb"))
         | 
| @@ -36,7 +38,9 @@ opts = GetoptLong.new( | |
| 36 38 | 
             
              [ '--outputfile', '-o', GetoptLong::OPTIONAL_ARGUMENT],
         | 
| 37 39 | 
             
              [ '--countlines', '-c', GetoptLong::OPTIONAL_ARGUMENT],
         | 
| 38 40 | 
             
              [ '--grep', '-g', GetoptLong::REQUIRED_ARGUMENT],
         | 
| 39 | 
            -
              [ '--nohighlighter', '-t', GetoptLong::NO_ARGUMENT ]
         | 
| 41 | 
            +
              [ '--nohighlighter', '-t', GetoptLong::NO_ARGUMENT ],
         | 
| 42 | 
            +
              [ '--search', '-1', GetoptLong::REQUIRED_ARGUMENT],
         | 
| 43 | 
            +
              [ '--replace', '-2', GetoptLong::REQUIRED_ARGUMENT]
         | 
| 40 44 | 
             
            )
         | 
| 41 45 |  | 
| 42 46 | 
             
            opts.each do |opt, arg|
         | 
| @@ -57,7 +61,9 @@ opts.each do |opt, arg| | |
| 57 61 | 
             
            --countlines '-c' Counts the lines of a file
         | 
| 58 62 | 
             
            --grep '-g' Filter data
         | 
| 59 63 | 
             
            --nohighlighter '-t' NO ARGUMENTS ( Turns off syntax hightlighting )
         | 
| 60 | 
            -
             | 
| 64 | 
            +
            --search '-1' Text to search for
         | 
| 65 | 
            +
            --replace '-2' Replacement string
         | 
| 66 | 
            +
             | 
| 61 67 | 
             
            Example:
         | 
| 62 68 |  | 
| 63 69 | 
             
                  icersplicer -f inputfile --lineoffset 0 --linelimit 10 -s 3,6,9,10-15 -o outputfile
         | 
| @@ -81,26 +87,7 @@ Written by Brian Hood | |
| 81 87 | 
             
                  @outputfile = arg.to_s
         | 
| 82 88 | 
             
                  puts "Outputfile: #{@outputfile}"
         | 
| 83 89 | 
             
                when '--skiplines'
         | 
| 84 | 
            -
                  @skip_lines =  | 
| 85 | 
            -
                  arg.to_s.split(",").each {|n| 
         | 
| 86 | 
            -
                      @skip_lines << n.to_i
         | 
| 87 | 
            -
                      # Allow line ranges 
         | 
| 88 | 
            -
                      min = n.split("-")[0].to_i
         | 
| 89 | 
            -
                      max = n.split("-")[1].to_i
         | 
| 90 | 
            -
                      unless n.split("-")[1] == nil 
         | 
| 91 | 
            -
                        begin
         | 
| 92 | 
            -
                          if min > max and max != 0
         | 
| 93 | 
            -
                            return false
         | 
| 94 | 
            -
                          end
         | 
| 95 | 
            -
                        rescue
         | 
| 96 | 
            -
                          puts "Range Error: Minimun value can't be more than Maxiumun Range value"
         | 
| 97 | 
            -
                          exit
         | 
| 98 | 
            -
                        end
         | 
| 99 | 
            -
                        min.upto(max) {|s|
         | 
| 100 | 
            -
                          @skip_lines << s unless @skip_lines[@skip_lines.size - 1] == s
         | 
| 101 | 
            -
                        }
         | 
| 102 | 
            -
                      end
         | 
| 103 | 
            -
                  }
         | 
| 90 | 
            +
                  @skip_lines = skip_processor(arg)
         | 
| 104 91 | 
             
                when '--skipblank'
         | 
| 105 92 | 
             
                  @skipblank = "SKIP"
         | 
| 106 93 | 
             
                when '--quiet'
         | 
| @@ -115,9 +102,25 @@ Written by Brian Hood | |
| 115 102 | 
             
                  @grep = arg.to_s
         | 
| 116 103 | 
             
                when '--nohighlighter'
         | 
| 117 104 | 
             
                  @nohighlighter = "OFF"
         | 
| 105 | 
            +
                when '--search'
         | 
| 106 | 
            +
                  @search = arg.to_s
         | 
| 107 | 
            +
                when '--replace'
         | 
| 108 | 
            +
                  @replace = arg.to_s
         | 
| 118 109 | 
             
              end
         | 
| 119 110 | 
             
            end
         | 
| 120 111 |  | 
| 112 | 
            +
            if instance_variable_defined?("@search")
         | 
| 113 | 
            +
              search = @search
         | 
| 114 | 
            +
              if instance_variable_defined?("@replace")
         | 
| 115 | 
            +
                replace = @replace
         | 
| 116 | 
            +
                search_and_replace = true
         | 
| 117 | 
            +
              else
         | 
| 118 | 
            +
                puts "Replace string required to use search / replace features..."
         | 
| 119 | 
            +
                exit
         | 
| 120 | 
            +
              end
         | 
| 121 | 
            +
            end
         | 
| 122 | 
            +
             | 
| 123 | 
            +
             | 
| 121 124 | 
             
            unless instance_variable_defined?("@line_offset")
         | 
| 122 125 | 
             
              lineoffset = 0
         | 
| 123 126 | 
             
            else
         | 
| @@ -152,19 +155,16 @@ unless File.exist?("#{inputfile}") | |
| 152 155 | 
             
              exit
         | 
| 153 156 | 
             
            end
         | 
| 154 157 |  | 
| 155 | 
            -
             | 
| 156 | 
            -
             | 
| 157 | 
            -
                data = text_highlighter(data)
         | 
| 158 | 
            -
                return data
         | 
| 159 | 
            -
              else
         | 
| 160 | 
            -
                return data
         | 
| 161 | 
            -
              end
         | 
| 162 | 
            -
            end
         | 
| 163 | 
            -
             | 
| 158 | 
            +
            timer = Stopwatch.new
         | 
| 159 | 
            +
            timer.watch('start')
         | 
| 164 160 | 
             
            begin
         | 
| 165 161 | 
             
              File.open(inputfile) {|n|
         | 
| 166 162 | 
             
                n.each_line {|data|
         | 
| 167 163 | 
             
                  data_orig = data.clone
         | 
| 164 | 
            +
                  if search_and_replace == true
         | 
| 165 | 
            +
                    data_orig.gsub!("#{search}", "#{replace}")
         | 
| 166 | 
            +
                    data.gsub!("#{search}", "#{replace}")
         | 
| 167 | 
            +
                  end
         | 
| 168 168 | 
             
                  unless lineoffset > increment_offset
         | 
| 169 169 | 
             
                    unless linelimit == 0
         | 
| 170 170 | 
             
                      unless increment_limit > linelimit
         | 
| @@ -198,3 +198,5 @@ rescue Errno::EPIPE | |
| 198 198 | 
             
            end
         | 
| 199 199 | 
             
            closefile if instance_variable_defined?("@exp")
         | 
| 200 200 | 
             
            stats(inputfile, outputfile)
         | 
| 201 | 
            +
            timer.watch('stop')
         | 
| 202 | 
            +
            timer.print_stats
         | 
    
        data/lib/icersplicer.rb
    CHANGED
    
    | @@ -13,8 +13,8 @@ module Icersplicer | |
| 13 13 |  | 
| 14 14 | 
             
              module VERSION #:nodoc:
         | 
| 15 15 | 
             
                MAJOR = 0
         | 
| 16 | 
            -
                MINOR =  | 
| 17 | 
            -
                TINY =  | 
| 16 | 
            +
                MINOR = 4
         | 
| 17 | 
            +
                TINY = 2
         | 
| 18 18 | 
             
                CODENAME = "Ice Axe !"
         | 
| 19 19 | 
             
                STRING = [MAJOR, MINOR, TINY].join('.')
         | 
| 20 20 | 
             
              end
         | 
| @@ -48,7 +48,16 @@ module Icersplicer | |
| 48 48 | 
             
                  return false
         | 
| 49 49 | 
             
                end
         | 
| 50 50 | 
             
              end
         | 
| 51 | 
            -
             | 
| 51 | 
            +
             | 
| 52 | 
            +
              def text_processor(data)
         | 
| 53 | 
            +
                unless instance_variable_defined?("@nohighlighter")
         | 
| 54 | 
            +
                  data = text_highlighter(data)
         | 
| 55 | 
            +
                  return data
         | 
| 56 | 
            +
                else
         | 
| 57 | 
            +
                  return data
         | 
| 58 | 
            +
                end
         | 
| 59 | 
            +
              end
         | 
| 60 | 
            +
             | 
| 52 61 | 
             
              def text_highlighter(text)
         | 
| 53 62 | 
             
                keys = load_keywords("#{@@keywordsfile}")
         | 
| 54 63 | 
             
                if keys == false
         | 
| @@ -64,9 +73,7 @@ module Icersplicer | |
| 64 73 | 
             
                    text.gsub!("#{n}", "\e[4;3#{cpicker[rand(cpicker.size)]}m#{n}\e[0m\ \e[0;32m".strip)
         | 
| 65 74 | 
             
                  else
         | 
| 66 75 | 
             
                    name = n.split("##")[1].split("=")[1]
         | 
| 67 | 
            -
                    #puts "Colour: #{name} #{COLOURS[name]}"
         | 
| 68 76 | 
             
                    cnum = COLOURS[name].to_i
         | 
| 69 | 
            -
                    #puts "NVal: #{n}"
         | 
| 70 77 | 
             
                    nval = n.split("##")[0]
         | 
| 71 78 | 
             
                    text.gsub!("#{nval}", "\e[4;3#{cnum}m#{nval}\e[0m\ \e[0;32m".strip)
         | 
| 72 79 | 
             
                  end
         | 
| @@ -88,7 +95,31 @@ module Icersplicer | |
| 88 95 | 
             
                  end
         | 
| 89 96 | 
             
                end
         | 
| 90 97 | 
             
              end
         | 
| 91 | 
            -
             | 
| 98 | 
            +
              
         | 
| 99 | 
            +
              def skip_processor(filter)
         | 
| 100 | 
            +
                skip_lines = Array.new
         | 
| 101 | 
            +
                filter.to_s.split(",").each {|n| 
         | 
| 102 | 
            +
                    skip_lines << n.to_i
         | 
| 103 | 
            +
                    # Allow line ranges 
         | 
| 104 | 
            +
                    min = n.split("-")[0].to_i
         | 
| 105 | 
            +
                    max = n.split("-")[1].to_i
         | 
| 106 | 
            +
                    unless n.split("-")[1] == nil 
         | 
| 107 | 
            +
                      begin
         | 
| 108 | 
            +
                        if min > max and max != 0
         | 
| 109 | 
            +
                          return false
         | 
| 110 | 
            +
                        end
         | 
| 111 | 
            +
                      rescue
         | 
| 112 | 
            +
                        puts "Range Error: Minimun value can't be more than Maxiumun Range value"
         | 
| 113 | 
            +
                        exit
         | 
| 114 | 
            +
                      end
         | 
| 115 | 
            +
                      min.upto(max) {|s|
         | 
| 116 | 
            +
                        skip_lines << s unless skip_lines[skip_lines.size - 1] == s
         | 
| 117 | 
            +
                      }
         | 
| 118 | 
            +
                    end
         | 
| 119 | 
            +
                }
         | 
| 120 | 
            +
                return skip_lines
         | 
| 121 | 
            +
              end
         | 
| 122 | 
            +
              
         | 
| 92 123 | 
             
              def skip(line)
         | 
| 93 124 | 
             
                begin
         | 
| 94 125 | 
             
                  line_element = @skip_lines.index(line)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: icersplicer
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.4.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Brian Hood
         | 
| @@ -9,7 +9,21 @@ autorequire: | |
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 11 | 
             
            date: 2016-01-17 00:00:00.000000000 Z
         | 
| 12 | 
            -
            dependencies: | 
| 12 | 
            +
            dependencies:
         | 
| 13 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 14 | 
            +
              name: walltime
         | 
| 15 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 | 
            +
                requirements:
         | 
| 17 | 
            +
                - - "~>"
         | 
| 18 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 19 | 
            +
                    version: 0.0.5
         | 
| 20 | 
            +
              type: :runtime
         | 
| 21 | 
            +
              prerelease: false
         | 
| 22 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 | 
            +
                requirements:
         | 
| 24 | 
            +
                - - "~>"
         | 
| 25 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 26 | 
            +
                    version: 0.0.5
         | 
| 13 27 | 
             
            description: Text file manipulation similar to UNIX tools like cat / head / tail
         | 
| 14 28 | 
             
            email: brianh6854@googlemail.com
         | 
| 15 29 | 
             
            executables:
         |