apple_epf 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/lib/apple_epf.rb CHANGED
@@ -6,11 +6,13 @@ require 'core_ext/module'
6
6
  require 'apple_epf/errors'
7
7
  require 'apple_epf/logging'
8
8
  require 'apple_epf/main'
9
+ require 'apple_epf/finder'
9
10
  require 'apple_epf/download_processor'
10
11
  require 'apple_epf/downloader'
11
12
  require 'apple_epf/extractor'
12
13
  require 'apple_epf/parser'
13
14
 
15
+
14
16
  module AppleEpf
15
17
  FILE_TYPES = %w( full incremental )
16
18
 
@@ -6,6 +6,8 @@ require 'digest/md5'
6
6
  module AppleEpf
7
7
  class Downloader
8
8
  include AppleEpf::Logging
9
+ include AppleEpf::Finder
10
+
9
11
  ITUNES_FLAT_FEED_URL = 'https://feeds.itunes.apple.com/feeds/epf/v3/full'.freeze
10
12
 
11
13
  attr_accessor :type, :filename, :filedate, :force_url
@@ -62,11 +64,13 @@ module AppleEpf
62
64
  # Return false if no url was suggested or file does not exist
63
65
  raise AppleEpf::DownloaderError.new("Unable to find out what file do you want to download") if path.empty?
64
66
 
65
- unless file_exists?(path)
67
+ _full_url = apple_filename_full_url(path)
68
+ unless file_exists?(_full_url)
66
69
  if @type == 'incremental'
67
70
  #force prev week. Apple sometimes put files for Sunday to prev week, not current.
68
71
  path = "#{main_dir_date(true)}/incremental/#{date_of_file}/#{@filename}#{date_of_file}.tbz"
69
- raise AppleEpf::FileNotExist.new("File does not exist #{path}") unless file_exists?(path)
72
+ _full_url = apple_filename_full_url(path)
73
+ raise AppleEpf::FileNotExist.new("File does not exist #{path}") unless file_exists?(_full_url)
70
74
  else
71
75
  raise AppleEpf::FileNotExist.new("File does not exist #{path}")
72
76
  end
@@ -103,27 +107,5 @@ module AppleEpf
103
107
  main_folder_date = Chronic.parse("#{this_or_last} week wednesday", :now => @filedate.to_time).to_date
104
108
  date_to_epf_format(main_folder_date)
105
109
  end
106
-
107
- def date_to_epf_format(date)
108
- date.strftime("%Y%m%d")
109
- end
110
-
111
- def file_exists?(path_to_check)
112
- full_url = apple_filename_full_url(path_to_check)
113
- logger_info "Checking file at URL: #{full_url}"
114
-
115
- uri = URI.parse(full_url)
116
-
117
- request = Net::HTTP::Head.new(full_url)
118
- request.basic_auth(AppleEpf.apple_id, AppleEpf.apple_password)
119
-
120
- r = Net::HTTP.new(uri.host, uri.port)
121
- r.use_ssl = true
122
- response = r.start { |http| http.request(request) }
123
-
124
- raise AppleEpf::BadCredentialsError.new('Bad credentials') if response.code == "401"
125
-
126
- response.code == "200"
127
- end
128
110
  end
129
111
  end
