feed_notifier 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4297ef96f879b6f4da9baae03102ab9dce53205a
4
+ data.tar.gz: e30b26b078fc493cd9048381e8cce6d489a29e6f
5
+ SHA512:
6
+ metadata.gz: 557f9aaf30ac0d5739ab054356c65f692a557017a1d093f0f350b7f42091b2e2d5b3c82fbf58128719b7e27c39465c09bee5bb69ea858bc81ce4b92306dd0fa5
7
+ data.tar.gz: d9d40cac3de9e12daf6371831139e2ae8d291bfd86b582ecfafbd90767642f26bfba3b639d1d7d23a57ef4e21bcf9ae242e0cc3ec52f21152c0087465a68869e
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in feed_notifier.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 'Taku Okawa'
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # FeedNotifier
2
+
3
+ Ruby scripts to notify feed updates via Apple's Notification Center
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'feed_notifier'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install feed_notifier
18
+
19
+ ## Usage
20
+
21
+ First, create config script like shown below.
22
+
23
+ ```
24
+ FeedNotifier.configure do |config|
25
+ # fetch interval
26
+ config.interval = 60*1 # fetch every minute
27
+
28
+ # feed urls
29
+ config.feed_urls << 'https://news.google.com/news/feeds?hl=us&ned=us&ie=UTF-8&oe=UTF-8&output=rss'
30
+ end
31
+ ```
32
+
33
+ Once the configuration is done, run command with -f option.
34
+
35
+ ```
36
+ (bundle exec) feed_notifier -f feeds.rb
37
+ ```
38
+
39
+ ## Todo
40
+
41
+ * Option to run as daemon
42
+
43
+ ## Contributing
44
+
45
+ 1. Fork it
46
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
47
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
48
+ 4. Push to the branch (`git push origin my-new-feature`)
49
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,11 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+
4
+ Rake::TestTask.new(:spec) do |t|
5
+ t.pattern = "spec/*_spec.rb"
6
+ end
7
+
8
+ # there's no public methods for setting description to TestTask...
9
+ task(:spec).instance_variable_set :@comments,['run specs']
10
+
11
+ task :default => [:spec]
data/bin/feed_notifier ADDED
@@ -0,0 +1,32 @@
1
+ require 'optparse'
2
+ require 'feed_notifier'
3
+
4
+ run_config = {
5
+ :daemon => false,
6
+ :pid_dir => '/var/run',
7
+ }
8
+
9
+ opt_parse = OptionParser.new do |opts|
10
+ opts.on("-f", "--file file" , "config file") do |file|
11
+ run_config[:config_path] = file
12
+ end
13
+
14
+ opts.on("-d", "--daemon", "run as daemon") do
15
+ run_config[:daemon] = true
16
+ end
17
+ end
18
+
19
+ begin
20
+ opt_parse.parse!
21
+ unless run_config[:config_path]
22
+ puts "Missing option: -f "
23
+ puts opt_parse
24
+ exit
25
+ end
26
+ rescue OptionParser::InvalidOption, OptionParser::MissingArgument
27
+ puts $!.to_s
28
+ puts opt_parse
29
+ exit
30
+ end
31
+
32
+ FeedNotifier::Runner.new(run_config).run
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'feed_notifier/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "feed_notifier"
8
+ spec.version = FeedNotifier::VERSION
9
+ spec.authors = ["'Taku Okawa'"]
10
+ spec.email = ["'taku.okawa@gmail.com'"]
11
+ spec.description = %q{Notify feed update via notification center}
12
+ spec.summary = %q{Notify feed update via notification center}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^spec/*_spec.rb})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency 'feedzirra','~> 0.1.3'
22
+ spec.add_dependency 'lunchy','~> 0.7.0'
23
+ spec.add_dependency 'terminal-notifier','~> 1.5.1'
24
+
25
+ spec.add_development_dependency "bundler", "~> 1.3"
26
+ spec.add_development_dependency "pry-byebug"
27
+ spec.add_development_dependency "rake"
28
+ end
@@ -0,0 +1,30 @@
1
+ module FeedNotifier
2
+ def self.configure
3
+ config = Config.new
4
+ yield config
5
+ config
6
+ end
7
+
8
+ class Config
9
+ attr_accessor :feed_urls
10
+ attr_accessor :interval
11
+
12
+ class <<self
13
+ def load(config_path)
14
+ eval(File.read(config_path),binding)
15
+ rescue RuntimeError => e
16
+ FeedNotifier.logger.error "error loading config file #{e.message}"
17
+ end
18
+ end
19
+
20
+ def initialize(attrs={})
21
+ @feed_urls = []
22
+ @interval = 60*2
23
+ end
24
+
25
+ def log_path
26
+ STDOUT
27
+ end
28
+
29
+ end
30
+ end
@@ -0,0 +1,50 @@
1
+ require 'feedzirra'
2
+ require 'terminal-notifier'
3
+
4
+ module FeedNotifier
5
+ class FeedList
6
+
7
+ def initialize(config)
8
+ @config = config
9
+ end
10
+
11
+ def urls
12
+ @urls ||= @config.feed_urls
13
+ end
14
+
15
+ def updated_entries(since={})
16
+ unless (@last_feeds && @last_feeds.size > 0)
17
+ FeedNotifier.logger.info "fetching urls for the first time.."
18
+ @last_feeds = Feedzirra::Feed.fetch_and_parse(urls)
19
+ return []
20
+ end
21
+
22
+ new_feeds = Feedzirra::Feed.fetch_and_parse(urls)
23
+
24
+ new_entries = new_feeds.inject([]) { |entries,(url,feed)|
25
+ last_feed = @last_feeds[url]
26
+ if last_feed
27
+ unless last_feed.respond_to?(:feed_url)
28
+ FeedNotifier.logger.warn "feed object for #{url} isn't valid. #{last_feed}"
29
+ next entries
30
+ end
31
+
32
+ last_feed.update_from_feed(feed)
33
+ FeedNotifier.logger.debug "updates for #{url} ... #{last_feed.new_entries}"
34
+ next entries + last_feed.new_entries
35
+ end
36
+ entries
37
+ }
38
+
39
+ @last_feeds = new_feeds
40
+ return new_entries
41
+ end
42
+ end
43
+
44
+
45
+ class Notifier
46
+ def self.notify(entry)
47
+ TerminalNotifier.notify(entry.title)
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,65 @@
1
+ module FeedNotifier
2
+ class Runner
3
+ attr_reader :config
4
+
5
+ def initialize(run_config)
6
+ @run_config = run_config
7
+ @config = Config.load(run_config[:config_path])
8
+ end
9
+
10
+ def check_pid
11
+ if File.exist?(pid_path)
12
+ pid = File.read(pid_path)
13
+ raise "already running process PID:#{pid}"
14
+ end
15
+ end
16
+
17
+ def cleanup
18
+ if File.exist?(pid_path)
19
+ File.delete(pid_path)
20
+ end
21
+ end
22
+
23
+ def pid_path
24
+ File.join(@run_config[:pid_dir],'feed_notifier.pid')
25
+ end
26
+
27
+ def setup
28
+ if @run_config[:daemon]
29
+ check_pid
30
+ Process.daemon if @run_config[:daemon]
31
+ end
32
+
33
+ begin
34
+ yield
35
+ rescue Interrupt => e
36
+ cleanup
37
+ end
38
+ end
39
+
40
+ def run
41
+ setup do
42
+ thread = ::Thread.new do
43
+ feed_list = FeedList.new(config)
44
+ while true do
45
+ check_and_notify(feed_list)
46
+ sleep config.interval
47
+ end
48
+ end
49
+ thread.join
50
+ end
51
+ end
52
+
53
+ def check_and_notify(feed_list)
54
+ FeedNotifier.logger.info "polling feed list..#{feed_list.urls}"
55
+
56
+ entries = feed_list.updated_entries()
57
+ FeedNotifier.logger.info "updated entries #{entries}"
58
+ if entries.size > 0
59
+ entries.each do |entry|
60
+ Notifier.notify(entry)
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,3 @@
1
+ module FeedNotifier
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,13 @@
1
+ require "feed_notifier/version"
2
+ require 'feed_notifier/config'
3
+ require 'feed_notifier/feed'
4
+ require 'feed_notifier/runner'
5
+ require 'logger'
6
+
7
+ module FeedNotifier
8
+ class <<self
9
+ attr_accessor :logger
10
+ end
11
+ end
12
+ FeedNotifier.logger = Logger.new(STDOUT)
13
+ FeedNotifier.logger.level = Logger::INFO
@@ -0,0 +1,7 @@
1
+ FeedNotifier.configure do |config|
2
+ # fetch interval
3
+ config.interval = 60*1 # fetch every minute
4
+
5
+ # feed urls
6
+ config.feed_urls << 'https://news.google.com/news/feeds?hl=us&ned=us&ie=UTF-8&oe=UTF-8&output=rss'
7
+ end
@@ -0,0 +1,12 @@
1
+ require 'minitest/autorun'
2
+ require 'feed_notifier'
3
+
4
+ describe FeedNotifier::Config do
5
+
6
+ it 'excute configure block in config file' do
7
+ config = FeedNotifier::Config.load("#{File.dirname(__FILE__)}/config_files/sample_config.rb")
8
+
9
+ config.feed_urls.size.must_equal 1
10
+ end
11
+
12
+ end
data/spec/feed_spec.rb ADDED
@@ -0,0 +1,35 @@
1
+ require 'minitest/autorun'
2
+ require 'feed_notifier'
3
+
4
+ describe 'feed update' do
5
+
6
+ def load_sample
7
+ xml = File.read("#{File.dirname(__FILE__)}/feeds/gitlab_sample.xml")
8
+ Feedzirra::Feed.parse(xml)
9
+ end
10
+
11
+ it 'returns updated feeds' do
12
+ feed_sample = load_sample
13
+
14
+ old_feeds = []
15
+ feed_sample.entries.each_with_index do |entry,index|
16
+ old_feeds << entry unless index == 0
17
+ end
18
+
19
+ feed_sample_minus = feed_sample.clone
20
+ feed_sample_minus.entries = old_feeds
21
+
22
+ config = FeedNotifier::Config.new()
23
+ feed_list = FeedNotifier::FeedList.new(config)
24
+ feed_list.instance_variable_set :@last_feeds, { :sample => feed_sample_minus }
25
+
26
+ Feedzirra::Feed.stub(:fetch_and_parse,{ :sample => feed_sample }) do
27
+ entries = feed_list.updated_entries
28
+
29
+ entries.size.must_equal 1
30
+ entries.first.title.must_equal 'John Smith pushed to branch master at Sandbox / Charts.js'
31
+ end
32
+ end
33
+
34
+ end
35
+
@@ -0,0 +1,633 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
3
+ <title>Dashboard feed - John Smith</title>
4
+ <link href="http://demo.gitlab.com/dashboard.atom" rel="self" type="application/atom+xml"/>
5
+ <link href="http://demo.gitlab.com/dashboard" rel="alternate" type="text/html"/>
6
+ <id>http://demo.gitlab.com/projects</id>
7
+ <updated>2013-10-06T18:42:51Z</updated>
8
+ <entry>
9
+ <id>tag:demo.gitlab.com,2013-10-06:8139</id>
10
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/91b1cf467c8e6a00e12ce379597707b672d3cf8a"/>
11
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
12
+ <updated>2013-10-06T18:42:51Z</updated>
13
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
14
+ <author>
15
+ <name>John Smith</name>
16
+ <email>test@test.com</email>
17
+ </author>
18
+ <summary type="xhtml">
19
+ <div xmlns='http://www.w3.org/1999/xhtml'>
20
+ <p>
21
+ <strong>John Smith</strong>
22
+ <a href="/sandbox/charts-js/commit/91b1cf467c8e6a00e12ce379597707b672d3cf8a">(#91b1cf46)</a>
23
+ <i>
24
+ at
25
+ 19 Aug 18:37
26
+ </i>
27
+ </p>
28
+ <blockquote><p>wanted to try a harmless commit in test site</p></blockquote>
29
+ </div>
30
+ </summary>
31
+ </entry>
32
+ <entry>
33
+ <id>tag:demo.gitlab.com,2013-10-06:8138</id>
34
+ <link href="http://demo.gitlab.com/gitlab/gitlab-recipes/commit/68a3d6b38d720593247202ee5165e41aa84314f5"/>
35
+ <title>John Smith pushed to branch master at GitLab / gitlab-recipes</title>
36
+ <updated>2013-10-06T18:42:48Z</updated>
37
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
38
+ <author>
39
+ <name>John Smith</name>
40
+ <email>test@test.com</email>
41
+ </author>
42
+ <summary type="xhtml">
43
+ <div xmlns='http://www.w3.org/1999/xhtml'>
44
+ <p>
45
+ <strong>John Smith</strong>
46
+ <a href="/gitlab/gitlab-recipes/commit/68a3d6b38d720593247202ee5165e41aa84314f5">(#68a3d6b3)</a>
47
+ <i>
48
+ at
49
+ 19 Aug 20:56
50
+ </i>
51
+ </p>
52
+ <blockquote><p>Foo</p></blockquote>
53
+ </div>
54
+ </summary>
55
+ </entry>
56
+ <entry>
57
+ <id>tag:demo.gitlab.com,2013-10-06:8135</id>
58
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/0c580616e4e76e081a6ce0246128757477d91d9e"/>
59
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
60
+ <updated>2013-10-06T18:42:47Z</updated>
61
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
62
+ <author>
63
+ <name>John Smith</name>
64
+ <email>test@test.com</email>
65
+ </author>
66
+ <summary type="xhtml">
67
+ <div xmlns='http://www.w3.org/1999/xhtml'>
68
+ <p>
69
+ <strong>John Smith</strong>
70
+ <a href="/sandbox/charts-js/commit/0c580616e4e76e081a6ce0246128757477d91d9e">(#0c580616)</a>
71
+ <i>
72
+ at
73
+ 26 Aug 10:08
74
+ </i>
75
+ </p>
76
+ <blockquote><p>Arial -&gt; Helvetica</p></blockquote>
77
+ </div>
78
+ </summary>
79
+ </entry>
80
+ <entry>
81
+ <id>tag:demo.gitlab.com,2013-10-06:8136</id>
82
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/a8404cfb0bde2087f38e475d787c85be3588bb56"/>
83
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
84
+ <updated>2013-10-06T18:42:47Z</updated>
85
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
86
+ <author>
87
+ <name>John Smith</name>
88
+ <email>test@test.com</email>
89
+ </author>
90
+ <summary type="xhtml">
91
+ <div xmlns='http://www.w3.org/1999/xhtml'>
92
+ <p>
93
+ <strong>John Smith</strong>
94
+ <a href="/sandbox/charts-js/commit/a8404cfb0bde2087f38e475d787c85be3588bb56">(#a8404cfb)</a>
95
+ <i>
96
+ at
97
+ 26 Aug 03:57
98
+ </i>
99
+ </p>
100
+ <blockquote><p>test commit</p></blockquote>
101
+ </div>
102
+ </summary>
103
+ </entry>
104
+ <entry>
105
+ <id>tag:demo.gitlab.com,2013-10-06:8137</id>
106
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/0101d8a9559a72aa04da42fb70ef66ceb362152b"/>
107
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
108
+ <updated>2013-10-06T18:42:47Z</updated>
109
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
110
+ <author>
111
+ <name>John Smith</name>
112
+ <email>test@test.com</email>
113
+ </author>
114
+ <summary type="xhtml">
115
+ <div xmlns='http://www.w3.org/1999/xhtml'>
116
+ <p>
117
+ <strong>John Smith</strong>
118
+ <a href="/sandbox/charts-js/commit/0101d8a9559a72aa04da42fb70ef66ceb362152b">(#0101d8a9)</a>
119
+ <i>
120
+ at
121
+ 20 Aug 01:57
122
+ </i>
123
+ </p>
124
+ <blockquote><p>Update</p></blockquote>
125
+ </div>
126
+ </summary>
127
+ </entry>
128
+ <entry>
129
+ <id>tag:demo.gitlab.com,2013-10-06:8134</id>
130
+ <link href="http://demo.gitlab.com/gitlab/gitlabhq/commit/5c2ce1f7a81b4aae0f15ad7361792b734ea511ee"/>
131
+ <title>John Smith pushed to branch ubuntu_script at GitLab / gitlabhq</title>
132
+ <updated>2013-10-06T18:42:42Z</updated>
133
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
134
+ <author>
135
+ <name>John Smith</name>
136
+ <email>test@test.com</email>
137
+ </author>
138
+ <summary type="xhtml">
139
+ <div xmlns='http://www.w3.org/1999/xhtml'>
140
+ <p>
141
+ <strong>John Smith</strong>
142
+ <a href="/gitlab/gitlabhq/commit/5c2ce1f7a81b4aae0f15ad7361792b734ea511ee">(#5c2ce1f7)</a>
143
+ <i>
144
+ at
145
+ 27 Aug 08:15
146
+ </i>
147
+ </p>
148
+ <blockquote><p>Update.</p></blockquote>
149
+ </div>
150
+ </summary>
151
+ </entry>
152
+ <entry>
153
+ <id>tag:demo.gitlab.com,2013-10-06:8133</id>
154
+ <link href="http://demo.gitlab.com/sandbox/six/compare/f10092ccfa5166ca5d6bd9ae5ec043744ac9d501...5865af02a07e988c23ab982e3f79d5f33fa7f1ab"/>
155
+ <title>John Smith pushed to branch gh-pages at Sandbox / Six</title>
156
+ <updated>2013-10-06T18:42:40Z</updated>
157
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
158
+ <author>
159
+ <name>John Smith</name>
160
+ <email>test@test.com</email>
161
+ </author>
162
+ <summary type="xhtml">
163
+ <div xmlns='http://www.w3.org/1999/xhtml'>
164
+ <p>
165
+ <strong>John Smith</strong>
166
+ <a href="/sandbox/six/commit/5865af02a07e988c23ab982e3f79d5f33fa7f1ab">(#5865af02)</a>
167
+ <i>
168
+ at
169
+ 30 Aug 07:42
170
+ </i>
171
+ </p>
172
+ <blockquote><p>Merge branch 'master' of /home/git/repositories/sandbox/six into gh-pages</p></blockquote>
173
+ <p>
174
+ <strong>John Smith</strong>
175
+ <a href="/sandbox/six/commit/0ffcf42643170cf96181338374116ac7aa4a0c73">(#0ffcf426)</a>
176
+ <i>
177
+ at
178
+ 28 Aug 10:26
179
+ </i>
180
+ </p>
181
+ <blockquote><p>adasd</p></blockquote>
182
+ <p>
183
+ <strong>John Smith</strong>
184
+ <a href="/sandbox/six/commit/0072c64fb93d378aff5f359e49349b86256e1417">(#0072c64f)</a>
185
+ <i>
186
+ at
187
+ 23 Aug 08:17
188
+ </i>
189
+ </p>
190
+ <blockquote><p>test edit. I hope this is a real sandbox only...</p></blockquote>
191
+ <p>
192
+ <strong>John Smith</strong>
193
+ <a href="/sandbox/six/commit/7c7fdef05e39e3d8315e0e295ab69f5383a12c85">(#7c7fdef0)</a>
194
+ <i>
195
+ at
196
+ 12 Aug 17:32
197
+ </i>
198
+ </p>
199
+ <blockquote><p>#747 removed blah</p></blockquote>
200
+ <p>
201
+ <strong>John Smith</strong>
202
+ <a href="/sandbox/six/commit/5cb907acc3a4f9350a5661db1c9bcce926549dea">(#5cb907ac)</a>
203
+ <i>
204
+ at
205
+ 12 Aug 13:45
206
+ </i>
207
+ </p>
208
+ <blockquote><p>#747</p></blockquote>
209
+ <p>
210
+ <strong>John Smith</strong>
211
+ <a href="/sandbox/six/commit/aa1cda5a93d4bdc07300601600014bcd7f99da5f">(#aa1cda5a)</a>
212
+ <i>
213
+ at
214
+ 06 Aug 08:41
215
+ </i>
216
+ </p>
217
+ <blockquote><p>Lets</p></blockquote>
218
+ <p>
219
+ <strong>John Smith</strong>
220
+ <a href="/sandbox/six/commit/8c881aeb05d29ed3a19cacda95843bfc3816a8a6">(#8c881aeb)</a>
221
+ <i>
222
+ at
223
+ 04 Aug 01:43
224
+ </i>
225
+ </p>
226
+ <blockquote><p>Merge branch 'gh-pages' of /home/git/repositories/sandbox/six</p></blockquote>
227
+ <p>
228
+ <strong>Dmitriy Zaporozhets</strong>
229
+ <a href="/sandbox/six/commit/2e008a711430a16092cd6a20c225807cb3f51db7">(#2e008a71)</a>
230
+ <i>
231
+ at
232
+ 22 May 11:14
233
+ </i>
234
+ </p>
235
+ <blockquote><p>Added codeclimate badge</p></blockquote>
236
+ <p>
237
+ <strong>Dmitriy Zaporozhets</strong>
238
+ <a href="/sandbox/six/commit/1c8a9df454ef68c22c2a33cca8232bb50849e5c5">(#1c8a9df4)</a>
239
+ <i>
240
+ at
241
+ 24 Feb 11:58
242
+ </i>
243
+ </p>
244
+ <blockquote><p>Merge pull request #4 from paritoshparitosh57/master</p>
245
+
246
+ <p>corrected spelling/typo on README.markdown</p></blockquote>
247
+ <p>
248
+ <strong>Paritosh Piplewar</strong>
249
+ <a href="/sandbox/six/commit/294dc12591e7103f68b8ca9da14633c439d2dcb5">(#294dc125)</a>
250
+ <i>
251
+ at
252
+ 24 Feb 08:15
253
+ </i>
254
+ </p>
255
+ <blockquote><p>typo : correct 'bok' to 'book'</p></blockquote>
256
+ <p>
257
+ <strong>Dmitriy Zaporozhets</strong>
258
+ <a href="/sandbox/six/commit/a26f8df380e56dc79cd74087c8ed4f031eef0460">(#a26f8df3)</a>
259
+ <i>
260
+ at
261
+ 13 Sep 10:13
262
+ </i>
263
+ </p>
264
+ <blockquote><p>Updated gems. Added Guard</p></blockquote>
265
+ <p>
266
+ <strong>Dmitriy Zaporozhets</strong>
267
+ <a href="/sandbox/six/commit/680d739923abdc78762dda5587f3ce6c59caedc2">(#680d7399)</a>
268
+ <i>
269
+ at
270
+ 13 Nov 07:35
271
+ </i>
272
+ </p>
273
+ <blockquote><p>Merge pull request #3 from jish/readme</p>
274
+
275
+ <p>Updating readme.</p></blockquote>
276
+ <p>
277
+ <strong>Josh Lubaway</strong>
278
+ <a href="/sandbox/six/commit/e007035b36c0c0227ec66d945b0e82ea4138691a">(#e007035b)</a>
279
+ <i>
280
+ at
281
+ 12 Nov 23:48
282
+ </i>
283
+ </p>
284
+ <blockquote><p>Updating readme.</p></blockquote>
285
+ <p>
286
+ <strong>Dmitriy Zaporozhets</strong>
287
+ <a href="/sandbox/six/commit/0a38237187aeaf6e24350ffb0db79da40c1bb8de">(#0a382371)</a>
288
+ <i>
289
+ at
290
+ 04 Oct 10:08
291
+ </i>
292
+ </p>
293
+ <blockquote><p>Edited README.markdown via GitHub</p></blockquote>
294
+ <p>
295
+ <strong>Dmitriy Zaporozhets</strong>
296
+ <a href="/sandbox/six/commit/07f358d6a978c99c58a8931a23e3ff63b5a7abd9">(#07f358d6)</a>
297
+ <i>
298
+ at
299
+ 04 Oct 10:08
300
+ </i>
301
+ </p>
302
+ <blockquote><p>travis.yml</p></blockquote>
303
+ <p>
304
+ <i>
305
+ ... and
306
+ 32 more commits
307
+ </i>
308
+ </p>
309
+ </div>
310
+ </summary>
311
+ </entry>
312
+ <entry>
313
+ <id>tag:demo.gitlab.com,2013-10-06:8132</id>
314
+ <link href="http://demo.gitlab.com/gitlab/gitlabhq/commit/7a0af14620076516e06beea4959d827fe1bfc217"/>
315
+ <title>John Smith pushed to branch ubuntu_script at GitLab / gitlabhq</title>
316
+ <updated>2013-10-06T18:42:39Z</updated>
317
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
318
+ <author>
319
+ <name>John Smith</name>
320
+ <email>test@test.com</email>
321
+ </author>
322
+ <summary type="xhtml">
323
+ <div xmlns='http://www.w3.org/1999/xhtml'>
324
+ <p>
325
+ <strong>John Smith</strong>
326
+ <a href="/gitlab/gitlabhq/commit/7a0af14620076516e06beea4959d827fe1bfc217">(#7a0af146)</a>
327
+ <i>
328
+ at
329
+ 29 Aug 22:18
330
+ </i>
331
+ </p>
332
+ <blockquote><p>Remove assignee from api</p></blockquote>
333
+ </div>
334
+ </summary>
335
+ </entry>
336
+ <entry>
337
+ <id>tag:demo.gitlab.com,2013-10-06:8130</id>
338
+ <link href="http://demo.gitlab.com/gitlab/gitlab-ci/compare/bb97f5dbd2d52d1bff6b28d97bd348f21531dea7...488cb21c0dd5a99d9a00a654363a51c705159d04"/>
339
+ <title>John Smith pushed to branch master at GitLab / gitlab-ci</title>
340
+ <updated>2013-10-06T18:42:38Z</updated>
341
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
342
+ <author>
343
+ <name>John Smith</name>
344
+ <email>test@test.com</email>
345
+ </author>
346
+ <summary type="xhtml">
347
+ <div xmlns='http://www.w3.org/1999/xhtml'>
348
+ <p>
349
+ <strong>John Smith</strong>
350
+ <a href="/gitlab/gitlab-ci/commit/488cb21c0dd5a99d9a00a654363a51c705159d04">(#488cb21c)</a>
351
+ <i>
352
+ at
353
+ 30 Aug 16:46
354
+ </i>
355
+ </p>
356
+ <blockquote><p>Merge branch 'gh-pages' of /home/git/repositories/gitlab/gitlab-ci</p></blockquote>
357
+ <p>
358
+ <strong>John Smith</strong>
359
+ <a href="/gitlab/gitlab-ci/commit/b5230af1a8222294c6d8e4028eeee5044d5722ac">(#b5230af1)</a>
360
+ <i>
361
+ at
362
+ 29 Aug 19:18
363
+ </i>
364
+ </p>
365
+ <blockquote><p>Testing!</p></blockquote>
366
+ </div>
367
+ </summary>
368
+ </entry>
369
+ <entry>
370
+ <id>tag:demo.gitlab.com,2013-10-06:8131</id>
371
+ <link href="http://demo.gitlab.com/sandbox/six/commit/68dafe968a11e0b6dbb4a4c1c4e00b7703efcf0a"/>
372
+ <title>John Smith pushed to branch master at Sandbox / Six</title>
373
+ <updated>2013-10-06T18:42:38Z</updated>
374
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
375
+ <author>
376
+ <name>John Smith</name>
377
+ <email>test@test.com</email>
378
+ </author>
379
+ <summary type="xhtml">
380
+ <div xmlns='http://www.w3.org/1999/xhtml'>
381
+ <p>
382
+ <strong>John Smith</strong>
383
+ <a href="/sandbox/six/commit/68dafe968a11e0b6dbb4a4c1c4e00b7703efcf0a">(#68dafe96)</a>
384
+ <i>
385
+ at
386
+ 30 Aug 14:12
387
+ </i>
388
+ </p>
389
+ <blockquote><p>Me lo han pedido en el ticket #35</p></blockquote>
390
+ </div>
391
+ </summary>
392
+ </entry>
393
+ <entry>
394
+ <id>tag:demo.gitlab.com,2013-10-06:8126</id>
395
+ <link href="http://demo.gitlab.com/gitlab/gitlabhq/commit/2ec71a0c09e980c29ee2ba50c5fc5ba91c3d08f3"/>
396
+ <title>John Smith pushed to branch ubuntu_script at GitLab / gitlabhq</title>
397
+ <updated>2013-10-06T18:42:37Z</updated>
398
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
399
+ <author>
400
+ <name>John Smith</name>
401
+ <email>test@test.com</email>
402
+ </author>
403
+ <summary type="xhtml">
404
+ <div xmlns='http://www.w3.org/1999/xhtml'>
405
+ <p>
406
+ <strong>John Smith</strong>
407
+ <a href="/gitlab/gitlabhq/commit/2ec71a0c09e980c29ee2ba50c5fc5ba91c3d08f3">(#2ec71a0c)</a>
408
+ <i>
409
+ at
410
+ 03 Sep 12:37
411
+ </i>
412
+ </p>
413
+ <blockquote><p>.</p></blockquote>
414
+ </div>
415
+ </summary>
416
+ </entry>
417
+ <entry>
418
+ <id>tag:demo.gitlab.com,2013-10-06:8127</id>
419
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/503a3b7a83dc434217eaa0a61bce528571784159"/>
420
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
421
+ <updated>2013-10-06T18:42:37Z</updated>
422
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
423
+ <author>
424
+ <name>John Smith</name>
425
+ <email>test@test.com</email>
426
+ </author>
427
+ <summary type="xhtml">
428
+ <div xmlns='http://www.w3.org/1999/xhtml'>
429
+ <p>
430
+ <strong>John Smith</strong>
431
+ <a href="/sandbox/charts-js/commit/503a3b7a83dc434217eaa0a61bce528571784159">(#503a3b7a)</a>
432
+ <i>
433
+ at
434
+ 03 Sep 11:02
435
+ </i>
436
+ </p>
437
+ <blockquote><p>a</p></blockquote>
438
+ </div>
439
+ </summary>
440
+ </entry>
441
+ <entry>
442
+ <id>tag:demo.gitlab.com,2013-10-06:8128</id>
443
+ <link href="http://demo.gitlab.com/gitlab/gitlabhq/commit/ac1ef9f53e4e8aded71dbc01754e999a5fc9372a"/>
444
+ <title>John Smith pushed to branch ubuntu_script at GitLab / gitlabhq</title>
445
+ <updated>2013-10-06T18:42:37Z</updated>
446
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
447
+ <author>
448
+ <name>John Smith</name>
449
+ <email>test@test.com</email>
450
+ </author>
451
+ <summary type="xhtml">
452
+ <div xmlns='http://www.w3.org/1999/xhtml'>
453
+ <p>
454
+ <strong>John Smith</strong>
455
+ <a href="/gitlab/gitlabhq/commit/ac1ef9f53e4e8aded71dbc01754e999a5fc9372a">(#ac1ef9f5)</a>
456
+ <i>
457
+ at
458
+ 03 Sep 00:29
459
+ </i>
460
+ </p>
461
+ <blockquote><p>test</p></blockquote>
462
+ </div>
463
+ </summary>
464
+ </entry>
465
+ <entry>
466
+ <id>tag:demo.gitlab.com,2013-10-06:8129</id>
467
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/51cb6fdb3dc6606bda6eca3ed15682096d404982"/>
468
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
469
+ <updated>2013-10-06T18:42:37Z</updated>
470
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
471
+ <author>
472
+ <name>John Smith</name>
473
+ <email>test@test.com</email>
474
+ </author>
475
+ <summary type="xhtml">
476
+ <div xmlns='http://www.w3.org/1999/xhtml'>
477
+ <p>
478
+ <strong>John Smith</strong>
479
+ <a href="/sandbox/charts-js/commit/51cb6fdb3dc6606bda6eca3ed15682096d404982">(#51cb6fdb)</a>
480
+ <i>
481
+ at
482
+ 03 Sep 10:18
483
+ </i>
484
+ </p>
485
+ <blockquote><p>ertwertw</p></blockquote>
486
+ </div>
487
+ </summary>
488
+ </entry>
489
+ <entry>
490
+ <id>tag:demo.gitlab.com,2013-10-06:8125</id>
491
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/ff90b081df442318f9ab560a5efcc5a2293f8528"/>
492
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
493
+ <updated>2013-10-06T18:42:34Z</updated>
494
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
495
+ <author>
496
+ <name>John Smith</name>
497
+ <email>test@test.com</email>
498
+ </author>
499
+ <summary type="xhtml">
500
+ <div xmlns='http://www.w3.org/1999/xhtml'>
501
+ <p>
502
+ <strong>John Smith</strong>
503
+ <a href="/sandbox/charts-js/commit/ff90b081df442318f9ab560a5efcc5a2293f8528">(#ff90b081)</a>
504
+ <i>
505
+ at
506
+ 03 Sep 20:03
507
+ </i>
508
+ </p>
509
+ <blockquote><p>test</p></blockquote>
510
+ </div>
511
+ </summary>
512
+ </entry>
513
+ <entry>
514
+ <id>tag:demo.gitlab.com,2013-10-06:8124</id>
515
+ <link href="http://demo.gitlab.com/sandbox/six/commit/e9e851fbbea5027846ccfd3b000436c3f0ddff7c"/>
516
+ <title>John Smith pushed to branch master at Sandbox / Six</title>
517
+ <updated>2013-10-06T18:42:33Z</updated>
518
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
519
+ <author>
520
+ <name>John Smith</name>
521
+ <email>test@test.com</email>
522
+ </author>
523
+ <summary type="xhtml">
524
+ <div xmlns='http://www.w3.org/1999/xhtml'>
525
+ <p>
526
+ <strong>John Smith</strong>
527
+ <a href="/sandbox/six/commit/e9e851fbbea5027846ccfd3b000436c3f0ddff7c">(#e9e851fb)</a>
528
+ <i>
529
+ at
530
+ 09 Sep 13:44
531
+ </i>
532
+ </p>
533
+ <blockquote><p>toto</p></blockquote>
534
+ </div>
535
+ </summary>
536
+ </entry>
537
+ <entry>
538
+ <id>tag:demo.gitlab.com,2013-10-06:8123</id>
539
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/b7c4c97ec111733f27e9b7e493ee2c4b6b8e8c20"/>
540
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
541
+ <updated>2013-10-06T18:42:32Z</updated>
542
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
543
+ <author>
544
+ <name>John Smith</name>
545
+ <email>test@test.com</email>
546
+ </author>
547
+ <summary type="xhtml">
548
+ <div xmlns='http://www.w3.org/1999/xhtml'>
549
+ <p>
550
+ <strong>John Smith</strong>
551
+ <a href="/sandbox/charts-js/commit/b7c4c97ec111733f27e9b7e493ee2c4b6b8e8c20">(#b7c4c97e)</a>
552
+ <i>
553
+ at
554
+ 10 Sep 08:54
555
+ </i>
556
+ </p>
557
+ <blockquote><p>s</p></blockquote>
558
+ </div>
559
+ </summary>
560
+ </entry>
561
+ <entry>
562
+ <id>tag:demo.gitlab.com,2013-10-06:8122</id>
563
+ <link href="http://demo.gitlab.com/gitlab/gitlabhq/commit/70fb4d1ef412783236e2bed1f59d1c58b5664acf"/>
564
+ <title>John Smith pushed to branch ubuntu_script at GitLab / gitlabhq</title>
565
+ <updated>2013-10-06T18:42:30Z</updated>
566
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
567
+ <author>
568
+ <name>John Smith</name>
569
+ <email>test@test.com</email>
570
+ </author>
571
+ <summary type="xhtml">
572
+ <div xmlns='http://www.w3.org/1999/xhtml'>
573
+ <p>
574
+ <strong>John Smith</strong>
575
+ <a href="/gitlab/gitlabhq/commit/70fb4d1ef412783236e2bed1f59d1c58b5664acf">(#70fb4d1e)</a>
576
+ <i>
577
+ at
578
+ 10 Sep 17:52
579
+ </i>
580
+ </p>
581
+ <blockquote><p>Commit via built in editor.</p></blockquote>
582
+ </div>
583
+ </summary>
584
+ </entry>
585
+ <entry>
586
+ <id>tag:demo.gitlab.com,2013-10-06:8120</id>
587
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/b5520bbf32ddf10f00677e19c683a2bf70a5e46d"/>
588
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
589
+ <updated>2013-10-06T18:42:29Z</updated>
590
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
591
+ <author>
592
+ <name>John Smith</name>
593
+ <email>test@test.com</email>
594
+ </author>
595
+ <summary type="xhtml">
596
+ <div xmlns='http://www.w3.org/1999/xhtml'>
597
+ <p>
598
+ <strong>John Smith</strong>
599
+ <a href="/sandbox/charts-js/commit/b5520bbf32ddf10f00677e19c683a2bf70a5e46d">(#b5520bbf)</a>
600
+ <i>
601
+ at
602
+ 18 Sep 01:31
603
+ </i>
604
+ </p>
605
+ <blockquote><p>Squee</p></blockquote>
606
+ </div>
607
+ </summary>
608
+ </entry>
609
+ <entry>
610
+ <id>tag:demo.gitlab.com,2013-10-06:8121</id>
611
+ <link href="http://demo.gitlab.com/sandbox/charts-js/commit/7b9163d83ed8311c1a9308844fd32e81a58464a9"/>
612
+ <title>John Smith pushed to branch master at Sandbox / Charts.js</title>
613
+ <updated>2013-10-06T18:42:29Z</updated>
614
+ <media:thumbnail width="40" height="40" url="http://www.gravatar.com/avatar/b642b4217b34b1e8d3bd915fc65c4452?s=40&amp;d=mm"/>
615
+ <author>
616
+ <name>John Smith</name>
617
+ <email>test@test.com</email>
618
+ </author>
619
+ <summary type="xhtml">
620
+ <div xmlns='http://www.w3.org/1999/xhtml'>
621
+ <p>
622
+ <strong>John Smith</strong>
623
+ <a href="/sandbox/charts-js/commit/7b9163d83ed8311c1a9308844fd32e81a58464a9">(#7b9163d8)</a>
624
+ <i>
625
+ at
626
+ 10 Sep 10:03
627
+ </i>
628
+ </p>
629
+ <blockquote><p>Updated copyright for next year.</p></blockquote>
630
+ </div>
631
+ </summary>
632
+ </entry>
633
+ </feed>
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: feed_notifier
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - '''Taku Okawa'''
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: feedzirra
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.3
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.3
27
+ - !ruby/object:Gem::Dependency
28
+ name: lunchy
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 0.7.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 0.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: terminal-notifier
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 1.5.1
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.5.1
55
+ - !ruby/object:Gem::Dependency
56
+ name: bundler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '1.3'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '1.3'
69
+ - !ruby/object:Gem::Dependency
70
+ name: pry-byebug
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Notify feed update via notification center
98
+ email:
99
+ - '''taku.okawa@gmail.com'''
100
+ executables:
101
+ - feed_notifier
102
+ extensions: []
103
+ extra_rdoc_files: []
104
+ files:
105
+ - .gitignore
106
+ - Gemfile
107
+ - LICENSE.txt
108
+ - README.md
109
+ - Rakefile
110
+ - bin/feed_notifier
111
+ - feed_notifier.gemspec
112
+ - lib/feed_notifier.rb
113
+ - lib/feed_notifier/config.rb
114
+ - lib/feed_notifier/feed.rb
115
+ - lib/feed_notifier/runner.rb
116
+ - lib/feed_notifier/version.rb
117
+ - spec/config_files/sample_config.rb
118
+ - spec/config_spec.rb
119
+ - spec/feed_spec.rb
120
+ - spec/feeds/gitlab_sample.xml
121
+ homepage: ''
122
+ licenses:
123
+ - MIT
124
+ metadata: {}
125
+ post_install_message:
126
+ rdoc_options: []
127
+ require_paths:
128
+ - lib
129
+ required_ruby_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ required_rubygems_version: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ requirements: []
140
+ rubyforge_project:
141
+ rubygems_version: 2.0.3
142
+ signing_key:
143
+ specification_version: 4
144
+ summary: Notify feed update via notification center
145
+ test_files: []