epodder 0.0.4 → 0.0.5
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 +7 -0
- data/bin/epodder +5 -1
- data/lib/arguments.rb +0 -2
- data/lib/configuration/configurator.rb +2 -1
- data/lib/database/episode.rb +1 -1
- data/lib/database/podcast.rb +1 -1
- data/lib/epodder.rb +18 -25
- data/lib/verb/catchup.rb +3 -7
- data/lib/verb/clean.rb +4 -6
- data/lib/verb/download.rb +5 -5
- data/lib/verb/remove.rb +6 -0
- data/lib/verb/update.rb +20 -21
- data/lib/verb/verb.rb +32 -19
- metadata +122 -45
- data/lib/configuration/configuration.rb +0 -4
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ecd79269c9453422ef0c084f210dc069f65c290b
|
4
|
+
data.tar.gz: 3fecdad4ad7a39555589713bb6798f26c6906bc2
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: bb4d61a4fbb044c995646026948546d678cf3c92806d69d2c9871b9cfd60750b500b0e7c58f6b8b17cd2a81cce8be6832929396293a73a21d60130e6076c1ad5
|
7
|
+
data.tar.gz: 94c55e0cff2e673c57a2ea998dfa32e7974453287314dccae05f418d753a32ed1a719f6894a08a0b5fde79db85b958aacaef288b515031f85878f3ab775d8816
|
data/bin/epodder
CHANGED
data/lib/arguments.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#TODO clean up nil!!
|
2
2
|
module Epodder
|
3
|
-
class Configurator
|
3
|
+
class Configurator < Eclass
|
4
4
|
@@default_path = "~/.epodder/"
|
5
5
|
@@db_path = "epodder.db"
|
6
6
|
@@yaml_path = "epodder.yaml"
|
@@ -62,6 +62,7 @@ module Epodder
|
|
62
62
|
false
|
63
63
|
end
|
64
64
|
|
65
|
+
|
65
66
|
def start_logging
|
66
67
|
logger = Yell.new :name => 'log' do |l|
|
67
68
|
if @args.log_file.nil?
|
data/lib/database/episode.rb
CHANGED
data/lib/database/podcast.rb
CHANGED
data/lib/epodder.rb
CHANGED
@@ -1,33 +1,26 @@
|
|
1
1
|
module Epodder
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require 'require_all'
|
5
|
-
require 'data_mapper'
|
6
|
-
require 'cmdparse'
|
7
|
-
require 'yell'
|
2
|
+
require_all File.dirname(File.dirname(__FILE__)) << '/lib'
|
8
3
|
|
9
|
-
|
4
|
+
@@verbose = false
|
10
5
|
|
11
|
-
|
6
|
+
def verbose?
|
7
|
+
@@verbose
|
8
|
+
end
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
|
10
|
+
def verbose= state
|
11
|
+
@@verbose = state
|
12
|
+
end
|
16
13
|
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
def self.do_verb verb, args
|
15
|
+
c = Epodder.const_get(verb.to_s.capitalize)
|
16
|
+
verb_object = c.send :new
|
17
|
+
verb_object.send verb, args
|
18
|
+
end
|
20
19
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
def self.run
|
28
|
-
args = Arguments.new
|
29
|
-
Configurator.new(args)
|
30
|
-
do_verb args.action, args.arguments
|
31
|
-
end
|
20
|
+
def self.run
|
21
|
+
args = Arguments.new
|
22
|
+
Configurator.new(args)
|
23
|
+
do_verb args.action, args.arguments
|
24
|
+
end
|
32
25
|
|
33
26
|
end
|
data/lib/verb/catchup.rb
CHANGED
@@ -4,16 +4,12 @@ module Epodder
|
|
4
4
|
if args.empty?
|
5
5
|
podcasts = Podcast.all
|
6
6
|
else
|
7
|
-
podcasts = args.map {|id| Podcast.get(id)}
|
7
|
+
podcasts = args.map {|id| Podcast.get(id.to_i)}
|
8
8
|
end
|
9
|
-
|
10
|
-
end
|
11
|
-
|
12
|
-
def catchup_podcasts podcasts
|
13
|
-
podcasts.each do |podcast|
|
9
|
+
podcasts.each do |podcast|
|
14
10
|
Episode.all(:downloaded => false, :podcast => podcast).update(:downloaded => true)
|
15
11
|
end
|
16
|
-
|
12
|
+
end
|
17
13
|
end
|
18
14
|
|
19
15
|
end
|
data/lib/verb/clean.rb
CHANGED
@@ -8,7 +8,7 @@ module Epodder
|
|
8
8
|
if args.empty?
|
9
9
|
podcasts = Podcast.all
|
10
10
|
else
|
11
|
-
podcasts = args.map{|podcast| Podcast.get(podcast)}
|
11
|
+
podcasts = args.map{|podcast| Podcast.get(podcast.to_i)}
|
12
12
|
end
|
13
13
|
podcasts.each do |podcast|
|
14
14
|
count = 0
|
@@ -17,15 +17,13 @@ module Epodder
|
|
17
17
|
known_episodes = known_episodes.map{|episode| episode.url.to_s}
|
18
18
|
feed_episodes = feed_episodes.map{|episode|@episode = episode; episode.enclosure.url}
|
19
19
|
episodes = (known_episodes - feed_episodes)
|
20
|
-
|
20
|
+
episodes_length = episodes.length
|
21
21
|
episodes.map{|episode| Episode.all(:url => episode)}.each do |episode|
|
22
|
-
|
23
|
-
win = episode.destroy
|
24
|
-
if !win
|
22
|
+
if !episode.destroy
|
25
23
|
episode.errors.each {|error| puts error}
|
26
24
|
end
|
27
25
|
end
|
28
|
-
puts "#{podcast.title} -- cleaned #{
|
26
|
+
puts "#{podcast.title} -- cleaned #{episodes_length} episodes"
|
29
27
|
end
|
30
28
|
end
|
31
29
|
|
data/lib/verb/download.rb
CHANGED
@@ -9,11 +9,12 @@ module Epodder
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def download args
|
12
|
-
|
12
|
+
each_argument(args) do |podcast|
|
13
|
+
look_for_episodes podcast
|
14
|
+
end
|
13
15
|
end
|
14
16
|
|
15
|
-
def look_for_episodes
|
16
|
-
podcasts.each do |podcast|
|
17
|
+
def look_for_episodes podcast
|
17
18
|
episodes = Episode.all(:downloaded => false, :podcast => podcast)
|
18
19
|
episodes.select{|ep| !ep.nil?}.each do |episode|
|
19
20
|
puts episode.podcast.title
|
@@ -22,14 +23,13 @@ module Epodder
|
|
22
23
|
puts "Downloading #{title} - #{episode.title || episode.id}"
|
23
24
|
download_episode episode
|
24
25
|
end
|
25
|
-
end
|
26
26
|
end
|
27
27
|
|
28
28
|
def download_episode episode
|
29
29
|
begin
|
30
30
|
@mechanize.get(episode.url).save_as("download/#{episode.podcast.title.strip}/#{episode.url.to_s.match('((?!\/).)*$')}")
|
31
31
|
episode.mark_as_downloaded
|
32
|
-
rescue
|
32
|
+
rescue StandardError => e
|
33
33
|
puts e
|
34
34
|
end
|
35
35
|
end
|
data/lib/verb/remove.rb
CHANGED
@@ -6,6 +6,12 @@ module Epodder
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def remove args
|
9
|
+
each_argument(args) do |podcast|
|
10
|
+
input = ask("Remove #{podcast.id} : #{podcast.title}? Type \"YES\" to remove")
|
11
|
+
if input == "YES"
|
12
|
+
podcast.destroy
|
13
|
+
end
|
14
|
+
end
|
9
15
|
args.map{|id| Podcast.get(id)}.each do |podcast|
|
10
16
|
input = ask("Remove #{podcast.id} : #{podcast.title}? Type \"YES\" to remove")
|
11
17
|
if input == "YES"
|
data/lib/verb/update.rb
CHANGED
@@ -11,53 +11,52 @@ module Epodder
|
|
11
11
|
end
|
12
12
|
|
13
13
|
def update args
|
14
|
-
|
14
|
+
each_argument(args) do |podcast|
|
15
|
+
check_for_new_episodes podcast
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
|
-
def check_for_new_episodes
|
18
|
-
podcasts.each do |podcast|
|
19
|
-
@podcast = podcast
|
20
|
-
@podcast_urls = @podcast.episodes.map {|episode| episode.url}
|
19
|
+
def check_for_new_episodes podcast
|
21
20
|
max_pub = get_max_pubdate podcast
|
22
21
|
open_podcast podcast, max_pub
|
23
|
-
end
|
24
22
|
end
|
25
23
|
|
26
24
|
def get_max_pubdate podcast
|
27
|
-
Episode.max(:pub_date, :conditions => { :podcast => podcast}) || Time.at(0).to_date
|
25
|
+
Episode.max(:pub_date, :conditions => { :podcast => podcast }) || Time.at(0).to_date
|
28
26
|
end
|
29
27
|
|
30
28
|
def open_podcast podcast, max_pub
|
31
29
|
begin
|
32
30
|
@mechanize.get(podcast.uri) do |feed|
|
33
31
|
@log.info "Maximum pubdate for #{podcast.title} - #{podcast.id} is #{max_pub}"
|
34
|
-
parse_feed feed, max_pub
|
32
|
+
parse_feed feed, podcast, max_pub
|
35
33
|
end
|
36
|
-
rescue
|
37
|
-
puts e
|
34
|
+
rescue StandardError => e
|
35
|
+
puts "#{podcast.title} - #{e}"
|
38
36
|
end
|
39
37
|
end
|
40
38
|
|
41
|
-
def parse_feed feed, max_pub
|
39
|
+
def parse_feed feed, database_podcast, max_pub
|
42
40
|
podcast = FeedMe.parse feed.body
|
43
41
|
podcast.emulate_atom!
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
42
|
+
pending_episodes = podcast.items.select {|item| is_valid? item, max_pub}
|
43
|
+
pending_episodes.each {|pending_episode| add_eligible_episode database_podcast, pending_episode }
|
44
|
+
length = pending_episodes.length
|
45
|
+
puts "#{database_podcast.title} has #{length} new episodes" if length > 0
|
46
|
+
end
|
47
|
+
|
48
|
+
def is_valid? item, max_pub
|
49
|
+
item.enclosure && item.pubdate.to_date > max_pub.to_date
|
49
50
|
end
|
50
51
|
|
51
|
-
def
|
52
|
-
if item.enclosure && item.pubdate.to_date > max_pub.to_date
|
52
|
+
def add_eligible_episode podcast, item
|
53
53
|
begin
|
54
|
-
@count += 1
|
55
54
|
ep = Episode.first_or_create(
|
56
55
|
:title => item.title,
|
57
56
|
:url => item.enclosure.url,
|
58
57
|
:pub_date => item.pubdate.to_date,
|
59
58
|
:downloaded => false,
|
60
|
-
:podcast =>
|
59
|
+
:podcast => podcast
|
61
60
|
)
|
62
61
|
ep.errors.each do |error|
|
63
62
|
@log.error error
|
@@ -65,8 +64,8 @@ module Epodder
|
|
65
64
|
|
66
65
|
rescue Exception => e
|
67
66
|
@log.error e
|
67
|
+
raise e
|
68
68
|
end
|
69
|
-
end
|
70
69
|
end
|
71
70
|
|
72
71
|
end
|
data/lib/verb/verb.rb
CHANGED
@@ -1,24 +1,37 @@
|
|
1
1
|
module Epodder
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
class Verb < Eclass
|
3
|
+
def verb_struct
|
4
|
+
super
|
5
|
+
Struct.new(:name,:description,:block)
|
6
|
+
end
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
8
|
+
def add_command (cmd, args)
|
9
|
+
command = CmdParse::Command.new(@verb.name,false,false)
|
10
|
+
command.short_desc = @verb.description
|
11
|
+
command.set_execution_block(&@verb.block)
|
12
|
+
cmd.add_command(command)
|
13
|
+
end
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
def lookup_args args
|
16
|
+
if args.empty?
|
17
|
+
podcasts = Podcast.all
|
18
|
+
else
|
19
|
+
podcasts = args.map {|id| Podcast.get(id.to_i)}
|
20
|
+
end
|
21
|
+
end
|
22
22
|
|
23
|
-
|
23
|
+
def each_argument args, &block
|
24
|
+
podcasts = nil
|
25
|
+
if args.empty?
|
26
|
+
podcasts = Podcast.all
|
27
|
+
else
|
28
|
+
podcasts = args.map {|id| Podcast.get(id.to_i)}
|
29
|
+
end
|
30
|
+
podcasts.each do |podcast|
|
31
|
+
yield podcast
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
|
36
|
+
end
|
24
37
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: epodder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Eric Bergstrom
|
@@ -14,145 +13,225 @@ dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: nokogiri
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: feedme
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: mechanize
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- -
|
52
|
+
- - '>='
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: cmdparse
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - '>='
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: data_mapper
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
76
|
type: :runtime
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- -
|
80
|
+
- - '>='
|
92
81
|
- !ruby/object:Gem::Version
|
93
82
|
version: '0'
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: dm-sqlite-adapter
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
|
-
- -
|
87
|
+
- - '>='
|
100
88
|
- !ruby/object:Gem::Version
|
101
89
|
version: '0'
|
102
90
|
type: :runtime
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
|
-
- -
|
94
|
+
- - '>='
|
108
95
|
- !ruby/object:Gem::Version
|
109
96
|
version: '0'
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: yell
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - '>='
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: '0'
|
118
104
|
type: :runtime
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
|
-
- -
|
108
|
+
- - '>='
|
124
109
|
- !ruby/object:Gem::Version
|
125
110
|
version: '0'
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: highline
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
|
-
- -
|
115
|
+
- - '>='
|
132
116
|
- !ruby/object:Gem::Version
|
133
117
|
version: '0'
|
134
118
|
type: :runtime
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
|
-
- -
|
122
|
+
- - '>='
|
140
123
|
- !ruby/object:Gem::Version
|
141
124
|
version: '0'
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: require_all
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
|
-
- -
|
129
|
+
- - '>='
|
148
130
|
- !ruby/object:Gem::Version
|
149
131
|
version: '0'
|
150
132
|
type: :runtime
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
|
-
- -
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: bundler
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: simplecov
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '>='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '>='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: excellent
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - '>='
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '>='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: flog
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '>='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - '>='
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: flay
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - '>='
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - '>='
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rubocop
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - '>='
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rspec
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - '>='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - '>='
|
156
235
|
- !ruby/object:Gem::Version
|
157
236
|
version: '0'
|
158
237
|
description:
|
@@ -163,7 +242,6 @@ extensions: []
|
|
163
242
|
extra_rdoc_files: []
|
164
243
|
files:
|
165
244
|
- lib/arguments.rb
|
166
|
-
- lib/configuration/configuration.rb
|
167
245
|
- lib/configuration/configurator.rb
|
168
246
|
- lib/database/episode.rb
|
169
247
|
- lib/database/podcast.rb
|
@@ -181,26 +259,25 @@ files:
|
|
181
259
|
- bin/epodder
|
182
260
|
homepage: http://github.com/scribe/epodder
|
183
261
|
licenses: []
|
262
|
+
metadata: {}
|
184
263
|
post_install_message:
|
185
264
|
rdoc_options: []
|
186
265
|
require_paths:
|
187
266
|
- lib
|
188
267
|
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
-
none: false
|
190
268
|
requirements:
|
191
|
-
- -
|
269
|
+
- - '>='
|
192
270
|
- !ruby/object:Gem::Version
|
193
271
|
version: '0'
|
194
272
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
195
|
-
none: false
|
196
273
|
requirements:
|
197
|
-
- -
|
274
|
+
- - '>='
|
198
275
|
- !ruby/object:Gem::Version
|
199
276
|
version: '0'
|
200
277
|
requirements: []
|
201
278
|
rubyforge_project:
|
202
|
-
rubygems_version:
|
279
|
+
rubygems_version: 2.0.3
|
203
280
|
signing_key:
|
204
|
-
specification_version:
|
281
|
+
specification_version: 4
|
205
282
|
summary: Ruby re-do of hpodder
|
206
283
|
test_files: []
|