Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 23 additions & 9 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
trackerific (0.7.5)
trackerific (0.7.6)
activesupport
builder
httparty (>= 0.12.0)
Expand All @@ -10,7 +10,7 @@ PATH
GEM
remote: https://rubygems.org/
specs:
activesupport (4.0.0)
activesupport (4.0.1)
i18n (~> 0.6, >= 0.6.4)
minitest (~> 4.2)
multi_json (~> 1.3)
Expand All @@ -21,13 +21,24 @@ GEM
nokogiri (>= 1.4.0)
atomic (1.1.14)
builder (3.2.2)
byebug (2.3.1)
columnize (~> 0.3.6)
debugger-linecache (~> 1.2.0)
columnize (0.3.6)
coveralls (0.7.0)
multi_json (~> 1.3)
rest-client
simplecov (>= 0.7)
term-ansicolor
thor
debugger (1.6.2)
columnize (>= 0.3.1)
debugger-linecache (~> 1.2.0)
debugger-ruby_core_source (~> 1.2.3)
debugger-linecache (1.2.0)
debugger-ruby_core_source (1.2.4)
diff-lcs (1.1.3)
docile (1.1.0)
fakeweb (1.3.0)
gyoku (1.1.0)
builder (>= 2.1.2)
Expand All @@ -38,8 +49,8 @@ GEM
rack
rubyntlm (~> 0.3.2)
i18n (0.6.5)
json (1.8.0)
mime-types (1.25)
json (1.8.1)
mime-types (2.0)
minitest (4.7.5)
multi_json (1.8.2)
multi_xml (0.5.5)
Expand All @@ -66,16 +77,17 @@ GEM
nokogiri (>= 1.4.0, < 1.6)
nori (~> 2.3.0)
wasabi (~> 3.2.0)
simplecov (0.7.1)
multi_json (~> 1.0)
simplecov-html (~> 0.7.1)
simplecov-html (0.7.1)
simplecov (0.8.2)
docile (~> 1.1.0)
multi_json
simplecov-html (~> 0.8.0)
simplecov-html (0.8.0)
term-ansicolor (1.2.2)
tins (~> 0.8)
thor (0.18.1)
thread_safe (0.1.3)
atomic
tins (0.12.0)
tins (0.13.1)
tzinfo (0.3.38)
wasabi (3.2.0)
httpi (~> 2.0)
Expand All @@ -86,7 +98,9 @@ PLATFORMS

DEPENDENCIES
bundler (>= 1.3.5)
byebug
coveralls (~> 0.7.0)
debugger
fakeweb (~> 1.3.0)
rake
rspec (~> 2.6.0)
Expand Down
6 changes: 5 additions & 1 deletion lib/trackerific/parsers/ups.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,11 @@ def description(a)
end

def location(a)
a['ActivityLocation']['Address'].map {|k,v| v}.join(" ")
if a['ActivityLocation']['Address'].nil?
""
else
a['ActivityLocation']['Address'].map {|k,v| v}.join(" ")
end
end

def activity
Expand Down
48 changes: 42 additions & 6 deletions lib/trackerific/parsers/usps.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,19 +29,55 @@ def tracking_info
@response['TrackResponse']['TrackInfo']
end

def date(event)
def date(event)
months = { "January" => 0, "Feburary" => 1, "March" => 2, "April" => 3, "May" => 4, "June" => 5, "July" => 6, "August" => 7, "September" => 8, "October" => 9, "November" => 10, "December" => 11 }

d = event.split(" ")
DateTime.parse(d[0..3].join(" "))
event_hash = Hash[d.map.with_index.to_a]

month_name = d.find { |element| months[element] }
start_value = event_hash[month_name]

if d[start_value + 4].present? # set end of range based on am/pm presence
if d[start_value + 4].include?("am") || d[start_value + 4].include?("pm")

end_value = start_value + 4
else
end_value = start_value + 2
end
else
end_value = start_value + 2
end

g = DateTime.parse(d[start_value..end_value].join(" "))
end

def description(event)
d = event.split(" ")
d[4..d.length-4].join(" ")
# description is always the first thing, separated by a comma from the date
d = event.split(",").first
end

def location(event)
d = event.gsub(".", "").split(" ")
city, state, zip = d.last(3)
"#{city}, #{state} #{zip}"

if d.last.include?("201") #detecting year 2013/2014/etc., no location present
city, state, zip = ["", "", ""]
else
event_hash = Hash[d.map.with_index.to_a]

starting_index = event_hash["2013,"] if event_hash["2013,"].present?
starting_index = event_hash["2014,"] if event_hash["2014,"].present?
starting_index = event_hash["am,"] if event_hash["am,"].present?
starting_index = event_hash["pm,"] if event_hash["pm,"].present?

package_location_array = d[starting_index + 1..d.length]

zip = package_location_array.last
state = package_location_array[package_location_array.length - 2]
city = package_location_array - [state, zip]
city = city.join(" ")
end

"#{city} #{state} #{zip}"
end
end
2 changes: 1 addition & 1 deletion lib/trackerific/version.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Trackerific
VERSION = "0.7.5"
VERSION = "0.7.6"
end
2 changes: 1 addition & 1 deletion spec/lib/trackerific/version_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
require 'spec_helper'

describe Trackerific::VERSION do
it { should eq "0.7.5" }
it { should eq "0.7.6" }
end
Binary file added trackerific-0.7.6.gem
Binary file not shown.
1 change: 1 addition & 0 deletions trackerific.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ Gem::Specification.new do |spec|

spec.add_development_dependency 'bundler', '>= 1.3.5'
spec.add_development_dependency 'rake'
spec.add_development_dependency 'debugger'
spec.add_development_dependency 'rspec', '~> 2.6.0'
spec.add_development_dependency 'fakeweb', '~> 1.3.0'
spec.add_development_dependency 'coveralls', '~> 0.7.0'
Expand Down