feed2email 0.8.0 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -10
- data/README.md +138 -86
- data/bin/f2e +6 -4
- data/bin/feed2email +6 -4
- data/bin/feed2email-migrate +23 -0
- data/lib/feed2email.rb +6 -9
- data/lib/feed2email/cli.rb +112 -75
- data/lib/feed2email/config.rb +72 -52
- data/lib/feed2email/core_ext.rb +10 -0
- data/lib/feed2email/database.rb +75 -0
- data/lib/feed2email/entry.rb +149 -15
- data/lib/feed2email/feed.rb +111 -130
- data/lib/feed2email/feed_autodiscoverer.rb +8 -10
- data/lib/feed2email/migrate/convert_feeds_migration.rb +29 -0
- data/lib/feed2email/migrate/feeds_import_migration.rb +42 -0
- data/lib/feed2email/migrate/history_import_migration.rb +42 -0
- data/lib/feed2email/migrate/migration.rb +42 -0
- data/lib/feed2email/migrate/split_history_migration.rb +32 -0
- data/lib/feed2email/open-uri.rb +7 -0
- data/lib/feed2email/opml_exporter.rb +109 -0
- data/lib/feed2email/opml_importer.rb +52 -0
- data/lib/feed2email/redirection_checker.rb +2 -2
- data/lib/feed2email/smtp_connection.rb +59 -0
- data/lib/feed2email/version.rb +1 -1
- metadata +55 -30
- data/bin/feed2email-migrate-feedlist +0 -36
- data/bin/feed2email-migrate-history +0 -29
- data/lib/feed2email/feed_history.rb +0 -82
- data/lib/feed2email/feed_list.rb +0 -147
- data/lib/feed2email/lazy_smtp_connection.rb +0 -35
- data/lib/feed2email/mail.rb +0 -84
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e90ae1ad818a1966844926f7653f068a284a13d3
|
4
|
+
data.tar.gz: 1f6ed9ac284fc677ca57d89cbcbf6a29543a1a19
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7654f7a35ae49c97c79e39b4141d0e2ef52aa952db6c953a4d31550ea50606937ff3c862b94617e1132e64fd42c82ab84dadceb7dfbadc43e6b5a852acdb44e9
|
7
|
+
data.tar.gz: 685064935abc8fbe1a6ec02be6fb2223dfdf7d8ed192cc1262839650f1f61538e6f760c90bb368f298fdb0127e5e9c895dcb08c01bd539993b5ccc703daa0a1e
|
data/CHANGELOG.md
CHANGED
@@ -1,15 +1,26 @@
|
|
1
|
+
### 0.9.0
|
2
|
+
|
3
|
+
* Change data backend from YAML to SQLite3
|
4
|
+
* Add `send_method` config option to send emails with
|
5
|
+
* Add `file` send method for writing emails to a file
|
6
|
+
* Add `backend` command to open an SQLite3 db shell
|
7
|
+
* Add `config` command to open config with `$EDITOR`
|
8
|
+
* Add `import`/`export` command to import/export feed subscriptions as OPML
|
9
|
+
* Remove `history` command
|
10
|
+
* Provide a single script for migrating (`feed2email-migrate`)
|
11
|
+
|
1
12
|
### 0.8.0
|
2
13
|
|
3
|
-
* Command-line interface for managing feeds
|
4
|
-
* Perform feed autodiscovery in `add` command
|
5
|
-
* Store feed metadata in feed list, so no more feed files
|
6
|
-
* Add `f2e` symlink to `feed2email` binary for running convenience
|
7
|
-
* Improve send delay between entry processing
|
8
|
-
* Fix feed fetching exception handling
|
9
|
-
* Sync feed metadata only if all entries are processed
|
10
|
-
* Record entry to history only if email was sent
|
11
|
-
* Always fetch feed when permanently redirected
|
12
|
-
* Ignore redirections to the same location
|
14
|
+
* Command-line interface for managing feeds
|
15
|
+
* Perform feed autodiscovery in `add` command
|
16
|
+
* Store feed metadata in feed list, so no more feed files
|
17
|
+
* Add `f2e` symlink to `feed2email` binary for running convenience
|
18
|
+
* Improve send delay between entry processing
|
19
|
+
* Fix feed fetching exception handling
|
20
|
+
* Sync feed metadata only if all entries are processed
|
21
|
+
* Record entry to history only if email was sent
|
22
|
+
* Always fetch feed when permanently redirected
|
23
|
+
* Ignore redirections to the same location
|
13
24
|
* Major rewrite of README file with new instructions
|
14
25
|
|
15
26
|
### 0.7.0
|
data/README.md
CHANGED
@@ -9,13 +9,18 @@ to be simple, fast and easy to use.
|
|
9
9
|
|
10
10
|
## Features
|
11
11
|
|
12
|
-
*
|
13
|
-
* Feed fetching caching
|
14
|
-
* Feed autodiscovery
|
15
|
-
*
|
12
|
+
* Command-line feed management (add, remove, enable/disable)
|
13
|
+
* Feed fetching caching (_Last-Modified_ and _ETag_ HTTP headers)
|
14
|
+
* [Feed autodiscovery](http://www.rssboard.org/rss-autodiscovery)
|
15
|
+
* [OPML][] import/export of feed subscriptions
|
16
|
+
* Email sending with SMTP, [Sendmail][] (or compatible [MTA][]) or by writing to
|
17
|
+
a file
|
16
18
|
* _text/html_ and _text/plain_ (Markdown) multipart emails
|
17
|
-
*
|
18
|
-
|
19
|
+
* Permanent redirection support for feed URLs
|
20
|
+
|
21
|
+
[OPML]: http://en.wikipedia.org/wiki/OPML
|
22
|
+
[Sendmail]: http://en.wikipedia.org/wiki/Sendmail
|
23
|
+
[MTA]: http://en.wikipedia.org/wiki/Message_transfer_agent
|
19
24
|
|
20
25
|
## Installation
|
21
26
|
|
@@ -25,22 +30,46 @@ As a [gem][] from [RubyGems][]:
|
|
25
30
|
$ gem install feed2email
|
26
31
|
~~~
|
27
32
|
|
33
|
+
If the above command fails due to missing headers, make sure the following
|
34
|
+
packages for [curb][] and [sqlite3][] gems are installed:
|
35
|
+
|
36
|
+
~~~ sh
|
37
|
+
$ sudo apt-get install libcurl4-openssl-dev libsqlite3-dev
|
38
|
+
~~~
|
39
|
+
|
40
|
+
**Warning:** If you are updating from an earlier version of feed2email, make
|
41
|
+
sure you run `feed2email-migrate` to migrate its data before using it.
|
42
|
+
|
28
43
|
[gem]: http://rubygems.org/gems/feed2email
|
29
44
|
[RubyGems]: http://rubygems.org/
|
45
|
+
[curb]: https://rubygems.org/gems/curb
|
46
|
+
[sqlite3]: https://rubygems.org/gems/sqlite3
|
30
47
|
|
31
48
|
## Configuration
|
32
49
|
|
33
|
-
Through a [YAML][] file
|
50
|
+
Through a [YAML][] file at `~/.feed2email/config.yml`.
|
34
51
|
|
35
|
-
|
52
|
+
Edit it with the `config` command:
|
53
|
+
|
54
|
+
~~~ sh
|
55
|
+
$ # same as "f2e c"
|
56
|
+
$ feed2email config
|
57
|
+
~~~
|
58
|
+
|
59
|
+
**Note:** The command will fail if the `EDITOR` environmental variable is not
|
60
|
+
set.
|
36
61
|
|
37
62
|
Each line in the configuration file contains a key-value pair. Each key-value
|
38
63
|
pair is separated with a colon, e.g.: `foo: bar`
|
39
64
|
|
65
|
+
[YAML]: http://en.wikipedia.org/wiki/YAML
|
66
|
+
|
40
67
|
### General options
|
41
68
|
|
42
69
|
* `recipient` (required) is the email address to send email to
|
43
70
|
* `sender` (required) is the email address to send email from (can be any)
|
71
|
+
* `send_method` (optional) is the method to send email with and can be `file`
|
72
|
+
(default), `sendmail` or `smtp`
|
44
73
|
* `send_delay` (optional) is the number of seconds to wait between each email to
|
45
74
|
avoid SMTP server throttling errors (default is `10`; use `0` to disable)
|
46
75
|
* `max_entries` (optional) is the maximum number of entries to process per feed
|
@@ -51,7 +80,7 @@ pair is separated with a colon, e.g.: `foo: bar`
|
|
51
80
|
* `log_path` (optional) is the _absolute_ path to the log file (default is
|
52
81
|
`true` which logs to standard output; use `false` to disable logging)
|
53
82
|
* `log_level` (optional) is the logging verbosity level and can be `fatal`
|
54
|
-
(least verbose), `error`, `warn`, `info` (default)
|
83
|
+
(least verbose), `error`, `warn`, `info` (default) or `debug` (most verbose)
|
55
84
|
* `log_shift_age` (optional) is the number of _old_ log files to keep or the
|
56
85
|
frequency of rotation (`daily`, `weekly`, `monthly`; default is `0` so only
|
57
86
|
the current log file is kept)
|
@@ -59,12 +88,26 @@ pair is separated with a colon, e.g.: `foo: bar`
|
|
59
88
|
only applies when `log_shift_age` is a number greater than zero (default is
|
60
89
|
`1`)
|
61
90
|
|
62
|
-
###
|
91
|
+
### Sending options
|
63
92
|
|
64
|
-
|
65
|
-
contains options for both, feed2email will use SMTP.
|
93
|
+
#### File
|
66
94
|
|
67
|
-
|
95
|
+
This method simply writes emails to a file (named after the `recipient` config
|
96
|
+
option) in a path that you specify.
|
97
|
+
|
98
|
+
* `mail_path` (optional) is the path to write emails in (default is `~/Mail/`)
|
99
|
+
|
100
|
+
#### Sendmail
|
101
|
+
|
102
|
+
For this method you need to have [Sendmail][] or an [MTA][] with a
|
103
|
+
Sendmail-compatible interface (e.g. [msmtp][], [Postfix][]) set up and working
|
104
|
+
in your system.
|
105
|
+
|
106
|
+
* `sendmail_path` (optional) is the path to the Sendmail binary (default is
|
107
|
+
`/usr/sbin/sendmail`)
|
108
|
+
|
109
|
+
[msmtp]: http://msmtp.sourceforge.net/
|
110
|
+
[Postfix]: http://en.wikipedia.org/wiki/Postfix_(software)
|
68
111
|
|
69
112
|
#### SMTP
|
70
113
|
|
@@ -88,145 +131,154 @@ To set the correct permissions, issue `chmod 600 ~/.feed2email/config.yml`.
|
|
88
131
|
|
89
132
|
[Mailgun]: http://www.mailgun.com/
|
90
133
|
|
91
|
-
#### MTA
|
92
|
-
|
93
|
-
For this method you need to have an [MTA][] with a [Sendmail][]-compatible
|
94
|
-
interface set up and working in your system like [msmtp][] or [Postfix][].
|
95
|
-
|
96
|
-
* `sendmail_path` (optional) is the path to the Sendmail binary (default is
|
97
|
-
`/usr/sbin/sendmail`)
|
98
|
-
|
99
|
-
[Sendmail]: http://en.wikipedia.org/wiki/Sendmail
|
100
|
-
[msmtp]: http://msmtp.sourceforge.net/
|
101
|
-
[Postfix]: http://en.wikipedia.org/wiki/Postfix_(software)
|
102
|
-
|
103
134
|
## Use
|
104
135
|
|
105
136
|
### Managing feeds
|
106
137
|
|
107
|
-
|
138
|
+
Add some feeds:
|
108
139
|
|
109
140
|
~~~ sh
|
110
|
-
$ feed2email add https://github.com/agorf.atom
|
111
|
-
Added feed https://github.com/agorf.atom at index 0
|
112
141
|
$ feed2email add https://github.com/agorf/feed2email/commits.atom
|
113
|
-
Added feed https://github.com/agorf/feed2email/commits.atom
|
142
|
+
Added feed: 1 https://github.com/agorf/feed2email/commits.atom
|
143
|
+
$ # same as "feed2email add https://github.com/agorf.atom"
|
144
|
+
$ f2e a https://github.com/agorf.atom
|
145
|
+
Added feed: 2 https://github.com/agorf.atom
|
114
146
|
~~~
|
115
147
|
|
116
|
-
|
117
|
-
|
118
|
-
there is no other command beginning with an `l`.
|
119
|
-
|
120
|
-
It is also possible to pass a website URL and let feed2email autodiscover any
|
121
|
-
feeds:
|
148
|
+
Passing a website URL to the `add` command will have feed2email autodiscover any
|
149
|
+
feeds in that page:
|
122
150
|
|
123
151
|
~~~ sh
|
124
|
-
$
|
152
|
+
$ f2e add http://www.rubyinside.com/
|
125
153
|
0: http://www.rubyinside.com/feed/ "Ruby Inside" (application/rss+xml)
|
126
154
|
Please enter a feed to subscribe to: 0
|
127
|
-
Added feed http://www.rubyinside.com/feed/
|
128
|
-
$
|
155
|
+
Added feed: 3 http://www.rubyinside.com/feed/
|
156
|
+
$ f2e add http://thechangelog.com/137/
|
129
157
|
0: http://thechangelog.com/137/feed/ "The Changelog » #137: Better GitHub Issues with HuBoard and Ryan Rauh Comments Feed" (application/rss+xml)
|
130
158
|
1: http://thechangelog.com/feed/ "RSS 2.0 Feed" (application/rss+xml)
|
131
159
|
Please enter a feed to subscribe to: 1
|
132
|
-
Added feed http://thechangelog.com/feed/
|
133
|
-
$
|
160
|
+
Added feed: 4 http://thechangelog.com/feed/
|
161
|
+
$ # cancel autodiscovery by pressing Ctrl-C
|
162
|
+
$ f2e add http://thechangelog.com/137/
|
134
163
|
0: http://thechangelog.com/137/feed/ "The Changelog » #137: Better GitHub Issues with HuBoard and Ryan Rauh Comments Feed" (application/rss+xml)
|
135
164
|
Please enter a feed to subscribe to: ^C
|
136
165
|
~~~
|
137
166
|
|
138
|
-
Note
|
139
|
-
|
140
|
-
Autodiscovery is then cancelled by pressing `Ctrl-C`.
|
167
|
+
**Note:** When autodiscovering feeds, feed2email lists only those that don't
|
168
|
+
already exist in your feed subscriptions.
|
141
169
|
|
142
170
|
The feed list so far:
|
143
171
|
|
144
172
|
~~~ sh
|
173
|
+
$ # same as "f2e l"
|
145
174
|
$ feed2email list
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
175
|
+
1 https://github.com/agorf/feed2email/commits.atom
|
176
|
+
2 https://github.com/agorf.atom
|
177
|
+
3 http://www.rubyinside.com/feed/
|
178
|
+
4 http://thechangelog.com/feed/
|
150
179
|
~~~
|
151
180
|
|
152
|
-
|
153
|
-
|
181
|
+
A feed can be disabled so that it is not processed when `feed2email process`
|
182
|
+
runs with the `toggle` command:
|
154
183
|
|
155
184
|
~~~ sh
|
185
|
+
$ # same as "f2e t 1"
|
156
186
|
$ feed2email toggle 1
|
157
|
-
|
158
|
-
$ feed2email list
|
159
|
-
0: https://github.com/agorf.atom
|
160
|
-
1: DISABLED https://github.com/agorf/feed2email/commits.atom
|
161
|
-
2: http://www.rubyinside.com/feed/
|
162
|
-
3: http://thechangelog.com/feed/
|
187
|
+
Toggled feed: 1 DISABLED https://github.com/agorf/feed2email/commits.atom
|
163
188
|
~~~
|
164
189
|
|
165
|
-
It
|
190
|
+
It can be enabled with the `toggle` command again:
|
166
191
|
|
167
192
|
~~~ sh
|
193
|
+
$ # same as "feed2email toggle 1"
|
194
|
+
$ f2e t 1
|
195
|
+
Toggled feed: 1 https://github.com/agorf/feed2email/commits.atom
|
196
|
+
~~~
|
197
|
+
|
198
|
+
It can also be removed from feed subscriptions permanently:
|
199
|
+
|
200
|
+
~~~ sh
|
201
|
+
$ # same as "f2e r 1"
|
168
202
|
$ feed2email remove 1
|
169
|
-
Removed feed
|
170
|
-
Warning: Feed list indices have changed!
|
203
|
+
Removed feed: 1 https://github.com/agorf/feed2email/commits.atom
|
171
204
|
~~~
|
172
205
|
|
173
|
-
|
206
|
+
### Migrating to/from feed2email
|
174
207
|
|
175
|
-
|
176
|
-
|
177
|
-
at index 2 is now at index 1 and the feed at index 3 is now at index 2.
|
208
|
+
feed2email supports importing and exporting feed subscriptions as [OPML][]. This
|
209
|
+
makes it easy to migrate to and away from feed2email anytime you want.
|
178
210
|
|
179
|
-
|
211
|
+
Export feed subscriptions to `feeds.xml`:
|
180
212
|
|
181
213
|
~~~ sh
|
182
|
-
$
|
183
|
-
|
184
|
-
|
185
|
-
|
214
|
+
$ # same as "f2e e feeds.xml"
|
215
|
+
$ feed2email export feeds.xml
|
216
|
+
This may take a bit. Please wait...
|
217
|
+
Exported 3 feed subscriptions to feeds.xml
|
218
|
+
~~~
|
219
|
+
|
220
|
+
Import feed subscriptions from `feeds.xml`:
|
221
|
+
|
222
|
+
~~~ sh
|
223
|
+
$ # same as "f2e i feeds.xml"
|
224
|
+
$ feed2email import feeds.xml
|
225
|
+
Importing...
|
226
|
+
Feed already exists: 2 https://github.com/agorf.atom
|
227
|
+
Feed already exists: 3 http://www.rubyinside.com/feed/
|
228
|
+
Feed already exists: 4 http://thechangelog.com/feed/
|
186
229
|
~~~
|
187
230
|
|
188
|
-
|
189
|
-
|
190
|
-
|
231
|
+
Nothing was imported since all feeds already exist. Let's remove them first and
|
232
|
+
then try again:
|
233
|
+
|
234
|
+
~~~ sh
|
235
|
+
$ f2e r 2
|
236
|
+
Removed feed: 2 https://github.com/agorf.atom
|
237
|
+
$ f2e r 3
|
238
|
+
Removed feed: 3 http://www.rubyinside.com/feed/
|
239
|
+
$ f2e r 4
|
240
|
+
Removed feed: 4 http://thechangelog.com/feed/
|
241
|
+
$ f2e l
|
242
|
+
No feeds
|
243
|
+
$ feed2email import feeds.xml
|
244
|
+
Importing...
|
245
|
+
Imported feed: 1 https://github.com/agorf.atom
|
246
|
+
Imported feed: 2 http://www.rubyinside.com/feed/
|
247
|
+
Imported feed: 3 http://thechangelog.com/feed/
|
248
|
+
Imported 3 feed subscriptions from feeds.xml
|
249
|
+
~~~
|
191
250
|
|
192
251
|
### Running
|
193
252
|
|
194
253
|
~~~ sh
|
254
|
+
$ # same as "f2e p"
|
195
255
|
$ feed2email process
|
196
256
|
~~~
|
197
257
|
|
198
258
|
When run, feed2email will go through your feed list, fetch each feed (if
|
199
|
-
necessary) and send an email for each new entry.
|
259
|
+
necessary) and send an email for each new entry. Output is logged to the
|
200
260
|
standard output, unless configured otherwise.
|
201
261
|
|
202
|
-
**Warning:** Prior to version 0.8.0 where a command-line interface was
|
203
|
-
introduced, the way to run feed2email was simply `feed2email`. Now this will
|
204
|
-
just print helpful text on how to use it.
|
205
|
-
|
206
262
|
When a new feed is detected (which is the case when feed2email runs for the
|
207
263
|
first time on your feed list), all of its entries are skipped and no email is
|
208
264
|
sent. This is so that you don't get spammed when you add a feed for the first
|
209
265
|
time.
|
210
266
|
|
211
|
-
If you want to receive a specific entry from a newly added feed, edit the feed's
|
212
|
-
history file with `feed2email history` and remove the entry. Then issue
|
213
|
-
`feed2email fetch` to clear the feed's fetch cache. Next time
|
214
|
-
`feed2email process` runs, the entry will be treated as new and will be
|
215
|
-
processed.
|
216
|
-
|
217
267
|
### Getting help
|
218
268
|
|
219
|
-
Issue `feed2email` or `feed2email
|
220
|
-
to use feed2email.
|
269
|
+
Issue `feed2email help` (`f2e h`) or just `feed2email` (`f2e`) at any point to
|
270
|
+
get helpful text on how to use feed2email.
|
221
271
|
|
222
272
|
## Contributing
|
223
273
|
|
224
|
-
Using feed2email and want to help?
|
225
|
-
|
274
|
+
Using feed2email and want to help? [Let me know](http://agorf.gr/) how you use
|
275
|
+
it and if you have any ideas on how to improve it.
|
226
276
|
|
227
277
|
## License
|
228
278
|
|
229
|
-
Licensed under the MIT license (see
|
279
|
+
Licensed under the MIT license (see [LICENSE.txt][license]).
|
280
|
+
|
281
|
+
[license]: https://github.com/agorf/feed2email/blob/master/LICENSE.txt
|
230
282
|
|
231
283
|
## Author
|
232
284
|
|
data/bin/f2e
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
else
|
3
|
+
LOCK_FILE = '/tmp/feed2email.lock'
|
4
|
+
|
5
|
+
unless File.new(LOCK_FILE, 'w').flock(File::LOCK_NB | File::LOCK_EX)
|
7
6
|
abort 'An instance of feed2email is already running. Exiting...'
|
8
7
|
end
|
9
8
|
|
9
|
+
require 'feed2email/cli'
|
10
|
+
|
11
|
+
Feed2Email::Cli.start(ARGV)
|
data/bin/feed2email
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
else
|
3
|
+
LOCK_FILE = '/tmp/feed2email.lock'
|
4
|
+
|
5
|
+
unless File.new(LOCK_FILE, 'w').flock(File::LOCK_NB | File::LOCK_EX)
|
7
6
|
abort 'An instance of feed2email is already running. Exiting...'
|
8
7
|
end
|
9
8
|
|
9
|
+
require 'feed2email/cli'
|
10
|
+
|
11
|
+
Feed2Email::Cli.start(ARGV)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'feed2email/migrate/convert_feeds_migration'
|
4
|
+
require 'feed2email/migrate/feeds_import_migration'
|
5
|
+
require 'feed2email/migrate/history_import_migration'
|
6
|
+
require 'feed2email/migrate/split_history_migration'
|
7
|
+
|
8
|
+
include Feed2Email::Migrate
|
9
|
+
|
10
|
+
[
|
11
|
+
SplitHistoryMigration,
|
12
|
+
ConvertFeedsMigration,
|
13
|
+
FeedsImportMigration,
|
14
|
+
HistoryImportMigration
|
15
|
+
].each do |klass|
|
16
|
+
if klass.new.apply
|
17
|
+
print 'Applied '
|
18
|
+
else
|
19
|
+
print 'Skipped '
|
20
|
+
end
|
21
|
+
|
22
|
+
puts klass.to_s
|
23
|
+
end
|
data/lib/feed2email.rb
CHANGED
@@ -1,17 +1,14 @@
|
|
1
|
+
require 'pathname'
|
1
2
|
require 'feed2email/config'
|
2
|
-
require 'feed2email/feed_list'
|
3
|
-
require 'feed2email/lazy_smtp_connection'
|
4
3
|
require 'feed2email/logger'
|
5
4
|
|
6
5
|
module Feed2Email
|
7
|
-
CONFIG_DIR = File.join(ENV['HOME'], '.feed2email')
|
8
|
-
|
9
6
|
def self.config
|
10
|
-
@config ||= Config.new(
|
7
|
+
@config ||= Config.new(config_path)
|
11
8
|
end
|
12
9
|
|
13
|
-
def self.
|
14
|
-
|
10
|
+
def self.config_path
|
11
|
+
root.join('config.yml').to_s
|
15
12
|
end
|
16
13
|
|
17
14
|
def self.logger
|
@@ -21,7 +18,7 @@ module Feed2Email
|
|
21
18
|
).logger
|
22
19
|
end
|
23
20
|
|
24
|
-
def self.
|
25
|
-
@
|
21
|
+
def self.root
|
22
|
+
@root ||= Pathname.new(ENV['HOME']).join('.feed2email')
|
26
23
|
end
|
27
24
|
end
|