Method: Argos::Ascii.source
- Defined in:
- lib/argos/ascii.rb
.source(argos) ⇒ Hash
Source fingerprint of Argos file (sha1 hash, segment and document counts, etc.)
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/argos/ascii.rb', line 70 def self.source(argos) argos.parse(argos.filename) latitude_mean = longitude_mean = nil if argos.latitudes.any? latitude_mean = (argos.latitudes.inject{ |sum, latitude| sum + latitude } / argos.latitudes.size).round(3) end if argos.longitudes.any? longitude_mean = (argos.longitudes.inject{ |sum, longitude| sum + longitude } / argos.latitudes.size).round(3) end source = { id: argos.source, technology: "argos", collection: "tracking", type: argos.type, programs: argos.programs, platforms: argos.platforms, start: argos.start, stop: argos.stop, north: argos.latitudes.max, east: argos.longitudes.max, south: argos.latitudes.min, west: argos.longitudes.min, latitude_mean: latitude_mean, longitude_mean: longitude_mean, file: "file://"+argos.filename, bytes: argos.filesize, modified: argos.updated.utc.iso8601, messages: argos..size, filter: argos.filtername.nil? ? argos.filter : argos.filtername, size: argos.size, parser: Argos.library_version } if argos.multiplicates.any? source[:multiplicates] = argos.multiplicates.map {|a| a[:id]} end if argos.errors.any? source[:errors] = argos.errors end source end |