@@ -0,0 +1,85 @@
1
+ module AppleEpf
2
+ module Finder
3
+ extend self
4
+ ITUNES_FULL_URL = "https://feeds.itunes.apple.com/feeds/epf/v3/full/".freeze
5
+ ITUNES_INCREMENTAL_URL = "https://feeds.itunes.apple.com/feeds/epf/v3/full/%s/incremental/".freeze
6
+
7
+ # AppleEpf::Finder.find_incremental(Date.parse('20140311'), 'popularity')
8
+ # => "https://feeds.itunes.apple.com/feeds/epf/v3/full/20140305/incremental/20140311/popularity20140311.tbz"
9
+ def find_incremental(date, filename)
10
+ all_weeks = get_weekly_folders_from_full_url
11
+ potential_dates = detect_closest_weeks_for_date(all_weeks, date)
12
+ founded_url = nil
13
+ potential_dates.reverse.each do |potential|
14
+ found = week_include_date?(potential, date)
15
+ if found
16
+ _founded_url = (ITUNES_INCREMENTAL_URL % potential) + date_to_epf_format(date) +
17
+ "/" + "#{filename}#{date_to_epf_format(date)}.tbz"
18
+ founded_url = _founded_url if file_exists?(_founded_url)
19
+ break if founded_url
20
+ end
21
+ end
22
+
23
+ founded_url
24
+ end
25
+
26
+ #daily_date is Date object
27
+ def week_include_date?(week_date, daily_date)
28
+ dates = get_daily_incremental_folders_within_week_url(week_date)
29
+ dates.detect{|d| Date.parse(d) == daily_date}
30
+ end
31
+
32
+ #date is Date object
33
+ def detect_closest_weeks_for_date(all_weeks, date)
34
+ date_range = ((date - 16)..(date + 16)).to_a
35
+ all_weeks.select{|d| date_range.include?(Date.parse(d))}
36
+ end
37
+
38
+ def get_daily_incremental_folders_within_week_url(week_folder)
39
+ url = ITUNES_INCREMENTAL_URL % week_folder
40
+ get_folders_from_url(url)
41
+ end
42
+
43
+ def get_weekly_folders_from_full_url
44
+ get_folders_from_url(ITUNES_FULL_URL)
45
+ end
46
+
47
+
48
+ def get_folders_from_url(url)
49
+ uri = URI(url)
50
+
51
+ req = Net::HTTP::Get.new(uri.request_uri)
52
+ req.basic_auth(AppleEpf.apple_id, AppleEpf.apple_password)
53
+
54
+ res = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) {|http|
55
+ http.request(req)
56
+ }
57
+
58
+ body = res.body
59
+ avaliable_dates = Nokogiri::HTML(body).xpath("//td/a").map(&:text).select{|s| s[0..7] =~ /\d{8}/}.map{|s| s.chomp("/")}
60
+ avaliable_dates
61
+ end
62
+
63
+
64
+ def date_to_epf_format(date)
65
+ date.strftime("%Y%m%d")
66
+ end
67
+
68
+ def file_exists?(full_url)
69
+
70
+ uri = URI.parse(full_url)
71
+
72
+ request = Net::HTTP::Head.new(full_url)
73
+ request.basic_auth(AppleEpf.apple_id, AppleEpf.apple_password)
74
+
75
+ r = Net::HTTP.new(uri.host, uri.port)
76
+ r.use_ssl = true
77
+ response = r.start { |http| http.request(request) }
78
+
79
+ raise AppleEpf::BadCredentialsError.new('Bad credentials') if response.code == "401"
80
+
81
+ response.code == "200"
82
+ end
83
+
84
+ end
85
+ end
File without changes
@@ -1,3 +1,3 @@
1
1
  module AppleEpf
2
- VERSION = "1.2.0"
2
+ VERSION = "1.2.1"
3
3
  end
