random_youtube_comment 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source "https://rubygems.org"
2
+ gem 'youtube_it'
3
+ gem 'wordnik'
4
+ gem 'json'
5
+
6
+ group :development do
7
+ gem "rspec", "~> 2.8.0"
8
+ gem "jeweler", "~> 1.8.4"
9
+ gem 'bundler', '~>1.0'
10
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,79 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ activemodel (3.2.8)
5
+ activesupport (= 3.2.8)
6
+ builder (~> 3.0.0)
7
+ activesupport (3.2.8)
8
+ i18n (~> 0.6)
9
+ multi_json (~> 1.0)
10
+ addressable (2.3.2)
11
+ builder (3.0.3)
12
+ diff-lcs (1.1.3)
13
+ faraday (0.8.4)
14
+ multipart-post (~> 1.1)
15
+ ffi (1.1.5)
16
+ git (1.2.5)
17
+ htmlentities (4.3.1)
18
+ httpauth (0.1)
19
+ i18n (0.6.1)
20
+ jeweler (1.8.4)
21
+ bundler (~> 1.0)
22
+ git (>= 1.2.5)
23
+ rake
24
+ rdoc
25
+ json (1.7.5)
26
+ jwt (0.1.5)
27
+ multi_json (>= 1.0)
28
+ mime-types (1.19)
29
+ multi_json (1.3.6)
30
+ multipart-post (1.1.5)
31
+ nokogiri (1.5.5)
32
+ oauth (0.4.7)
33
+ oauth2 (0.8.0)
34
+ faraday (~> 0.8)
35
+ httpauth (~> 0.1)
36
+ jwt (~> 0.1.4)
37
+ multi_json (~> 1.0)
38
+ rack (~> 1.2)
39
+ rack (1.4.1)
40
+ rake (0.9.2.2)
41
+ rdoc (3.12)
42
+ json (~> 1.4)
43
+ rspec (2.8.0)
44
+ rspec-core (~> 2.8.0)
45
+ rspec-expectations (~> 2.8.0)
46
+ rspec-mocks (~> 2.8.0)
47
+ rspec-core (2.8.0)
48
+ rspec-expectations (2.8.0)
49
+ diff-lcs (~> 1.1.2)
50
+ rspec-mocks (2.8.0)
51
+ simple_oauth (0.1.9)
52
+ typhoeus (0.4.2)
53
+ ffi (~> 1.0)
54
+ mime-types (~> 1.18)
55
+ wordnik (4.07)
56
+ activemodel (>= 3.0.3)
57
+ addressable (>= 2.2.4)
58
+ htmlentities (>= 4.2.4)
59
+ json (>= 1.4.6)
60
+ nokogiri (>= 1.4.4)
61
+ typhoeus (>= 0.2.1)
62
+ youtube_it (2.1.7)
63
+ builder
64
+ faraday (~> 0.8)
65
+ nokogiri (~> 1.5.2)
66
+ oauth (~> 0.4.4)
67
+ oauth2 (~> 0.6)
68
+ simple_oauth (~> 0.1.5)
69
+
70
+ PLATFORMS
71
+ ruby
72
+
73
+ DEPENDENCIES
74
+ bundler (~> 1.0)
75
+ jeweler (~> 1.8.4)
76
+ json
77
+ rspec (~> 2.8.0)
78
+ wordnik
79
+ youtube_it
data/README.rdoc ADDED
@@ -0,0 +1,19 @@
1
+ = random_youtube_comment
2
+
3
+ Description goes here.
4
+
5
+ == Contributing to random_youtube_comment
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it.
9
+ * Fork the project.
10
+ * Start a feature/bugfix branch.
11
+ * Commit and push until you are happy with your contribution.
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2012 Colin Rymer. See UNLICENSE.txt for
18
+ further details.
19
+
data/Rakefile ADDED
@@ -0,0 +1,48 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ Jeweler::Tasks.new do |gem|
16
+ gem.name = "random_youtube_comment"
17
+ gem.homepage = "http://github.com/crymer11/random_youtube_comment"
18
+ gem.license = "UNLICENSE"
19
+ gem.summary = %Q{Retrieves a (psuedo)random comment from a (psuedo)random video.}
20
+ gem.description = %Q{Retrieves a (psuedo)random comment from a (psuedo)random video using the Wordnik API to get a random word, search YouTube for that word, get a random search result with comments, and then get a random comment from that result. Ugly, but it works. Usually.}
21
+ gem.email = "colin.rymer@gmail.com"
22
+ gem.authors = ["Colin Rymer"]
23
+ # dependencies defined in Gemfile
24
+ end
25
+ Jeweler::RubygemsDotOrgTasks.new
26
+
27
+ require 'rspec/core'
28
+ require 'rspec/core/rake_task'
29
+ RSpec::Core::RakeTask.new(:spec) do |spec|
30
+ spec.pattern = FileList['spec/**/*_spec.rb']
31
+ end
32
+
33
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
34
+ spec.pattern = 'spec/**/*_spec.rb'
35
+ spec.rcov = true
36
+ end
37
+
38
+ task :default => :spec
39
+
40
+ require 'rdoc/task'
41
+ Rake::RDocTask.new do |rdoc|
42
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
43
+
44
+ rdoc.rdoc_dir = 'rdoc'
45
+ rdoc.title = "random_youtube_comment #{version}"
46
+ rdoc.rdoc_files.include('README*')
47
+ rdoc.rdoc_files.include('lib/**/*.rb')
48
+ end
data/UNLICENSE.txt ADDED
@@ -0,0 +1,24 @@
1
+ This is free and unencumbered software released into the public domain.
2
+
3
+ Anyone is free to copy, modify, publish, use, compile, sell, or
4
+ distribute this software, either in source code form or as a compiled
5
+ binary, for any purpose, commercial or non-commercial, and by any
6
+ means.
7
+
8
+ In jurisdictions that recognize copyright laws, the author or authors
9
+ of this software dedicate any and all copyright interest in the
10
+ software to the public domain. We make this dedication for the benefit
11
+ of the public at large and to the detriment of our heirs and
12
+ successors. We intend this dedication to be an overt act of
13
+ relinquishment in perpetuity of all present and future rights to this
14
+ software under copyright law.
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 NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ For more information, please refer to <http://unlicense.org/>
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1,18 @@
1
+ require 'random_youtube_comment/youtube_client'
2
+
3
+ module RandomYoutubeComment
4
+ class Comment
5
+ attr_accessor :youtube_it_comment, :id, :author, :body, :title, :video_id, :video
6
+
7
+ def initialize
8
+ @video = RandomYoutubeComment::YoutubeClient.random_video
9
+ @video_id = @video.unique_id
10
+
11
+ @youtube_it_comment = RandomYoutubeComment::YoutubeClient.random_comment_for_video(@video_id)
12
+ @id, @author = @youtube_it_comment.url.split(":").last, @youtube_it_comment.author.name
13
+ @body, @title = @youtube_it_comment.content, @youtube_it_comment.title
14
+ end
15
+
16
+
17
+ end
18
+ end
@@ -0,0 +1,15 @@
1
+ module RandomYoutubeComment
2
+ class Configuration
3
+ attr_accessor :wordnik_api_key
4
+ end
5
+
6
+ class << self
7
+ attr_accessor :configuration
8
+
9
+ def setup
10
+ self.configuration ||= Configuration.new
11
+ yield configuration
12
+ end
13
+ end
14
+
15
+ end
@@ -0,0 +1,20 @@
1
+ require 'wordnik'
2
+
3
+ module RandomYoutubeComment
4
+ class WordnikClient
5
+ class << self
6
+ def random_word
7
+ client.get_random_word(:hasDictionaryDef => 'true')["word"]
8
+ end
9
+
10
+ def client
11
+ Wordnik.configure do |config|
12
+ config.api_key = RandomYoutubeComment.configuration.wordnik_api_key
13
+ config.logger = Logger.new('/dev/null')
14
+ end unless @client
15
+
16
+ @client ||= Wordnik.words
17
+ end
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,35 @@
1
+ require 'random_youtube_comment/wordnik_client'
2
+
3
+ require 'youtube_it'
4
+
5
+ module RandomYoutubeComment
6
+ class YoutubeClient
7
+ class << self
8
+ def random_comment_for_video(video_id)
9
+ client.comments(video_id).sample
10
+ end
11
+
12
+ def random_video
13
+ begin
14
+ video = search_for_videos.sample
15
+ end while video.nil? || video.comment_count < 2
16
+ video
17
+ end
18
+
19
+ private
20
+
21
+ def client
22
+ @client ||= YouTubeIt::Client.new
23
+ end
24
+
25
+ def search_for_videos
26
+ begin
27
+ word = RandomYoutubeComment::WordnikClient.random_word
28
+ videos = client.videos_by(query: word).videos
29
+ end while videos.nil? || videos.length < 1
30
+ videos
31
+ end
32
+
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,13 @@
1
+ require 'random_youtube_comment/configuration'
2
+ require 'random_youtube_comment/comment'
3
+
4
+ require 'yaml'
5
+ APP_CONFIG = YAML.load(File.open("#{File.dirname(__FILE__)}/../config/app_config.yml")) if FileTest.exists?("#{File.dirname(__FILE__)}/../config/app_config.yml")
6
+
7
+ module RandomYoutubeComment
8
+ class << self
9
+ def comment
10
+ RandomYoutubeComment::Comment.new
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,72 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "random_youtube_comment"
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Colin Rymer"]
12
+ s.date = "2012-09-27"
13
+ s.description = "Retrieves a (psuedo)random comment from a (psuedo)random video using the Wordnik API to get a random word, search YouTube for that word, get a random search result with comments, and then get a random comment from that result. Ugly, but it works. Usually."
14
+ s.email = "colin.rymer@gmail.com"
15
+ s.extra_rdoc_files = [
16
+ "README.rdoc"
17
+ ]
18
+ s.files = [
19
+ ".document",
20
+ ".rspec",
21
+ "Gemfile",
22
+ "Gemfile.lock",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "UNLICENSE.txt",
26
+ "VERSION",
27
+ "lib/random_youtube_comment.rb",
28
+ "lib/random_youtube_comment/comment.rb",
29
+ "lib/random_youtube_comment/configuration.rb",
30
+ "lib/random_youtube_comment/wordnik_client.rb",
31
+ "lib/random_youtube_comment/youtube_client.rb",
32
+ "random_youtube_comment.gemspec",
33
+ "spec/random_youtube_comment/comment_spec.rb",
34
+ "spec/random_youtube_comment/wordnik_client_spec.rb",
35
+ "spec/random_youtube_comment/youtube_client_spec.rb",
36
+ "spec/random_youtube_comment_spec.rb",
37
+ "spec/spec_helper.rb"
38
+ ]
39
+ s.homepage = "http://github.com/crymer11/random_youtube_comment"
40
+ s.licenses = ["UNLICENSE"]
41
+ s.require_paths = ["lib"]
42
+ s.rubygems_version = "1.8.24"
43
+ s.summary = "Retrieves a (psuedo)random comment from a (psuedo)random video."
44
+
45
+ if s.respond_to? :specification_version then
46
+ s.specification_version = 3
47
+
48
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
49
+ s.add_runtime_dependency(%q<youtube_it>, [">= 0"])
50
+ s.add_runtime_dependency(%q<wordnik>, [">= 0"])
51
+ s.add_runtime_dependency(%q<json>, [">= 0"])
52
+ s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
53
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
54
+ s.add_development_dependency(%q<bundler>, ["~> 1.0"])
55
+ else
56
+ s.add_dependency(%q<youtube_it>, [">= 0"])
57
+ s.add_dependency(%q<wordnik>, [">= 0"])
58
+ s.add_dependency(%q<json>, [">= 0"])
59
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
60
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
61
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
62
+ end
63
+ else
64
+ s.add_dependency(%q<youtube_it>, [">= 0"])
65
+ s.add_dependency(%q<wordnik>, [">= 0"])
66
+ s.add_dependency(%q<json>, [">= 0"])
67
+ s.add_dependency(%q<rspec>, ["~> 2.8.0"])
68
+ s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
69
+ s.add_dependency(%q<bundler>, ["~> 1.0"])
70
+ end
71
+ end
72
+
@@ -0,0 +1,19 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RandomYoutubeComment::Comment do
4
+ before(:each) do
5
+ @comment = RandomYoutubeComment::Comment.new
6
+ end
7
+
8
+ it "returns a random comment" do
9
+ @comment.youtube_it_comment.class.should == YouTubeIt::Model::Comment
10
+ end
11
+
12
+ it "has a video" do
13
+ @comment.video.class.should == YouTubeIt::Model::Video
14
+ end
15
+
16
+ it "is random" do
17
+ RandomYoutubeComment::Comment.new.id.should_not == @comment.id
18
+ end
19
+ end
@@ -0,0 +1,12 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RandomYoutubeComment::WordnikClient do
4
+ it "returns a word" do
5
+ RandomYoutubeComment::WordnikClient.random_word.class.should == String
6
+ end
7
+
8
+ it "returns random words" do
9
+ first_word = RandomYoutubeComment::WordnikClient.random_word
10
+ RandomYoutubeComment::WordnikClient.random_word.should_not equal first_word
11
+ end
12
+ end
@@ -0,0 +1,20 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe RandomYoutubeComment::YoutubeClient do
4
+ before(:each) do
5
+ @video = RandomYoutubeComment::YoutubeClient.random_video
6
+ end
7
+
8
+ it "returns random videos" do
9
+ RandomYoutubeComment::YoutubeClient.random_video.should_not == @video
10
+ end
11
+
12
+ it "gets a video that has comments" do
13
+ @video.comment_count.should >= 2
14
+ end
15
+
16
+ it "gets a random comment from a video" do
17
+ comment = RandomYoutubeComment::YoutubeClient.random_comment_for_video(@video.unique_id)
18
+ comment.class.should == YouTubeIt::Model::Comment
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe RandomYoutubeComment do
4
+ it "returns a random comment" do
5
+ RandomYoutubeComment.comment.class.should == RandomYoutubeComment::Comment
6
+ end
7
+ end
@@ -0,0 +1,16 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
+ require 'rspec'
4
+ require 'random_youtube_comment'
5
+
6
+ # Requires supporting files with custom matchers and macros, etc,
7
+ # in ./support/ and its subdirectories.
8
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
9
+
10
+ RSpec.configure do |config|
11
+
12
+ end
13
+
14
+ RandomYoutubeComment.setup do |config|
15
+ config.wordnik_api_key = ENV['WORDNIK_API_KEY'] || APP_CONFIG['wordnik_api_key']
16
+ end
metadata ADDED
@@ -0,0 +1,167 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: random_youtube_comment
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Colin Rymer
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-09-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: youtube_it
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: wordnik
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: 2.8.0
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 2.8.0
78
+ - !ruby/object:Gem::Dependency
79
+ name: jeweler
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: 1.8.4
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.8.4
94
+ - !ruby/object:Gem::Dependency
95
+ name: bundler
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '1.0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '1.0'
110
+ description: Retrieves a (psuedo)random comment from a (psuedo)random video using
111
+ the Wordnik API to get a random word, search YouTube for that word, get a random
112
+ search result with comments, and then get a random comment from that result. Ugly,
113
+ but it works. Usually.
114
+ email: colin.rymer@gmail.com
115
+ executables: []
116
+ extensions: []
117
+ extra_rdoc_files:
118
+ - README.rdoc
119
+ files:
120
+ - .document
121
+ - .rspec
122
+ - Gemfile
123
+ - Gemfile.lock
124
+ - README.rdoc
125
+ - Rakefile
126
+ - UNLICENSE.txt
127
+ - VERSION
128
+ - lib/random_youtube_comment.rb
129
+ - lib/random_youtube_comment/comment.rb
130
+ - lib/random_youtube_comment/configuration.rb
131
+ - lib/random_youtube_comment/wordnik_client.rb
132
+ - lib/random_youtube_comment/youtube_client.rb
133
+ - random_youtube_comment.gemspec
134
+ - spec/random_youtube_comment/comment_spec.rb
135
+ - spec/random_youtube_comment/wordnik_client_spec.rb
136
+ - spec/random_youtube_comment/youtube_client_spec.rb
137
+ - spec/random_youtube_comment_spec.rb
138
+ - spec/spec_helper.rb
139
+ homepage: http://github.com/crymer11/random_youtube_comment
140
+ licenses:
141
+ - UNLICENSE
142
+ post_install_message:
143
+ rdoc_options: []
144
+ require_paths:
145
+ - lib
146
+ required_ruby_version: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ! '>='
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ segments:
153
+ - 0
154
+ hash: -120506246912314309
155
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
+ none: false
157
+ requirements:
158
+ - - ! '>='
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ requirements: []
162
+ rubyforge_project:
163
+ rubygems_version: 1.8.24
164
+ signing_key:
165
+ specification_version: 3
166
+ summary: Retrieves a (psuedo)random comment from a (psuedo)random video.
167
+ test_files: []