geoptima 0.1.4 → 0.1.6
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.
- data/bin/csv_chart +20 -19
- data/bin/csv_merge +1 -1
- data/bin/show_geoptima +10 -8
- data/examples/csv_chart.rb +20 -19
- data/examples/csv_merge.rb +1 -1
- data/examples/show_geoptima.rb +10 -8
- data/lib/geoptima/data.rb +30 -14
- data/lib/geoptima/options.rb +2 -0
- data/lib/geoptima/version.rb +1 -1
- metadata +4 -4
    
        data/bin/csv_chart
    CHANGED
    
    | @@ -10,7 +10,7 @@ require 'geoptima/options' | |
| 10 10 | 
             
            require 'fileutils'
         | 
| 11 11 | 
             
            require 'geoptima/daterange'
         | 
| 12 12 |  | 
| 13 | 
            -
            Geoptima::assert_version("0.1. | 
| 13 | 
            +
            Geoptima::assert_version("0.1.6")
         | 
| 14 14 | 
             
            Geoptima::Chart.available? || puts("No charting libraries available") || exit(-1)
         | 
| 15 15 |  | 
| 16 16 | 
             
            $export_dir = '.'
         | 
| @@ -37,18 +37,19 @@ $merge_all = true if($time_split) | |
| 37 37 | 
             
            $help = true unless($files.length>0)
         | 
| 38 38 | 
             
            if $help
         | 
| 39 39 | 
             
              puts <<EOHELP
         | 
| 40 | 
            -
            Usage: csv_chart <- | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 40 | 
            +
            Usage: csv_chart <-dhamtf> <-S specfile> <-N name> <-D dir> <-T range> <-P diversity> files...
         | 
| 41 | 
            +
              -d  debug mode #{cw $debug}
         | 
| 42 | 
            +
              -h  print this help #{cw $help}
         | 
| 43 | 
            +
              -a  automatically create charts for all properties #{cw $create_all}
         | 
| 44 | 
            +
              -m  merge all files into single stats #{cw $merge_all}
         | 
| 45 | 
            +
              -t  merge and split by time (days) #{cw $time_split}
         | 
| 46 | 
            +
              -f  flush stdout #{cw $flush_stdout}
         | 
| 47 | 
            +
              -N  use specified name for merged dataset: #{$merged_name}
         | 
| 48 | 
            +
              -D  export charts to specified directory: #{$export_dir}
         | 
| 49 | 
            +
              -S  use chart specification in specified file: #{$specfile}
         | 
| 50 | 
            +
              -P  diversity threshold in percentage for automatic reports: #{$diversity}
         | 
| 51 | 
            +
              -T  set time-range filter: #{$time_range}
         | 
| 52 | 
            +
              -W  set default chart-width: #{$chart_width}
         | 
| 52 53 | 
             
            Files to import: #{$files.join(', ')}
         | 
| 53 54 | 
             
            EOHELP
         | 
| 54 55 | 
             
              exit
         | 
| @@ -224,18 +225,18 @@ module Geoptima | |
| 224 225 | 
             
                    val
         | 
| 225 226 | 
             
                  end
         | 
| 226 227 | 
             
                end
         | 
| 227 | 
            -
                def prepare_values( | 
| 228 | 
            +
                def prepare_values(all_values)
         | 
| 228 229 | 
             
                  @values = []
         | 
| 229 230 | 
             
                  if @indices
         | 
| 230 231 | 
             
                    puts "StatSpec[#{self}]: #{options.inspect}" if($debug)
         | 
| 231 | 
            -
                    @values = @indices.map{|i|  | 
| 232 | 
            +
                    @values = @indices.map{|i| all_values[i]}
         | 
| 232 233 | 
             
                    puts "\tVALUES:      #{values.inspect}" if($debug)
         | 
| 233 234 | 
             
                  end
         | 
| 234 235 | 
             
                  @values
         | 
| 235 236 | 
             
                end
         | 
| 236 | 
            -
                def vals_for( | 
| 237 | 
            +
                def vals_for(all_values,filter={})
         | 
| 237 238 | 
             
                  if @indices
         | 
| 238 | 
            -
                    prepare_values( | 
| 239 | 
            +
                    prepare_values(all_values)
         | 
| 239 240 | 
             
                    (options[:filter] || filter).each do |field,expected|
         | 
| 240 241 | 
             
                      puts "\t\tChecking if field #{field} is #{expected}" if($debug)
         | 
| 241 242 | 
             
                      puts "\t\tLooking for #{field} or #{event}.#{field} in #{@fields.inspect}" if($debug)
         | 
| @@ -246,8 +247,8 @@ module Geoptima | |
| 246 247 | 
             
                    values
         | 
| 247 248 | 
             
                  end
         | 
| 248 249 | 
             
                end
         | 
| 249 | 
            -
                def map_fields( | 
| 250 | 
            -
                  if vals = vals_for( | 
| 250 | 
            +
                def map_fields(all_values,filter={})
         | 
| 251 | 
            +
                  if vals = vals_for(all_values,filter)
         | 
| 251 252 | 
             
                    val = proc.nil? ? vals[0] : proc.call(*vals)
         | 
| 252 253 | 
             
                    puts "\tBLOCK MAP:   #{vals.inspect} --> #{val.inspect}" if($debug)
         | 
| 253 254 | 
             
                    if options[:div]
         | 
    
        data/bin/csv_merge
    CHANGED
    
    
    
        data/bin/show_geoptima
    CHANGED
    
    | @@ -8,7 +8,7 @@ require 'date' | |
| 8 8 | 
             
            require 'geoptima'
         | 
| 9 9 | 
             
            require 'geoptima/options'
         | 
| 10 10 |  | 
| 11 | 
            -
            Geoptima::assert_version("0.1. | 
| 11 | 
            +
            Geoptima::assert_version("0.1.6")
         | 
| 12 12 |  | 
| 13 13 | 
             
            $debug=false
         | 
| 14 14 |  | 
| @@ -117,6 +117,7 @@ Usage: show_geoptima <-dpvxomlsah> <-L limit> <-E types> <-T min,max> <-M mapfil | |
| 117 117 | 
             
              -l  longer header list (phone and operator fields) #{cw $more_headers}
         | 
| 118 118 | 
             
              -s  seperate the export files by event type #{cw $seperate}
         | 
| 119 119 | 
             
              -a  combine all IMEI's into a single dataset #{cw $combine_all}
         | 
| 120 | 
            +
              -f  flush stdout #{cw $flush_stdout}
         | 
| 120 121 | 
             
              -h  show this help
         | 
| 121 122 | 
             
              -P  prefix for exported files (default: ''; current: #{$export_prefix})
         | 
| 122 123 | 
             
              -E  comma-seperated list of event types to show and export (default: all; current: #{$event_names.join(',')})
         | 
| @@ -202,15 +203,15 @@ class Export | |
| 202 203 | 
             
                  when 'LAC-CI'
         | 
| 203 204 | 
             
                    "#{dataset.recent(event,'service.lac')}-#{dataset.recent(event,'service.cell_id')}"
         | 
| 204 205 | 
             
                  when 'MCC'
         | 
| 205 | 
            -
                    event.file[h] || dataset.recent(event,'service.mcc')
         | 
| 206 | 
            +
                    event.file[h] || dataset.recent(event,'service.mcc',3600)
         | 
| 206 207 | 
             
                  when 'MNC'
         | 
| 207 | 
            -
                    event.file[h] || dataset.recent(event,'service.mnc')
         | 
| 208 | 
            +
                    event.file[h] || dataset.recent(event,'service.mnc',3600)
         | 
| 208 209 | 
             
                  when 'Battery'
         | 
| 209 210 | 
             
                    dataset.recent(event,'batteryState.state',600)
         | 
| 210 211 | 
             
                  when 'Operator'
         | 
| 211 | 
            -
                    event.file['carrierName']
         | 
| 212 | 
            -
                  when 'IMSI'
         | 
| 213 | 
            -
                    event.file[ | 
| 212 | 
            +
                    event.file['carrierName'] || dataset.recent(event,'carrierName',3600)
         | 
| 213 | 
            +
                  when 'IMSI', 'OS', 'Platform', 'IMSI', 'MSISDN', 'Model'
         | 
| 214 | 
            +
                    event.file[h] || dataset.recent(event,h,3600)
         | 
| 214 215 | 
             
                  else
         | 
| 215 216 | 
             
                    event.file[h]
         | 
| 216 217 | 
             
                  end
         | 
| @@ -283,13 +284,14 @@ def if_le | |
| 283 284 | 
             
              $count += 1
         | 
| 284 285 | 
             
            end
         | 
| 285 286 |  | 
| 286 | 
            -
            puts "Found #{$datasets.length}  | 
| 287 | 
            +
            puts "Found #{$datasets.length} datasets: #{$datasets.values.join('; ')}"
         | 
| 288 | 
            +
             | 
| 287 289 | 
             
            $datasets.keys.sort.each do |imei|
         | 
| 288 290 | 
             
              dataset = $datasets[imei]
         | 
| 289 291 | 
             
              imsi = dataset.imsi
         | 
| 290 292 | 
             
              events = dataset.sorted
         | 
| 291 293 | 
             
              puts if($print)
         | 
| 292 | 
            -
              puts "Found #{dataset}"
         | 
| 294 | 
            +
              puts "Found #{dataset.description}"
         | 
| 293 295 | 
             
              if $verbose
         | 
| 294 296 | 
             
                puts "\tFirst Event: #{dataset.first}"
         | 
| 295 297 | 
             
                puts "\tLast Event:  #{dataset.last}"
         | 
    
        data/examples/csv_chart.rb
    CHANGED
    
    | @@ -10,7 +10,7 @@ require 'geoptima/options' | |
| 10 10 | 
             
            require 'fileutils'
         | 
| 11 11 | 
             
            require 'geoptima/daterange'
         | 
| 12 12 |  | 
| 13 | 
            -
            Geoptima::assert_version("0.1. | 
| 13 | 
            +
            Geoptima::assert_version("0.1.6")
         | 
| 14 14 | 
             
            Geoptima::Chart.available? || puts("No charting libraries available") || exit(-1)
         | 
| 15 15 |  | 
| 16 16 | 
             
            $export_dir = '.'
         | 
| @@ -37,18 +37,19 @@ $merge_all = true if($time_split) | |
| 37 37 | 
             
            $help = true unless($files.length>0)
         | 
| 38 38 | 
             
            if $help
         | 
| 39 39 | 
             
              puts <<EOHELP
         | 
| 40 | 
            -
            Usage: csv_chart <- | 
| 41 | 
            -
             | 
| 42 | 
            -
             | 
| 43 | 
            -
             | 
| 44 | 
            -
             | 
| 45 | 
            -
             | 
| 46 | 
            -
             | 
| 47 | 
            -
             | 
| 48 | 
            -
             | 
| 49 | 
            -
             | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 40 | 
            +
            Usage: csv_chart <-dhamtf> <-S specfile> <-N name> <-D dir> <-T range> <-P diversity> files...
         | 
| 41 | 
            +
              -d  debug mode #{cw $debug}
         | 
| 42 | 
            +
              -h  print this help #{cw $help}
         | 
| 43 | 
            +
              -a  automatically create charts for all properties #{cw $create_all}
         | 
| 44 | 
            +
              -m  merge all files into single stats #{cw $merge_all}
         | 
| 45 | 
            +
              -t  merge and split by time (days) #{cw $time_split}
         | 
| 46 | 
            +
              -f  flush stdout #{cw $flush_stdout}
         | 
| 47 | 
            +
              -N  use specified name for merged dataset: #{$merged_name}
         | 
| 48 | 
            +
              -D  export charts to specified directory: #{$export_dir}
         | 
| 49 | 
            +
              -S  use chart specification in specified file: #{$specfile}
         | 
| 50 | 
            +
              -P  diversity threshold in percentage for automatic reports: #{$diversity}
         | 
| 51 | 
            +
              -T  set time-range filter: #{$time_range}
         | 
| 52 | 
            +
              -W  set default chart-width: #{$chart_width}
         | 
| 52 53 | 
             
            Files to import: #{$files.join(', ')}
         | 
| 53 54 | 
             
            EOHELP
         | 
| 54 55 | 
             
              exit
         | 
| @@ -224,18 +225,18 @@ module Geoptima | |
| 224 225 | 
             
                    val
         | 
| 225 226 | 
             
                  end
         | 
| 226 227 | 
             
                end
         | 
| 227 | 
            -
                def prepare_values( | 
| 228 | 
            +
                def prepare_values(all_values)
         | 
| 228 229 | 
             
                  @values = []
         | 
| 229 230 | 
             
                  if @indices
         | 
| 230 231 | 
             
                    puts "StatSpec[#{self}]: #{options.inspect}" if($debug)
         | 
| 231 | 
            -
                    @values = @indices.map{|i|  | 
| 232 | 
            +
                    @values = @indices.map{|i| all_values[i]}
         | 
| 232 233 | 
             
                    puts "\tVALUES:      #{values.inspect}" if($debug)
         | 
| 233 234 | 
             
                  end
         | 
| 234 235 | 
             
                  @values
         | 
| 235 236 | 
             
                end
         | 
| 236 | 
            -
                def vals_for( | 
| 237 | 
            +
                def vals_for(all_values,filter={})
         | 
| 237 238 | 
             
                  if @indices
         | 
| 238 | 
            -
                    prepare_values( | 
| 239 | 
            +
                    prepare_values(all_values)
         | 
| 239 240 | 
             
                    (options[:filter] || filter).each do |field,expected|
         | 
| 240 241 | 
             
                      puts "\t\tChecking if field #{field} is #{expected}" if($debug)
         | 
| 241 242 | 
             
                      puts "\t\tLooking for #{field} or #{event}.#{field} in #{@fields.inspect}" if($debug)
         | 
| @@ -246,8 +247,8 @@ module Geoptima | |
| 246 247 | 
             
                    values
         | 
| 247 248 | 
             
                  end
         | 
| 248 249 | 
             
                end
         | 
| 249 | 
            -
                def map_fields( | 
| 250 | 
            -
                  if vals = vals_for( | 
| 250 | 
            +
                def map_fields(all_values,filter={})
         | 
| 251 | 
            +
                  if vals = vals_for(all_values,filter)
         | 
| 251 252 | 
             
                    val = proc.nil? ? vals[0] : proc.call(*vals)
         | 
| 252 253 | 
             
                    puts "\tBLOCK MAP:   #{vals.inspect} --> #{val.inspect}" if($debug)
         | 
| 253 254 | 
             
                    if options[:div]
         | 
    
        data/examples/csv_merge.rb
    CHANGED
    
    
    
        data/examples/show_geoptima.rb
    CHANGED
    
    | @@ -8,7 +8,7 @@ require 'date' | |
| 8 8 | 
             
            require 'geoptima'
         | 
| 9 9 | 
             
            require 'geoptima/options'
         | 
| 10 10 |  | 
| 11 | 
            -
            Geoptima::assert_version("0.1. | 
| 11 | 
            +
            Geoptima::assert_version("0.1.6")
         | 
| 12 12 |  | 
| 13 13 | 
             
            $debug=false
         | 
| 14 14 |  | 
| @@ -117,6 +117,7 @@ Usage: show_geoptima <-dpvxomlsah> <-L limit> <-E types> <-T min,max> <-M mapfil | |
| 117 117 | 
             
              -l  longer header list (phone and operator fields) #{cw $more_headers}
         | 
| 118 118 | 
             
              -s  seperate the export files by event type #{cw $seperate}
         | 
| 119 119 | 
             
              -a  combine all IMEI's into a single dataset #{cw $combine_all}
         | 
| 120 | 
            +
              -f  flush stdout #{cw $flush_stdout}
         | 
| 120 121 | 
             
              -h  show this help
         | 
| 121 122 | 
             
              -P  prefix for exported files (default: ''; current: #{$export_prefix})
         | 
| 122 123 | 
             
              -E  comma-seperated list of event types to show and export (default: all; current: #{$event_names.join(',')})
         | 
| @@ -202,15 +203,15 @@ class Export | |
| 202 203 | 
             
                  when 'LAC-CI'
         | 
| 203 204 | 
             
                    "#{dataset.recent(event,'service.lac')}-#{dataset.recent(event,'service.cell_id')}"
         | 
| 204 205 | 
             
                  when 'MCC'
         | 
| 205 | 
            -
                    event.file[h] || dataset.recent(event,'service.mcc')
         | 
| 206 | 
            +
                    event.file[h] || dataset.recent(event,'service.mcc',3600)
         | 
| 206 207 | 
             
                  when 'MNC'
         | 
| 207 | 
            -
                    event.file[h] || dataset.recent(event,'service.mnc')
         | 
| 208 | 
            +
                    event.file[h] || dataset.recent(event,'service.mnc',3600)
         | 
| 208 209 | 
             
                  when 'Battery'
         | 
| 209 210 | 
             
                    dataset.recent(event,'batteryState.state',600)
         | 
| 210 211 | 
             
                  when 'Operator'
         | 
| 211 | 
            -
                    event.file['carrierName']
         | 
| 212 | 
            -
                  when 'IMSI'
         | 
| 213 | 
            -
                    event.file[ | 
| 212 | 
            +
                    event.file['carrierName'] || dataset.recent(event,'carrierName',3600)
         | 
| 213 | 
            +
                  when 'IMSI', 'OS', 'Platform', 'IMSI', 'MSISDN', 'Model'
         | 
| 214 | 
            +
                    event.file[h] || dataset.recent(event,h,3600)
         | 
| 214 215 | 
             
                  else
         | 
| 215 216 | 
             
                    event.file[h]
         | 
| 216 217 | 
             
                  end
         | 
| @@ -283,13 +284,14 @@ def if_le | |
| 283 284 | 
             
              $count += 1
         | 
| 284 285 | 
             
            end
         | 
| 285 286 |  | 
| 286 | 
            -
            puts "Found #{$datasets.length}  | 
| 287 | 
            +
            puts "Found #{$datasets.length} datasets: #{$datasets.values.join('; ')}"
         | 
| 288 | 
            +
             | 
| 287 289 | 
             
            $datasets.keys.sort.each do |imei|
         | 
| 288 290 | 
             
              dataset = $datasets[imei]
         | 
| 289 291 | 
             
              imsi = dataset.imsi
         | 
| 290 292 | 
             
              events = dataset.sorted
         | 
| 291 293 | 
             
              puts if($print)
         | 
| 292 | 
            -
              puts "Found #{dataset}"
         | 
| 294 | 
            +
              puts "Found #{dataset.description}"
         | 
| 293 295 | 
             
              if $verbose
         | 
| 294 296 | 
             
                puts "\tFirst Event: #{dataset.first}"
         | 
| 295 297 | 
             
                puts "\tLast Event:  #{dataset.last}"
         | 
    
        data/lib/geoptima/data.rb
    CHANGED
    
    | @@ -239,10 +239,10 @@ module Geoptima | |
| 239 239 |  | 
| 240 240 | 
             
              class Dataset
         | 
| 241 241 |  | 
| 242 | 
            -
                attr_reader : | 
| 242 | 
            +
                attr_reader :name, :options
         | 
| 243 243 |  | 
| 244 | 
            -
                def initialize( | 
| 245 | 
            -
                  @ | 
| 244 | 
            +
                def initialize(name,options={})
         | 
| 245 | 
            +
                  @name = name
         | 
| 246 246 | 
             
                  @data = []
         | 
| 247 247 | 
             
                  @options = options
         | 
| 248 248 | 
             
                  @time_range = options[:time_range] || DateRange.new(Config[:min_datetime],Config[:max_datetime])
         | 
| @@ -263,14 +263,26 @@ module Geoptima | |
| 263 263 | 
             
                end
         | 
| 264 264 |  | 
| 265 265 | 
             
                def imsis
         | 
| 266 | 
            -
                  @imsis ||=  | 
| 267 | 
            -
             | 
| 268 | 
            -
             | 
| 266 | 
            +
                  @imsis ||= make_all_from_metadata('imsi')
         | 
| 267 | 
            +
                end
         | 
| 268 | 
            +
             | 
| 269 | 
            +
                def imei
         | 
| 270 | 
            +
                  imeis[0]
         | 
| 271 | 
            +
                end
         | 
| 272 | 
            +
             | 
| 273 | 
            +
                def imeis
         | 
| 274 | 
            +
                  @imeis ||= make_all_from_metadata('imei')
         | 
| 275 | 
            +
                end
         | 
| 276 | 
            +
             | 
| 277 | 
            +
                def make_all_from_metadata(field_name)
         | 
| 278 | 
            +
                  @data.inject({}) do |a,d|
         | 
| 279 | 
            +
                    a[d[field_name]] ||= 0
         | 
| 280 | 
            +
                    a[d[field_name]] += d.count.to_i
         | 
| 269 281 | 
             
                    a
         | 
| 270 282 | 
             
                  end.to_a.sort do |a,b|
         | 
| 271 283 | 
             
                    b[1]<=>a[1]
         | 
| 272 284 | 
             
                  end.map do |x|
         | 
| 273 | 
            -
                    #puts "Have  | 
| 285 | 
            +
                    #puts "Have #{field_name}: #{x.join('=')}"
         | 
| 274 286 | 
             
                    x[0]
         | 
| 275 287 | 
             
                  end.compact.uniq
         | 
| 276 288 | 
             
                end
         | 
| @@ -304,18 +316,18 @@ module Geoptima | |
| 304 316 | 
             
                end
         | 
| 305 317 |  | 
| 306 318 | 
             
                def [](key)
         | 
| 307 | 
            -
                  @fields[key.downcase] ||= @data.map{|d| d[key]}.compact.uniq | 
| 319 | 
            +
                  @fields[key.downcase] ||= @data.map{|d| d[key]}.compact.uniq
         | 
| 308 320 | 
             
                end
         | 
| 309 321 |  | 
| 310 | 
            -
                def  | 
| 322 | 
            +
                def platforms
         | 
| 311 323 | 
             
                  self['Platform']
         | 
| 312 324 | 
             
                end
         | 
| 313 325 |  | 
| 314 | 
            -
                def  | 
| 326 | 
            +
                def models
         | 
| 315 327 | 
             
                  self['Model']
         | 
| 316 328 | 
             
                end
         | 
| 317 329 |  | 
| 318 | 
            -
                def  | 
| 330 | 
            +
                def oses
         | 
| 319 331 | 
             
                  self['OS']
         | 
| 320 332 | 
             
                end
         | 
| 321 333 |  | 
| @@ -345,8 +357,8 @@ module Geoptima | |
| 345 357 |  | 
| 346 358 | 
             
                def header(names=nil)
         | 
| 347 359 | 
             
                  merge_events unless @sorted
         | 
| 348 | 
            -
                  (names || events_names).map do | | 
| 349 | 
            -
                    [(s=sorted( | 
| 360 | 
            +
                  (names || events_names).map do |event_type|
         | 
| 361 | 
            +
                    [(s=sorted(event_type)[0]) && s.header]
         | 
| 350 362 | 
             
                  end.flatten
         | 
| 351 363 | 
             
                end
         | 
| 352 364 |  | 
| @@ -420,7 +432,11 @@ module Geoptima | |
| 420 432 | 
             
                end
         | 
| 421 433 |  | 
| 422 434 | 
             
                def to_s
         | 
| 423 | 
            -
                   | 
| 435 | 
            +
                  (imei.to_s.length < 1 || name == imei) ? name : imeis.join(',')
         | 
| 436 | 
            +
                end
         | 
| 437 | 
            +
             | 
| 438 | 
            +
                def description
         | 
| 439 | 
            +
                  "Dataset:#{name}, IMEI:#{imeis.join(',')}, IMSI:#{imsis.join(',')}, Platform:#{platforms.join(',')}, Model:#{models.join(',')}, OS:#{oses.join(',')}, Files:#{file_count}, Events:#{sorted && sorted.length}"
         | 
| 424 440 | 
             
                end
         | 
| 425 441 |  | 
| 426 442 | 
             
                def self.make_datasets(files, options={})
         | 
    
        data/lib/geoptima/options.rb
    CHANGED
    
    | @@ -45,6 +45,7 @@ module Geoptima | |
| 45 45 |  | 
| 46 46 | 
             
                def self.process_args(debug=nil)
         | 
| 47 47 | 
             
                  options = Options.new(debug)
         | 
| 48 | 
            +
                  options.add('f') {$flush_stdout = true}
         | 
| 48 49 | 
             
                  options.add('v') {$print_version = true}
         | 
| 49 50 | 
             
                  options.add('d') {$debug = true}
         | 
| 50 51 | 
             
                  options.add('h') {$help = true}
         | 
| @@ -60,6 +61,7 @@ module Geoptima | |
| 60 61 | 
             
                    end
         | 
| 61 62 | 
             
                  end
         | 
| 62 63 | 
             
                  puts "Geoptima Gem Version: #{Geoptima::VERSION}" if($print_version)
         | 
| 64 | 
            +
                  STDOUT.sync if($flush_stdout)
         | 
| 63 65 | 
             
                  options.args
         | 
| 64 66 | 
             
                end
         | 
| 65 67 |  | 
    
        data/lib/geoptima/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,13 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: geoptima
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            -
              hash:  | 
| 4 | 
            +
              hash: 23
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
              segments: 
         | 
| 7 7 | 
             
              - 0
         | 
| 8 8 | 
             
              - 1
         | 
| 9 | 
            -
              -  | 
| 10 | 
            -
              version: 0.1. | 
| 9 | 
            +
              - 6
         | 
| 10 | 
            +
              version: 0.1.6
         | 
| 11 11 | 
             
            platform: ruby
         | 
| 12 12 | 
             
            authors: 
         | 
| 13 13 | 
             
            - Craig Taverner
         | 
| @@ -15,7 +15,7 @@ autorequire: | |
| 15 15 | 
             
            bindir: bin
         | 
| 16 16 | 
             
            cert_chain: []
         | 
| 17 17 |  | 
| 18 | 
            -
            date: 2012-04- | 
| 18 | 
            +
            date: 2012-04-23 00:00:00 +02:00
         | 
| 19 19 | 
             
            default_executable: 
         | 
| 20 20 | 
             
            dependencies: 
         | 
| 21 21 | 
             
            - !ruby/object:Gem::Dependency 
         |