@@ -0,0 +1,22 @@
1
+ # encoding: UTF-8
2
+ require File.expand_path('../../../spec_helper', __FILE__)
3
+
4
+ describe AppleEpf::Finder do
5
+ describe ".detect_closest_weeks_for_date" do
6
+ it "should return closest weeks to perform further lookup" do
7
+ all_weeks = ["20120111", "20120118", "20120215", "20120314", "20120321", "20120328", "20120404", "20120509", "20120523", "20120606", "20120620", "20120718", "20120725", "20120801", "20120808", "20120829", "20120919", "20120926", "20121003", "20121017", "20121114", "20121121", "20121128", "20130109", "20130123", "20130130", "20130213", "20130227", "20130320", "20130327", "20130522", "20130529", "20130724", "20130821", "20130925", "20131002", "20131009", "20131016", "20131023", "20131030", "20131106", "20131113", "20131120", "20131127", "20131204", "20131211", "20131218", "20131225", "20140101", "20140108", "20140115", "20140122", "20140129", "20140213", "20140219", "20140226", "20140305", "20140312", "20140319"]
8
+
9
+ interesting_date = Date.parse('20140124')
10
+
11
+ r = AppleEpf::Finder.detect_closest_weeks_for_date(all_weeks, interesting_date)
12
+ r.should == ["20140108", "20140115", "20140122", "20140129"]
13
+
14
+ interesting_date = Date.parse('20131002')
15
+
16
+ r = AppleEpf::Finder.detect_closest_weeks_for_date(all_weeks, interesting_date)
17
+ r.should == ["20130925", "20131002", "20131009", "20131016"]
18
+ end
19
+ end
20
+
21
+
22
+ end
@@ -0,0 +1,71 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2
+ <html>
3
+ <head>
4
+ <title>Index of /feeds/epf/v3/full</title>
5
+ </head>
6
+ <body>
7
+ <h1>Index of /feeds/epf/v3/full</h1>
8
+ <table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
9
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120111/">20120111/</a> </td><td align="right">26-Feb-2012 04:59 </td><td align="right"> - </td><td>&nbsp;</td></tr>
10
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120118/">20120118/</a> </td><td align="right">05-Mar-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
11
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120215/">20120215/</a> </td><td align="right">02-Apr-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
12
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120314/">20120314/</a> </td><td align="right">29-Apr-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
13
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120321/">20120321/</a> </td><td align="right">07-May-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
14
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120328/">20120328/</a> </td><td align="right">13-May-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
15
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120404/">20120404/</a> </td><td align="right">20-May-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
16
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120509/">20120509/</a> </td><td align="right">24-Jun-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
17
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120523/">20120523/</a> </td><td align="right">08-Jul-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
18
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120606/">20120606/</a> </td><td align="right">22-Jul-2012 05:27 </td><td align="right"> - </td><td>&nbsp;</td></tr>
19
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120620/">20120620/</a> </td><td align="right">05-Aug-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
20
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120718/">20120718/</a> </td><td align="right">02-Sep-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
21
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120725/">20120725/</a> </td><td align="right">09-Sep-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
22
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120801/">20120801/</a> </td><td align="right">16-Sep-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
23
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120808/">20120808/</a> </td><td align="right">23-Sep-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
24
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120829/">20120829/</a> </td><td align="right">14-Oct-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
25
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120919/">20120919/</a> </td><td align="right">04-Nov-2012 01:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
26
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20120926/">20120926/</a> </td><td align="right">11-Nov-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
27
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20121003/">20121003/</a> </td><td align="right">18-Nov-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
28
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20121017/">20121017/</a> </td><td align="right">02-Dec-2012 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
29
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20121114/">20121114/</a> </td><td align="right">30-Dec-2012 03:42 </td><td align="right"> - </td><td>&nbsp;</td></tr>
30
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20121121/">20121121/</a> </td><td align="right">06-Jan-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
31
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20121128/">20121128/</a> </td><td align="right">13-Jan-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
32
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130109/">20130109/</a> </td><td align="right">25-Feb-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
33
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130123/">20130123/</a> </td><td align="right">11-Mar-2013 03:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
34
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130130/">20130130/</a> </td><td align="right">18-Mar-2013 03:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
35
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130213/">20130213/</a> </td><td align="right">01-Apr-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
36
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130227/">20130227/</a> </td><td align="right">15-Apr-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
37
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130320/">20130320/</a> </td><td align="right">06-May-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
38
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130327/">20130327/</a> </td><td align="right">13-May-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
39
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130522/">20130522/</a> </td><td align="right">09-Jul-2013 10:17 </td><td align="right"> - </td><td>&nbsp;</td></tr>
40
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130529/">20130529/</a> </td><td align="right">15-Jul-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
41
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130724/">20130724/</a> </td><td align="right">09-Sep-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
42
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130821/">20130821/</a> </td><td align="right">07-Oct-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
43
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20130925/">20130925/</a> </td><td align="right">17-Feb-2014 15:15 </td><td align="right"> - </td><td>&nbsp;</td></tr>
44
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131002/">20131002/</a> </td><td align="right">25-Feb-2014 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
45
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131009/">20131009/</a> </td><td align="right">04-Mar-2014 18:09 </td><td align="right"> - </td><td>&nbsp;</td></tr>
46
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131016/">20131016/</a> </td><td align="right">02-Dec-2013 11:04 </td><td align="right"> - </td><td>&nbsp;</td></tr>
47
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131023/">20131023/</a> </td><td align="right">17-Mar-2014 14:51 </td><td align="right"> - </td><td>&nbsp;</td></tr>
48
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131030/">20131030/</a> </td><td align="right">24-Mar-2014 17:24 </td><td align="right"> - </td><td>&nbsp;</td></tr>
49
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131106/">20131106/</a> </td><td align="right">23-Dec-2013 12:36 </td><td align="right"> - </td><td>&nbsp;</td></tr>
50
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131113/">20131113/</a> </td><td align="right">31-Dec-2013 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
51
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131120/">20131120/</a> </td><td align="right">07-Jan-2014 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
52
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131127/">20131127/</a> </td><td align="right">13-Jan-2014 14:07 </td><td align="right"> - </td><td>&nbsp;</td></tr>
53
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131204/">20131204/</a> </td><td align="right">20-Jan-2014 16:54 </td><td align="right"> - </td><td>&nbsp;</td></tr>
54
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131211/">20131211/</a> </td><td align="right">28-Jan-2014 03:33 </td><td align="right"> - </td><td>&nbsp;</td></tr>
55
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131218/">20131218/</a> </td><td align="right">04-Feb-2014 05:04 </td><td align="right"> - </td><td>&nbsp;</td></tr>
56
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20131225/">20131225/</a> </td><td align="right">10-Feb-2014 11:45 </td><td align="right"> - </td><td>&nbsp;</td></tr>
57
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140101/">20140101/</a> </td><td align="right">18-Feb-2014 00:43 </td><td align="right"> - </td><td>&nbsp;</td></tr>
58
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140108/">20140108/</a> </td><td align="right">25-Feb-2014 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
59
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140115/">20140115/</a> </td><td align="right">04-Mar-2014 02:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
60
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140122/">20140122/</a> </td><td align="right">11-Mar-2014 03:00 </td><td align="right"> - </td><td>&nbsp;</td></tr>
61
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140129/">20140129/</a> </td><td align="right">17-Mar-2014 14:51 </td><td align="right"> - </td><td>&nbsp;</td></tr>
62
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140213/">20140213/</a> </td><td align="right">18-Feb-2014 00:42 </td><td align="right"> - </td><td>&nbsp;</td></tr>
63
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140219/">20140219/</a> </td><td align="right">22-Feb-2014 11:14 </td><td align="right"> - </td><td>&nbsp;</td></tr>
64
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140226/">20140226/</a> </td><td align="right">01-Mar-2014 14:13 </td><td align="right"> - </td><td>&nbsp;</td></tr>
65
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140305/">20140305/</a> </td><td align="right">08-Mar-2014 12:15 </td><td align="right"> - </td><td>&nbsp;</td></tr>
66
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140312/">20140312/</a> </td><td align="right">15-Mar-2014 12:26 </td><td align="right"> - </td><td>&nbsp;</td></tr>
67
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="20140319/">20140319/</a> </td><td align="right">22-Mar-2014 14:20 </td><td align="right"> - </td><td>&nbsp;</td></tr>
68
+ <tr><td valign="top"><img src="/icons/folder.gif" alt="[DIR]"></td><td><a href="current/">current/</a> </td><td align="right">22-Mar-2014 14:20 </td><td align="right"> - </td><td>&nbsp;</td></tr>
69
+ <tr><th colspan="5"><hr></th></tr>
70
+ </table>
71
+ </body></html>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: apple_epf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-03 00:00:00.000000000 Z
12
+ date: 2014-03-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -203,6 +203,8 @@ files:
203
203
  - lib/apple_epf/downloader.rb
204
204
  - lib/apple_epf/errors.rb
205
205
  - lib/apple_epf/extractor.rb
206
+ - lib/apple_epf/finder.rb
207
+ - lib/apple_epf/finder.rb~
206
208
  - lib/apple_epf/logging.rb
207
209
  - lib/apple_epf/main.rb
208
210
  - lib/apple_epf/parser.rb
@@ -217,6 +219,7 @@ files:
217
219
  - spec/lib/apple_epf/download_processor/aria_download_processor_spec.rb
218
220
  - spec/lib/apple_epf/downloader_spec.rb
219
221
  - spec/lib/apple_epf/exctractor_spec.rb
222
+ - spec/lib/apple_epf/finder_spec.rb
220
223
  - spec/lib/apple_epf/main_spec.rb
221
224
  - spec/lib/apple_epf/parser_spec.rb
222
225
  - spec/spec_helper.rb
@@ -230,6 +233,7 @@ files:
230
233
  - spec/support/fixtures/itunes/epf/incremental/popularity20130111.tbz
231
234
  - spec/support/fixtures/itunes/epf/incremental/popularity20130111/popularity1
232
235
  - spec/support/fixtures/itunes/epf/incremental/popularity20130111/popularity2
236
+ - spec/support/fixtures/itunes/epf/index_of_folders.html
233
237
  homepage:
234
238
  licenses: []
235
239
  post_install_message:
@@ -244,7 +248,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
244
248
  version: '0'
245
249
  segments:
246
250
  - 0
247
- hash: -6031403435138943
251
+ hash: 2191365109496733098
248
252
  required_rubygems_version: !ruby/object:Gem::Requirement
249
253
  none: false
250
254
  requirements:
@@ -253,7 +257,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
253
257
  version: '0'
254
258
  segments:
255
259
  - 0
256
- hash: -6031403435138943
260
+ hash: 2191365109496733098
257
261
  requirements: []
258
262
  rubyforge_project:
259
263
  rubygems_version: 1.8.23
@@ -264,6 +268,7 @@ test_files:
264
268
  - spec/lib/apple_epf/download_processor/aria_download_processor_spec.rb
265
269
  - spec/lib/apple_epf/downloader_spec.rb
266
270
  - spec/lib/apple_epf/exctractor_spec.rb
271
+ - spec/lib/apple_epf/finder_spec.rb
267
272
  - spec/lib/apple_epf/main_spec.rb
268
273
  - spec/lib/apple_epf/parser_spec.rb
269
274
  - spec/spec_helper.rb
@@ -277,3 +282,4 @@ test_files:
277
282
  - spec/support/fixtures/itunes/epf/incremental/popularity20130111.tbz
278
283
  - spec/support/fixtures/itunes/epf/incremental/popularity20130111/popularity1
279
284
  - spec/support/fixtures/itunes/epf/incremental/popularity20130111/popularity2
285
+ - spec/support/fixtures/itunes/epf/index_of_folders.html