muzang-plugins 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/Rakefile +11 -0
- data/lib/muzang-plugins.rb +11 -0
- data/lib/muzang-plugins/helpers.rb +39 -0
- data/lib/muzang-plugins/muzang-eval.rb +51 -0
- data/lib/muzang-plugins/muzang-livereload.rb +19 -0
- data/lib/muzang-plugins/muzang-meme.rb +51 -0
- data/lib/muzang-plugins/muzang-motd.rb +21 -0
- data/lib/muzang-plugins/muzang-nerdpursuit.rb +95 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/algorithms/fastes_sorting_algorithm.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/algorithms/run_time_of_bst.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/bash/last_cmd_sub.json +13 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/bash/last_directory.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/bash/prefix_last_command.json +13 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/couchdb/new_database.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/attribute_selectors.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/background_image.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/float_left.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/hexadecimal_code.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/how_do_you_use_multiple_box_sha.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/media.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/position_fixed_support.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/position_property.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/release_date.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/roses.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/z-index_property.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/all_ur_base.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/answer_to_everything.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/club_mate_caffeine.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/ook_ook.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/prediction_gates.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/the_cake.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/to_which_year_marty_mcfly_wants.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/what_is_a_traditional_vulcan_sa.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/what_is_the_c_base.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/when_life_gives_you_lemons.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/where_are_the_characters_of_daw.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/which_character_in_star_trek_se.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/who_is_the_first_character_to_b.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/yo_dawg.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/data/half_a_byte.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/flash/fps.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/flash/trace_something_in_as3.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/png.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/ps_save_for_web.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/screen_image_resolution.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/how_do_you_specify_html5_doctyp.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/img_tag.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/optional_html_tags.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/strict_doctype.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/http/HTCPCP.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/chrome_v8.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/fun_with_brackets.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/how_can_you_access_the_data_pas.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/jquery_sizzle.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/json.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/jsonp.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/nodetype_of_text_node.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/same_origin_policy.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/string_object_coercion_internals.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/typeof_arguments.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/valid_function_expression.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/what_s_4_2.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/what_s_typeof_null.json +12 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/who_created_jquery.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/php/invited-php.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/python/square_numbers_in_list.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/controller_action.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/folders.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/pluralize_person.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rails_first_shown.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rails_inventor.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rake_about.json +11 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/simple_format.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/emails.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/lazy.json +13 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/min_max_quantifier.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/negative_look_ahead.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/prime.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/2_seconds.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/about_ruby.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/absolute_superclass_1.8.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/absolute_superclass_1.9.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/active_record_base.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_first.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_first_and_last .json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_last.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_ampersand.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_get_and remove_first_element.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_get_and remove_last_element.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_pipe.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_splat.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_to_csv_string.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/backticks_in_ruby.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/base_object.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/best_language.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/bitwise_and.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/bitwise_or.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/class_inheritance.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/collect_alternative.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/comparsion.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/constants.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/date_format_month.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/divmod.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/enumerable.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/equality.json +13 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/falsy.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/fizzbuzz.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/garbarge_collector_in_19.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/global_variable_character.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/hash_with_indifferent_access.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/how_is_ruby_licensed.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/how_many_gems.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/instance_exec.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kanji_converter.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel-sprintf-2.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel-sprintf.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/matz.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/method_used_for_comparisions.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/mixins_are_what.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/new_lambda_calling_syntax.json +13 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/new_lambda_constructing_syntax.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nil.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nil_id.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nilclass.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/numeric_types.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/private_method_in_ruby.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/protected_method_in_ruby.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/quo.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/ranges_three_dots.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/return_value_or.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/rspec_controller_render_views.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/spaceship_operator.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/string_clean_whitespace.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/sum_things_up.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_01.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_02.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_03.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_string_ids.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbols.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/the_difference_between_and_operators.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/unless_wtf.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/weakref.json +10 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_did_matz_say_about_ruby.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_do_array.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_do_string.json +14 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_does_gil_stands_for.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_does_negate_regexp_operator_do.json +15 -0
- data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_is_a_mixin.json +14 -0
- data/lib/muzang-plugins/muzang-plusone.rb +49 -0
- data/lib/muzang-plugins/muzang-reddit.rb +42 -0
- data/lib/muzang-plugins/muzang-rubygems.rb +43 -0
- data/lib/muzang-plugins/version.rb +5 -0
- data/muzang-plugins.gemspec +23 -0
- data/spec/livereload_spec.rb +23 -0
- data/spec/meme_spec.rb +43 -0
- data/spec/motd_spec.rb +18 -0
- data/spec/muzang-eval_spec.rb +43 -0
- data/spec/nerdpursuit_spec.rb +76 -0
- data/spec/plusone_spec.rb +67 -0
- data/spec/reddit_spec.rb +45 -0
- data/spec/rubygems_spec.rb +37 -0
- data/spec/spec_helper.rb +11 -0
- data/spec/support/connection_mock.rb +15 -0
- data/spec/support/responses/meme.response +4 -0
- data/spec/support/responses/reddit.response +3 -0
- data/spec/support/responses/rubygems.response +3 -0
- metadata +259 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/muzang-plugins/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Piotr Niełacny"]
|
6
|
+
gem.email = ["piotr.nielacny@gmail.com"]
|
7
|
+
gem.description = %q{Plugins for Muzang IRC bot}
|
8
|
+
gem.summary = %q{Basic plugins for Muzang IRC bot}
|
9
|
+
gem.homepage = ""
|
10
|
+
|
11
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
12
|
+
gem.files = `git ls-files`.split("\n")
|
13
|
+
gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
14
|
+
gem.name = "muzang-plugins"
|
15
|
+
gem.require_paths = ["lib"]
|
16
|
+
gem.version = Muzang::Plugins::VERSION
|
17
|
+
|
18
|
+
gem.add_dependency "em-http-request"
|
19
|
+
gem.add_dependency "muzang", "~> 1.0.0"
|
20
|
+
|
21
|
+
gem.add_development_dependency "em-ventually", "~> 0.1.2"
|
22
|
+
gem.add_development_dependency "rspec", "~> 2.6.0"
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-livereload'
|
3
|
+
|
4
|
+
describe "LiveReload" do
|
5
|
+
before(:each) do
|
6
|
+
@bot = stub
|
7
|
+
@livereload = LiveReload.new(@bot)
|
8
|
+
@bot.stub(:plugins => { LiveReload => @livereload })
|
9
|
+
@connection = stub(:msg => true)
|
10
|
+
Kernel.stub(:load)
|
11
|
+
@message = OpenStruct.new({:channel => "#test", :message => "!reload"})
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should load plugins" do
|
15
|
+
Kernel.should_receive(:load).with('muzang-plugins/muzang-livereload.rb')
|
16
|
+
@livereload.call(@connection, @message)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should create new instance of plugin" do
|
20
|
+
LiveReload.should_receive(:new).with(@bot)
|
21
|
+
@livereload.call(@connection, @message)
|
22
|
+
end
|
23
|
+
end
|
data/spec/meme_spec.rb
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-meme'
|
3
|
+
|
4
|
+
describe "Meme" do
|
5
|
+
before do
|
6
|
+
@bot = stub(:channels => ["#test"])
|
7
|
+
@meme = Meme.new(@bot)
|
8
|
+
@connection = ConnectionMock.new
|
9
|
+
@url = "http://version1.api.memegenerator.net:80/Instance_Create?username=drug-bot&password=drug-bot&languageCode=en&generatorID=2&imageID=166088&text0=hi0&text1=hi1"
|
10
|
+
@file = File.expand_path("../support/responses/meme.response", __FILE__)
|
11
|
+
EventMachine::MockHttpRequest.pass_through_requests = false
|
12
|
+
EventMachine::MockHttpRequest.register_file(@url, :get, @file)
|
13
|
+
EventMachine::MockHttpRequest.activate!
|
14
|
+
@message = OpenStruct.new({:channel => "#test", :message => "meme", :nick => "LTe" })
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should print pretty help" do
|
18
|
+
EM.run do
|
19
|
+
@meme.call(@connection, @message)
|
20
|
+
eventually(true) do
|
21
|
+
@connection.messages.include?("Type 'meme [name of meme] \"Text0\" \"Text1\"'") and
|
22
|
+
@connection.messages.include?("Available memes: #{Meme::MEMES.keys.join(" ")}")
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should create meme and send message" do
|
28
|
+
@message.message = "meme yuno \"hi0\" \"hi1\""
|
29
|
+
EM.run do
|
30
|
+
@meme.call(@connection, @message)
|
31
|
+
eventually(1) { @connection.message_count }
|
32
|
+
eventually(true) { @connection.messages.include? "Meme: http://version1.api.memegenerator.net//cache/instances/400x/10/10725/10982714.jpg" }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not create meme" do
|
37
|
+
@message.message = "meme asdkasdj \"hi0\" \"hi1\""
|
38
|
+
EM.run do
|
39
|
+
@meme.call(@connection, @message)
|
40
|
+
eventually(0) { @connection.message_count }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
data/spec/motd_spec.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-motd'
|
3
|
+
|
4
|
+
describe "Motd" do
|
5
|
+
before do
|
6
|
+
@message = OpenStruct.new({ :command => :join, :channel => "#test", :nick => "DRUG-bot" })
|
7
|
+
@bot = stub
|
8
|
+
@motd = Motd.new(@bot)
|
9
|
+
@bot.stub(:plugins => { Motd => @motd })
|
10
|
+
@connection = stub(:msg => true, :nick => "DRUG-bot")
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should send message after join to channel" do
|
14
|
+
@connection.should_receive(:msg).with("#test", "DRUG-bot | Version: #{Muzang::VERSION} | Plugins: *Motd* ")
|
15
|
+
@motd.call(@connection, @message)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-eval'
|
3
|
+
|
4
|
+
describe "Eval" do
|
5
|
+
before(:each) do
|
6
|
+
@bot = stub
|
7
|
+
@eval = Eval.new(@bot)
|
8
|
+
@connection = ConnectionMock.new
|
9
|
+
@message = OpenStruct.new({ :channel => "#test", :message => "% 1 + 1", :nick => "LTe" })
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should eval ruby code" do
|
13
|
+
@message.message = "% 1 + 1"
|
14
|
+
EM.run do
|
15
|
+
@eval.call(@connection, @message)
|
16
|
+
eventually(true) { @connection.messages.include? "2" }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
it "@codegram should give me a t-shirt" do
|
21
|
+
@message.message = "% \"@codegram\""
|
22
|
+
EM.run do
|
23
|
+
@eval.call(@connection, @message)
|
24
|
+
eventually(true) { @connection.messages.include? "@codegram" }
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not eval system method" do
|
29
|
+
@message.message = "% system('rm -rf /')"
|
30
|
+
EM.run do
|
31
|
+
@eval.call(@connection, @message)
|
32
|
+
eventually(true) { @connection.messages.include? "Error: Insecure operation - system" }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not crash after raise Exception" do
|
37
|
+
@message.message = "% raise Exception"
|
38
|
+
EM.run do
|
39
|
+
@eval.call(@connection, @message)
|
40
|
+
eventually(true) { @connection.messages.include? "Error: Exception" }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-nerdpursuit'
|
3
|
+
require 'json'
|
4
|
+
|
5
|
+
class NerdPursuit
|
6
|
+
def current_question=(other)
|
7
|
+
@current_question=other
|
8
|
+
end
|
9
|
+
|
10
|
+
def period(time)
|
11
|
+
time / 1000.0
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "NerdPursuit" do
|
16
|
+
before(:each) do
|
17
|
+
@bot = stub
|
18
|
+
@nerdpursuit = NerdPursuit.new(@bot)
|
19
|
+
@connection = ConnectionMock.new
|
20
|
+
@cq = JSON.parse(File.open("#{File.expand_path("../../lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/matz.json", __FILE__)}").read)["question"]
|
21
|
+
@nerdpursuit.current_question = @cq
|
22
|
+
@message = OpenStruct.new({ :channel => "#test", :message => "!quiz", :nick => "LTe" })
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should start quiz after !quiz message" do
|
26
|
+
@nerdpursuit.call(@connection, @message)
|
27
|
+
@nerdpursuit.quiz_time.should == true
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should parse question and start quiz sequence" do
|
31
|
+
EM.run do
|
32
|
+
@nerdpursuit.call(@connection, @message)
|
33
|
+
eventually(true) do
|
34
|
+
@connection.messages.include? "Quiz time!" and
|
35
|
+
@connection.messages.include? "Category: ruby" and
|
36
|
+
@connection.messages.include? "Question: When Matz joined Heruku?" and
|
37
|
+
@connection.messages.include? "Answer 1: 12th June 2008" and
|
38
|
+
@connection.messages.include? "Answer 2: 12th July 2011" and
|
39
|
+
@connection.messages.include? "Answer 3: 12th June 2011" and
|
40
|
+
@connection.messages.include? "Answer 4: 12th June 2010"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should find winner" do
|
46
|
+
EM.run do
|
47
|
+
@message_lte = @message.dup
|
48
|
+
@message_lte.message = "3"
|
49
|
+
@nerdpursuit.call(@connection, @message)
|
50
|
+
@nerdpursuit.call(@connection, @message_lte)
|
51
|
+
|
52
|
+
eventually(true) do
|
53
|
+
@connection.messages.include? "The winner is... LTe" and
|
54
|
+
@connection.messages.include? "Right answer: 3"
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should not allow for many answers" do
|
60
|
+
EM.run do
|
61
|
+
@nerdpursuit.call(@connection, @message)
|
62
|
+
[1,2,3,4].each do |answer|
|
63
|
+
@message.message = answer.to_s
|
64
|
+
@nerdpursuit.call(@connection, @message)
|
65
|
+
end
|
66
|
+
@message.message = "3"; @message.nick = "PawelPacana"
|
67
|
+
@nerdpursuit.call(@connection, @message)
|
68
|
+
|
69
|
+
eventually(true) do
|
70
|
+
@connection.messages.include? "Right answer: 3" and
|
71
|
+
@connection.messages.include? "The winner is... PawelPacana" and
|
72
|
+
!@connection.messages.include? "The winner is... LTe"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-plusone'
|
3
|
+
|
4
|
+
describe "PlusOne" do
|
5
|
+
before(:each) do
|
6
|
+
@bot = stub
|
7
|
+
@plusone = PlusOne.new(@bot)
|
8
|
+
@plusone.stats = { "LTe" => 1, "ruby" => 1 }
|
9
|
+
@connection = stub(:msg => true)
|
10
|
+
@message = OpenStruct.new({ :channel => "#test", :message => "LTe: +1 for great irc bot", :nick => "LTe"})
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should not add plus one for myself" do
|
14
|
+
@connection.should_receive(:msg).with("#test", "LTe pisze w PHP")
|
15
|
+
@plusone.call(@connection, @message)
|
16
|
+
@plusone.stats["LTe"].should == 1
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should not allow to add plus one for new user" do
|
20
|
+
@message.nick = "new_user"
|
21
|
+
@connection.should_receive(:msg).with("#test", "new_user pisze w PHP")
|
22
|
+
@plusone.call(@connection, @message)
|
23
|
+
@plusone.stats["LTe"].should == 1
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should print stats" do
|
27
|
+
@message.message = "!stats"; @message.nick = "LTe"
|
28
|
+
@connection.should_receive(:msg).once
|
29
|
+
@plusone.call(@connection, @message)
|
30
|
+
end
|
31
|
+
|
32
|
+
[
|
33
|
+
"LTe: +1 for great irc bot",
|
34
|
+
"LTe +1 for grat bot",
|
35
|
+
"LTe +1"
|
36
|
+
].each do |m|
|
37
|
+
it "should react on message #{m}" do
|
38
|
+
proper_plus_one(m)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
[
|
43
|
+
"LTe: +1",
|
44
|
+
"LTe: plus (+1) feature is great",
|
45
|
+
"I think +1 is great",
|
46
|
+
"LTe: great +1"
|
47
|
+
].each do |m|
|
48
|
+
it "should not react on message #{m}" do
|
49
|
+
invalid_plus_one(m)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
def invalid_plus_one(message)
|
56
|
+
@message = OpenStruct.new({ :channel => "#test", :message => message, :nick => "ruby" })
|
57
|
+
@connection.should_not_receive(:msg).with("#test", "ruby podarowal +1 dla *LTe*")
|
58
|
+
@plusone.call(@connection, @message)
|
59
|
+
@plusone.stats["LTe"].should == 1
|
60
|
+
end
|
61
|
+
|
62
|
+
def proper_plus_one(message)
|
63
|
+
@message = OpenStruct.new({ :channel => "#test", :message => message, :nick => "ruby" })
|
64
|
+
@connection.should_receive(:msg).with("#test", "ruby podarowal +1 dla *LTe*")
|
65
|
+
@plusone.call(@connection, @message)
|
66
|
+
@plusone.stats["LTe"].should == 2
|
67
|
+
end
|
data/spec/reddit_spec.rb
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-reddit'
|
3
|
+
|
4
|
+
class Reddit
|
5
|
+
def period
|
6
|
+
0.1
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "Reddit" do
|
11
|
+
before do
|
12
|
+
@bot = stub
|
13
|
+
@reddit = Reddit.new(@bot)
|
14
|
+
@connection = ConnectionMock.new(:nick => "DRUG-bot")
|
15
|
+
@message = OpenStruct.new({ :command => :join, :channel => "#test", :nick => "DRUG-bot" })
|
16
|
+
@file = File.expand_path('../support/responses/reddit.response', __FILE__)
|
17
|
+
EventMachine::MockHttpRequest.pass_through_requests = false
|
18
|
+
EventMachine::MockHttpRequest.register_file('http://www.reddit.com:80/r/ruby/.rss', :get, @file)
|
19
|
+
EventMachine::MockHttpRequest.activate!
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should call reddit and print all articles" do
|
23
|
+
@reddit.last_update = Time.new 2010
|
24
|
+
EM.run do
|
25
|
+
@reddit.call(@connection, @message)
|
26
|
+
eventually(25) { @connection.message_count }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should print only one message" do
|
31
|
+
@reddit.last_update = Time.new(2011, 9, 29, 0, 47, 0)
|
32
|
+
EM.run do
|
33
|
+
@reddit.call(@connection, @message)
|
34
|
+
eventually(1) { @connection.message_count }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should not print message" do
|
39
|
+
@reddit.last_update = Time.now
|
40
|
+
EM.run do
|
41
|
+
@reddit.call(@connection, @message)
|
42
|
+
eventually(0) { @connection.message_count }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'muzang-plugins/muzang-rubygems'
|
3
|
+
|
4
|
+
class RubyGems
|
5
|
+
def period
|
6
|
+
0.1
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe "RubyGems" do
|
11
|
+
before do
|
12
|
+
@bot = stub
|
13
|
+
@rubygems = RubyGems.new(@bot)
|
14
|
+
@connection = ConnectionMock.new(:nick => "DRUG-bot")
|
15
|
+
@message = OpenStruct.new({ :command => :join, :channel => "#test", :nick => "DRUG-bot" })
|
16
|
+
@file = File.expand_path('../support/responses/rubygems.response', __FILE__)
|
17
|
+
EventMachine::MockHttpRequest.pass_through_requests = false
|
18
|
+
EventMachine::MockHttpRequest.register_file('http://rubygems.org:80/api/v1/gems/latest.json', :get, @file)
|
19
|
+
EventMachine::MockHttpRequest.activate!
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should print last gem" do
|
23
|
+
@rubygems.last_gem = "fake_gem"
|
24
|
+
EM.run do
|
25
|
+
@rubygems.call(@connection, @message)
|
26
|
+
eventually(1) { @connection.message_count }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should not print last gem" do
|
31
|
+
@rubygems.last_gem = "action_links"
|
32
|
+
EM.run do
|
33
|
+
@rubygems.call(@connection, @message)
|
34
|
+
eventually(0) { @connection.message_count }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
3
|
+
require 'rspec'
|
4
|
+
require 'em-ventually/rspec'
|
5
|
+
require 'ostruct'
|
6
|
+
require 'muzang-plugins'
|
7
|
+
|
8
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class ConnectionMock
|
2
|
+
attr_accessor :message_count, :messages, :options, :nick
|
3
|
+
|
4
|
+
def initialize(options = {})
|
5
|
+
@message_count = 0
|
6
|
+
options.each do |k, v|
|
7
|
+
send(:"#{k}=", v)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def msg(where, message)
|
12
|
+
@message_count += 1
|
13
|
+
(@messages ||= []) << message
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,4 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
Cache-Control: private
|
3
|
+
|
4
|
+
{"success":true,"result":{"generatorID":2,"displayName":"Y U No","urlName":"Y-U-No","totalVotesScore":0,"imageUrl":"/cache/images/400x/0/162/166088.jpg","instanceID":10982773,"text0":"hi0","text1":"hi1","instanceImageUrl":"/cache/instances/400x/10/10725/10982773.jpg","instanceUrl":"http://memegenerator.net/instance/10982773"}}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
|
3
|
+
<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>reddit for ruby hackers</title><link>http://www.reddit.com/r/ruby/</link><description>**A reddit for discussion and news about ruby programming** Ruby-on-Rails posts are encouraged to be posted in the [r/rails](http://reddit.com/r/rails) subreddit ** Learning Ruby? ** * [TryRuby](http://tryruby.org/) in your browser * Syntax, structure, and some common functions and libraries try [RubyKoans](http://rubykoans.com/) * [Hackety Hack](http://hackety-hack.com/) a shoes app for playing around with ruby ** Tools ** * [Ruby Version Manager (RVM)](http://rvm.beginrescueend.com/) easily install, manage and work with multiple ruby environments from interpreters to sets of gems * Manages an application's dependencies [Bundler](http://gembundler.com) * Looking for new gems? [ruby-toolbox](http://ruby-toolbox.com/) ** Got Docs? ** * [APIdock](http://apidock.com/) rich and usable interface for searching, perusing and improving the documentation * [rdoc](http://rdoc.info/gems) YARD Documentation Server * [Ruby Doc](http://ruby-doc.org/) complete and accurate documentation for the Ruby programming language **Books** * [Well Grounded Rubyist](http://www.amazon.com/gp/product/1933988657/ref=as_li_qf_sp_asin_tl?ie=UTF8&tag=redditrrubyco-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1933988657) * [Eloquent Ruby](http://www.amazon.com/gp/product/0321584104/ref=as_li_tf_tl?ie=UTF8&tag=redditrrubyco-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0321584104) * [Metaprogramming Ruby](http://www.amazon.com/gp/product/1934356476/ref=as_li_tf_tl?ie=UTF8&tag=redditrrubyco-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1934356476) * [The Rspec Book](http://www.amazon.com/gp/product/1934356379/ref=as_li_tf_tl?ie=UTF8&tag=redditrrubyco-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1934356379) * [Programming Ruby 1.9: The Pragmatic Programmers’ Guide](http://www.amazon.com/gp/product/1934356085/ref=as_li_tf_tl?ie=UTF8&tag=redditrrubyco-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1934356085) * [The Ruby Programming Language](http://www.amazon.com/gp/product/0596516177/ref=as_li_tf_tl?ie=UTF8&tag=redditrrubyco-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0596516177) ** Community ** * Signup for [Github](http://github.com/signup/free) * Signup for [rubygems](http://rubygems.org/sign_up) ** Screencasts (Rails) ** * [RoR Screencasts](http://rubyonrails.org/screencasts/rails3) * [RailsCast](http://railscasts.com/) * [Rails For Zombies!](http://railsforzombies.org/)</description><image><url>http://thumbs.reddit.com/t5_2qh21.png?v=d4ae33f6d04df1caf7a3b126aabe9ae5</url><title>reddit for ruby hackers</title><link>http://www.reddit.com/r/ruby/</link></image><item><title>(Real) Modern Ruby Development</title><link>http://www.reddit.com/r/ruby/comments/kulnn/real_modern_ruby_development/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kulnn/real_modern_ruby_development/</guid><pubDate>Wed, 28 Sep 2011 22:48:47 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://blog.steveklabnik.com/2011/09/28/real-modern-ruby-development.html">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kulnn/real_modern_ruby_development/">[8 komentarzy]</a></description></item><item><title>JRuby GA on an Engine Yard Cloud Near You</title><link>http://www.reddit.com/r/ruby/comments/ku3f4/jruby_ga_on_an_engine_yard_cloud_near_you/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ku3f4/jruby_ga_on_an_engine_yard_cloud_near_you/</guid><pubDate>Wed, 28 Sep 2011 14:17:03 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/mshe"> mshe </a> <br/> <a href="http://www.engineyard.com/blog/2011/jruby-ga-on-an-engine-yard-cloud-near-you/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ku3f4/jruby_ga_on_an_engine_yard_cloud_near_you/">[skomentuj]</a></description></item><item><title>Is RSpec, Cucumber, et al Making Testing Too Risky?</title><link>http://www.reddit.com/r/ruby/comments/ku4e2/is_rspec_cucumber_et_al_making_testing_too_risky/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ku4e2/is_rspec_cucumber_et_al_making_testing_too_risky/</guid><pubDate>Wed, 28 Sep 2011 14:47:17 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/mentalbrew"> mentalbrew </a> <br/> <a href="http://www.mentalbrew.com/blog/2011/09/28/is-rspec-cucumber-making-testing-risky/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ku4e2/is_rspec_cucumber_et_al_making_testing_too_risky/">[5 komentarzy]</a></description></item><item><title>Playin' with the ruby GC in 1.9.3</title><link>http://www.reddit.com/r/ruby/comments/ku3hm/playin_with_the_ruby_gc_in_193/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ku3hm/playin_with_the_ruby_gc_in_193/</guid><pubDate>Wed, 28 Sep 2011 07:19:27 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/rondale_sc"> rondale_sc </a> <br/> <a href="http://www.jonathan-jackson.net/playin-with-the-ruby-gc">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ku3hm/playin_with_the_ruby_gc_in_193/">[skomentuj]</a></description></item><item><title>Modern Rails Setup</title><link>http://www.reddit.com/r/ruby/comments/ktrme/modern_rails_setup/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ktrme/modern_rails_setup/</guid><pubDate>Tue, 27 Sep 2011 21:42:14 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/roger1981"> roger1981 </a> <br/> <a href="http://ascarter.net/2011/09/25/modern-ruby-development.html">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ktrme/modern_rails_setup/">[12 komentarzy]</a></description></item><item><title>.NET to Ruby: Namespacing, Naming Conventions, Comments & Documentation</title><link>http://www.reddit.com/r/ruby/comments/ku7m3/net_to_ruby_namespacing_naming_conventions/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ku7m3/net_to_ruby_namespacing_naming_conventions/</guid><pubDate>Wed, 28 Sep 2011 16:24:17 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/ruprict"> ruprict </a> <br/> <a href="http://rubysource.com/net-to-ruby-namespacing-naming-conventions-comments-documentation/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ku7m3/net_to_ruby_namespacing_naming_conventions/">[skomentuj]</a></description></item><item><title>Continuous integration & deployment within 1 minute via ruby gem</title><link>http://www.reddit.com/r/ruby/comments/ku7ha/continuous_integration_deployment_within_1_minute/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ku7ha/continuous_integration_deployment_within_1_minute/</guid><pubDate>Wed, 28 Sep 2011 16:20:12 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/oBeLx"> oBeLx </a> <br/> <a href="http://news.ycombinator.com/item?id=3048602">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ku7ha/continuous_integration_deployment_within_1_minute/">[skomentuj]</a></description></item><item><title>Practicing Ruby: A weekly journal from Gregory Brown</title><link>http://www.reddit.com/r/ruby/comments/ktnda/practicing_ruby_a_weekly_journal_from_gregory/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ktnda/practicing_ruby_a_weekly_journal_from_gregory/</guid><pubDate>Tue, 27 Sep 2011 19:26:10 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/sandal"> sandal </a> <br/> <a href="http://practicingruby.com">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ktnda/practicing_ruby_a_weekly_journal_from_gregory/">[skomentuj]</a></description></item><item><title>Looking for Writers (Rubysource.com)</title><link>http://www.reddit.com/r/ruby/comments/kt8pq/looking_for_writers_rubysourcecom/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kt8pq/looking_for_writers_rubysourcecom/</guid><pubDate>Tue, 27 Sep 2011 19:12:29 +0000</pubDate><description><!-- SC_OFF --><div class="md"><p>Hullo,</p> <p>Hullo all, I am the editor of <a href="http://www.rubysource.com" >Rubysource.com</a> and we are actively looking for writers for all topics Ruby. I figure that reddit is a great source for technical Ruby minds that want to get involved. This is a pay-per-article agreement, so if you are interested, please contact me at glenn (dot) goodrich (at) rubysource.com. More details <a href="http://rubysource.com/write-for-us/" >here</a></p> <p>Please put "Write for Rubysource" in the subject line in your e-mail to me.</p> <p>Thanks, Glenn</p></div><!-- SC_ON --> submitted by <a href="http://www.reddit.com/user/ruprict"> ruprict </a> <br/> <a href="http://www.reddit.com/r/ruby/comments/kt8pq/looking_for_writers_rubysourcecom/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kt8pq/looking_for_writers_rubysourcecom/">[4 komentarze]</a></description></item><item><title>GemStats.org - Help the Ruby community collect stats on library usage in Rails apps</title><link>http://www.reddit.com/r/ruby/comments/kt7fg/gemstatsorg_help_the_ruby_community_collect_stats/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kt7fg/gemstatsorg_help_the_ruby_community_collect_stats/</guid><pubDate>Tue, 27 Sep 2011 11:37:01 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/bcardarella"> bcardarella </a> <br/> <a href="http://gemstats.org">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kt7fg/gemstatsorg_help_the_ruby_community_collect_stats/">[skomentuj]</a></description></item><item><title>The Death and Rebirth of Practicing Ruby</title><link>http://www.reddit.com/r/ruby/comments/ktmdx/the_death_and_rebirth_of_practicing_ruby/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ktmdx/the_death_and_rebirth_of_practicing_ruby/</guid><pubDate>Tue, 27 Sep 2011 18:56:57 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/sandal"> sandal </a> <br/> <a href="http://blog.rubybestpractices.com/posts/gregory/057-the-practicing-ruby-journal.html">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ktmdx/the_death_and_rebirth_of_practicing_ruby/">[skomentuj]</a></description></item><item><title>GemStats.org - help the community by sharing your gem data</title><link>http://www.reddit.com/r/ruby/comments/kt7sq/gemstatsorg_help_the_community_by_sharing_your/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kt7sq/gemstatsorg_help_the_community_by_sharing_your/</guid><pubDate>Tue, 27 Sep 2011 11:47:02 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://gemstats.org/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kt7sq/gemstatsorg_help_the_community_by_sharing_your/">[skomentuj]</a></description></item><item><title>Ruby-doc.org beta</title><link>http://www.reddit.com/r/ruby/comments/ksnx1/rubydocorg_beta/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ksnx1/rubydocorg_beta/</guid><pubDate>Mon, 26 Sep 2011 22:42:17 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://www.jamesbritt.com/2011/9/20/ruby-doc-org-beta">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ksnx1/rubydocorg_beta/">[4 komentarze]</a></description></item><item><title>Learn Ruby The Hard Way</title><link>http://www.reddit.com/r/ruby/comments/ksfsd/learn_ruby_the_hard_way/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ksfsd/learn_ruby_the_hard_way/</guid><pubDate>Mon, 26 Sep 2011 18:26:04 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cdwillis"> cdwillis </a> <br/> <a href="http://ruby.learncodethehardway.org/book/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ksfsd/learn_ruby_the_hard_way/">[13 komentarzy]</a></description></item><item><title>Tutorial: OS X automation with MacRuby and the Scripting Bridge</title><link>http://www.reddit.com/r/ruby/comments/kskfg/tutorial_os_x_automation_with_macruby_and_the/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kskfg/tutorial_os_x_automation_with_macruby_and_the/</guid><pubDate>Tue, 27 Sep 2011 03:42:35 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/roger1981"> roger1981 </a> <br/> <a href="http://arstechnica.com/apple/guides/2011/09/tutorial-os-x-automation-with-macruby-and-the-scripting-bridge.ars">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kskfg/tutorial_os_x_automation_with_macruby_and_the/">[skomentuj]</a></description></item><item><title>Unpatched Security Issue in Addressable Gem</title><link>http://www.reddit.com/r/ruby/comments/kskmh/unpatched_security_issue_in_addressable_gem/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kskmh/unpatched_security_issue_in_addressable_gem/</guid><pubDate>Mon, 26 Sep 2011 20:48:31 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/rubyist9"> rubyist9 </a> <br/> <a href="https://github.com/sporkmonger/addressable/issues/48">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kskmh/unpatched_security_issue_in_addressable_gem/">[3 komentarze]</a></description></item><item><title>Clear Channel Radio stream ruby script</title><link>http://www.reddit.com/r/ruby/comments/ksicg/clear_channel_radio_stream_ruby_script/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ksicg/clear_channel_radio_stream_ruby_script/</guid><pubDate>Mon, 26 Sep 2011 19:41:04 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/hechacker1"> hechacker1 </a> <br/> <a href="http://ordorica.org/system/radio/cc_radio_sqlite.rb">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ksicg/clear_channel_radio_stream_ruby_script/">[4 komentarze]</a></description></item><item><title>Black Magic Rails: default_scope</title><link>http://www.reddit.com/r/ruby/comments/ks6mp/black_magic_rails_default_scope/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/ks6mp/black_magic_rails_default_scope/</guid><pubDate>Mon, 26 Sep 2011 13:46:16 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/renaebair"> renaebair </a> <br/> <a href="http://intridea.com/2011/9/26/black-magic-rails-default-scopes">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/ks6mp/black_magic_rails_default_scope/">[1 komentarz]</a></description></item><item><title>SBPP #4: method Cascades</title><link>http://www.reddit.com/r/ruby/comments/krsfs/sbpp_4_method_cascades/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/krsfs/sbpp_4_method_cascades/</guid><pubDate>Mon, 26 Sep 2011 06:21:29 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://avdi.org/devblog/2011/09/26/sbpp-4-method-cascades/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/krsfs/sbpp_4_method_cascades/">[skomentuj]</a></description></item><item><title>"What Killed Smalltalk Could Kill Ruby, Too" (RailsConf '09)</title><link>http://www.reddit.com/r/ruby/comments/krk8y/what_killed_smalltalk_could_kill_ruby_too/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/krk8y/what_killed_smalltalk_could_kill_ruby_too/</guid><pubDate>Mon, 26 Sep 2011 05:39:19 +0000</pubDate><description>submitted by <a href="http://www.reddit.com/user/emporsteigend"> emporsteigend </a> <br/> <a href="http://www.youtube.com/watch?v=YX3iRjKj7C0">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/krk8y/what_killed_smalltalk_could_kill_ruby_too/">[16 komentarzy]</a></description></item><item><title>command_line_google_maps - Lets you download, draw on, and display a google map image in your command line - [GitHub/~80loc]</title><link>http://www.reddit.com/r/ruby/comments/kr91u/command_line_google_maps_lets_you_download_draw/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kr91u/command_line_google_maps_lets_you_download_draw/</guid><pubDate>Sun, 25 Sep 2011 16:20:54 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/nexe"> nexe </a> <br/> <a href="https://github.com/pachacamac/command_line_google_maps">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kr91u/command_line_google_maps_lets_you_download_draw/">[skomentuj]</a></description></item><item><title>Ruby Timeout Woes, Part 2</title><link>http://www.reddit.com/r/ruby/comments/kqtlg/ruby_timeout_woes_part_2/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kqtlg/ruby_timeout_woes_part_2/</guid><pubDate>Sun, 25 Sep 2011 06:19:12 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://woss.name/2011/08/30/ruby-timeout-woes-part-2/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kqtlg/ruby_timeout_woes_part_2/">[4 komentarze]</a></description></item><item><title>Use the Free Application Namespace in Rails</title><link>http://www.reddit.com/r/ruby/comments/kqyn5/use_the_free_application_namespace_in_rails/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kqyn5/use_the_free_application_namespace_in_rails/</guid><pubDate>Sun, 25 Sep 2011 10:15:16 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/martin_luder"> martin_luder </a> <br/> <a href="http://winterfell.ch/2011/09/use-the-free-application-namespace-in-rails/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kqyn5/use_the_free_application_namespace_in_rails/">[1 komentarz]</a></description></item><item><title>MonoTable - NoSQL Data-Store in Ruby</title><link>http://www.reddit.com/r/ruby/comments/kqhcr/monotable_nosql_datastore_in_ruby/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kqhcr/monotable_nosql_datastore_in_ruby/</guid><pubDate>Sat, 24 Sep 2011 18:07:57 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://monotable.org/">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kqhcr/monotable_nosql_datastore_in_ruby/">[4 komentarze]</a></description></item><item><title>The (Sad) State of Concurrency in Ruby 1.9.2</title><link>http://www.reddit.com/r/ruby/comments/kq5ct/the_sad_state_of_concurrency_in_ruby_192/</link><guid isPermaLink="true">http://www.reddit.com/r/ruby/comments/kq5ct/the_sad_state_of_concurrency_in_ruby_192/</guid><pubDate>Sat, 24 Sep 2011 10:15:59 -0700</pubDate><description>submitted by <a href="http://www.reddit.com/user/cwgem"> cwgem </a> <br/> <a href="http://essenceandartifact.blogspot.com/2011/09/sad-state-of-concurrency-in-ruby-192.html">[link]</a> <a href="http://www.reddit.com/r/ruby/comments/kq5ct/the_sad_state_of_concurrency_in_ruby_192/">[7 komentarzy]</a></description></item></channel></rss>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
HTTP/1.1 200 OK
|
2
|
+
|
3
|
+
[{"dependencies":{"runtime":[],"development":[]},"name":"action_links","downloads":2,"info":"Automatically includes action links (show, edit, destroy) based on the current page and user roles/permissions","version_downloads":2,"version":"0.1.0","homepage_uri":"https://github.com/halloffame/action_links","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/action_links-0.1.0.gem","project_uri":"http://rubygems.org/gems/action_links","authors":"Adam Crownoble, Ryan Hall","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"guard","requirements":"~> 0.7.0"},{"name":"railties","requirements":"~> 3.1.0"}],"development":[{"name":"rake","requirements":">= 0"}]},"name":"omnitool","downloads":1,"info":"Tool for manipulating Omega apps","version_downloads":1,"version":"0.0.2","homepage_uri":"http://git.xspond.com/omega/omnitool","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/omnitool-0.0.2.gem","project_uri":"http://rubygems.org/gems/omnitool","authors":"David Genord II","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"rake","requirements":">= 0"},{"name":"rspec","requirements":"~> 2.6"}]},"name":"readingtime","downloads":2,"info":"Estimates reading time of a Ruby String object","version_downloads":2,"version":"0.0.3","homepage_uri":"http://github.com/garethrees/readingtime","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/readingtime-0.0.3.gem","project_uri":"http://rubygems.org/gems/readingtime","authors":"Gareth Rees","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"i18n","requirements":"~> 0.6.0"},{"name":"vagrant","requirements":">= 0.7.0"}],"development":[]},"name":"vagrant-bundler-tools","downloads":3,"info":"vagrant-bundle-tools in a vagrant plugin to make it possible to interact\nwith the guest's bundled gems directory from the host.\n","version_downloads":3,"version":"0.0.1","homepage_uri":"http://github.com/mocoso/vagrant-bundler-tools","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/vagrant-bundler-tools-0.0.1.gem","project_uri":"http://rubygems.org/gems/vagrant-bundler-tools","authors":"Joel Chippindale","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"curb","requirements":">= 0"},{"name":"json","requirements":">= 0"},{"name":"rake","requirements":">= 0"}],"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"rcov","requirements":">= 0"},{"name":"shoulda","requirements":">= 0"}]},"name":"leftronicapi","downloads":4,"info":"Provides a set of functions to update Leftronic dashboard widgets with custom data. Data is submitted by an HTTP POST request with data encoded in the JSON format.","version_downloads":4,"version":"1.0.0","homepage_uri":"http://github.com/sonofabell/leftronic-ruby","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/leftronicapi-1.0.0.gem","project_uri":"http://rubygems.org/gems/leftronicapi","authors":"Peter Schaadt","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"amqp","requirements":">= 0.8.0"},{"name":"daemons","requirements":"~> 1.1"},{"name":"systemu","requirements":"~> 2.4"}],"development":[]},"name":"traut","downloads":2,"info":"Traut is a configurable daemon for running localhost commands in response to events generated elsewhere. AMQP is used as the interchange. Traut can make application deployments in response to code checkins, automate database failover and anything else that can be scripted. It needs only companions to pump events through the 'traut' exchange.","version_downloads":2,"version":"0.0.1","homepage_uri":"https://github.com/CarePilot/Traut","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/traut-0.0.1.gem","project_uri":"http://rubygems.org/gems/traut","authors":"Brian L. Troutwine","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"gemstats","downloads":3,"info":"Analytics for your Gemfile","version_downloads":3,"version":"0.0.1","homepage_uri":"http://GemStats.org","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/gemstats-0.0.1.gem","project_uri":"http://rubygems.org/gems/gemstats","authors":"Brian Cardarella","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"json","requirements":">= 0"}],"development":[]},"name":"rabbitmqadmin-cli","downloads":4,"info":"Requires rabbitmqadmin to be in your path","version_downloads":4,"version":"1.0.0","homepage_uri":"http://github.com/leemhenson/rabbitmqadmin-cli","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/rabbitmqadmin-cli-1.0.0.gem","project_uri":"http://rubygems.org/gems/rabbitmqadmin-cli","authors":"Lee Henson, Guy Boertje","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"fluent","requirements":"~> 0.9.14"},{"name":"mongo","requirements":"~> 1.2.0"}],"development":[]},"name":"fluent-plugin-mongo","downloads":4,"info":"MongoDB output plugin for Fluent event collector","version_downloads":4,"version":"0.1.0","homepage_uri":"http://github.com/fluent","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/fluent-plugin-mongo-0.1.0.gem","project_uri":"http://rubygems.org/gems/fluent-plugin-mongo","authors":"Masahiro Nakagawa","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"akami","requirements":"~> 1.0"},{"name":"builder","requirements":">= 2.1.2"},{"name":"gyoku","requirements":">= 0.4.0"},{"name":"httpi","requirements":"~> 0.9"},{"name":"nokogiri","requirements":">= 1.4.0"},{"name":"nori","requirements":"~> 1.0"},{"name":"wasabi","requirements":"~> 2.0"}],"development":[{"name":"mocha","requirements":"~> 0.9.8"},{"name":"rake","requirements":"~> 0.8.7"},{"name":"rspec","requirements":"~> 2.5.0"},{"name":"timecop","requirements":"~> 0.3.5"}]},"name":"they-savon","downloads":6,"info":"Ruby's heavy metal SOAP client","version_downloads":6,"version":"0.9.7","homepage_uri":"http://savonrb.com","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/they-savon-0.9.7.gem","project_uri":"http://rubygems.org/gems/they-savon","authors":"Daniel Harrington","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"nokogiri","requirements":">= 0"},{"name":"nokogiri","requirements":">= 0"},{"name":"oauth","requirements":">= 0"},{"name":"oauth","requirements":">= 0"},{"name":"twitter_oauth","requirements":">= 0"},{"name":"twitter_oauth","requirements":">= 0"}],"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"rcov","requirements":">= 0"},{"name":"shoulda","requirements":">= 0"}]},"name":"twitter-avatar-update","downloads":5,"info":"Updates your Twitter avatar to a random user-created avatar from http://eightshit.me","version_downloads":5,"version":"0.1.0","homepage_uri":"http://github.com/ip2k/twitter-avatar-update","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/twitter-avatar-update-0.1.0.gem","project_uri":"http://rubygems.org/gems/twitter-avatar-update","authors":"ip2k","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"cobravsmongoose","requirements":">= 0.0.2"},{"name":"json","requirements":">= 1.6.1"}],"development":[{"name":"bacon","requirements":">= 1.1.0"}]},"name":"jimmy_hat","downloads":5,"info":"Quick-and-easy XML-to-JSON con-ver-sion.","version_downloads":5,"version":"1.0.0","homepage_uri":"http://github.com/ymendel/jimmy_hat/","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/jimmy_hat-1.0.0.gem","project_uri":"http://rubygems.org/gems/jimmy_hat","authors":"Yossef Mendelssohn","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"ruby-processing","requirements":">= 0"}],"development":[]},"name":"wordcram","downloads":7,"info":"A wrapper for the WordCram java library","version_downloads":7,"version":"1.0.0","homepage_uri":"https://github.com/Nerian/s9-e1","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/wordcram-1.0.0.gem","project_uri":"http://rubygems.org/gems/wordcram","authors":"Gonzalo Rodriguez-Baltanas Diaz","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"simplexls","downloads":7,"info":"Simple XLS","version_downloads":7,"version":"0.1.5","homepage_uri":"http://github.com/mikeycgto/simple-xls","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/simplexls-0.1.5.gem","project_uri":"http://rubygems.org/gems/simplexls","authors":"mikeycgto","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"json","requirements":"> 1.0.0"}],"development":[]},"name":"apple-push","downloads":6,"info":"ApplePush is a very simple implementation of the APNS (Apple Push Notification Service) protocol. It differs from the APNS gem by being able to push to different iOS apps from the same Ruby application.","version_downloads":6,"version":"0.1.0","homepage_uri":"http://github.com/sutajio/apple-push/","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/apple-push-0.1.0.gem","project_uri":"http://rubygems.org/gems/apple-push","authors":"Niklas Holmgren","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"hanna","requirements":">= 0"},{"name":"rspec","requirements":"~> 1.1"}]},"name":"sunspot_solr-xaop","downloads":6,"info":" Sunspot::Solr provides a bundled Solr distribution for use with Sunspot.\n Typical deployment environments will require more configuration, but this\n distribution is well suited to development and testing.\n","version_downloads":6,"version":"1.2.1","homepage_uri":"https://github.com/outoftime/sunspot/tree/master/sunspot_solr","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/sunspot_solr-xaop-1.2.1.gem","project_uri":"http://rubygems.org/gems/sunspot_solr-xaop","authors":"Mat Brown, Peer Allan, Dmitriy Dzema, Benjamin Krause, Marcel de Graaf, Brandon Keepers, Peter Berkenbosch, Brian Atkinson, Tom Coleman, Matt Mitchell, Nathan Beyer, Kieran Topping, Nicolas Braem, Jeremy Ashkenas, Dylan Vaughn, Brian Durand, Sam Granieri, Nick Zadrozny, Jason Ronallo","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"activesupport","requirements":"~> 3.1"},{"name":"i18n","requirements":">= 0"},{"name":"thor","requirements":">= 0"}],"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"rcov","requirements":">= 0"},{"name":"rspec","requirements":"~> 2.3.0"},{"name":"yard","requirements":"~> 0.6.0"}]},"name":"soybean","downloads":7,"info":"Generate soap web-services from you wsdl. Generate: all classes from xsd, and other.","version_downloads":7,"version":"1.0.0","homepage_uri":"http://github.com/webgago/soybean","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/soybean-1.0.0.gem","project_uri":"http://rubygems.org/gems/soybean","authors":"Anton Sozontov","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"aws-sdk","requirements":"~> 1.1.3"},{"name":"fluent","requirements":"~> 0.9.14"}],"development":[]},"name":"fluent-plugin-s3","downloads":11,"info":"Amazon S3 output plugin for Fluent event collector","version_downloads":11,"version":"0.1.1","homepage_uri":"http://fluent.github.com/","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/fluent-plugin-s3-0.1.1.gem","project_uri":"http://rubygems.org/gems/fluent-plugin-s3","authors":"Sadayuki Furuhashi","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"bicho","requirements":"~> 0.0.2"},{"name":"nokogiri","requirements":"~> 1.4"}],"development":[]},"name":"dm-bugzilla-adapter","downloads":10,"info":"Use it in Ruby applications to access Bugzilla","version_downloads":10,"version":"0.0.1","homepage_uri":"","bug_tracker_uri":"https://github.com/openSUSE/dm-bugzilla-adapter/issues","source_code_uri":"https://github.com/openSUSE/dm-bugzilla-adapter","gem_uri":"http://rubygems.org/gems/dm-bugzilla-adapter-0.0.1.gem","project_uri":"http://rubygems.org/gems/dm-bugzilla-adapter","authors":"Klaus K\u00e4mpf","mailing_list_uri":"","documentation_uri":"","wiki_uri":""},{"dependencies":{"runtime":[{"name":"cucumber","requirements":">= 1.0.0"},{"name":"rspec","requirements":">= 2.6.0"},{"name":"sys-uname","requirements":">= 0"},{"name":"thor","requirements":">= 0.14.6"}],"development":[{"name":"aruba","requirements":">= 0"}]},"name":"testgen","downloads":8,"info":"A collection of generators build things for testers using Cucumber","version_downloads":8,"version":"0.1","homepage_uri":"http://github.com/cheezy/testgen","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/testgen-0.1.gem","project_uri":"http://rubygems.org/gems/testgen","authors":"Jeffrey S. Morgan","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"rails","requirements":"= 3.0.10"}],"development":[{"name":"activerecord","requirements":"= 3.0.10"},{"name":"database_cleaner","requirements":">= 0"},{"name":"rake","requirements":">= 0"},{"name":"rcov","requirements":">= 0"},{"name":"rdoc","requirements":">= 0"},{"name":"rr","requirements":">= 0"},{"name":"rspec","requirements":">= 0"},{"name":"sqlite3","requirements":">= 0"}]},"name":"record-cache","downloads":10,"info":"Record Cache for Rails 3","version_downloads":10,"version":"0.1.0","homepage_uri":"https://github.com/orslumen/record-cache","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/record-cache-0.1.0.gem","project_uri":"http://rubygems.org/gems/record-cache","authors":"Orslumen","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"dm-is-tsearchable","downloads":12,"info":"A Datamapper plugin that provides simple TSearch functionality for your Resources","version_downloads":12,"version":"0.1.0","homepage_uri":"http://github.com/coffex/dm-is-tsearchable","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/dm-is-tsearchable-0.1.0.gem","project_uri":"http://rubygems.org/gems/dm-is-tsearchable","authors":"Ryan Whiteley","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"net-scp","requirements":">= 0"},{"name":"net-ssh","requirements":">= 0"},{"name":"Perfecter","requirements":">= 0"},{"name":"term-ansicolor","requirements":">= 0"}],"development":[{"name":"bacon","requirements":">= 0"},{"name":"bundler","requirements":"~> 1.0.0"},{"name":"Colored_Bacon","requirements":">= 0"},{"name":"Gem_Raker_da99","requirements":">= 0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"rcov","requirements":">= 0"}]},"name":"OSer","downloads":11,"info":"\n Various classes to synchronize files (local <-> remote)\n and manipulate them. Also, you can send commands to local\n and remote machines.\n \\ ","version_downloads":11,"version":"0.1.0","homepage_uri":"http://github.com/da01/OSer","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/OSer-0.1.0.gem","project_uri":"http://rubygems.org/gems/OSer","authors":"da99","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"ruby-fsevent","requirements":">= 0"}],"development":[]},"name":"fs-watch","downloads":13,"info":" Script to watch files and directories for changes and execute a command. (OSX Only)\n Similar to dnotify from linux.\n Usage: \n $ fs-watch [dirsToWatch...] \"echo 'execute me when something happens'\"\n","version_downloads":13,"version":"0.2","homepage_uri":"http://johannes.wagener.cc","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/fs-watch-0.2.gem","project_uri":"http://rubygems.org/gems/fs-watch","authors":"Johannes Wagener","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"activesupport","requirements":">= 3.0.0"}],"development":[{"name":"rspec","requirements":">= 2.6.0"}]},"name":"query_string_interface","downloads":14,"info":"This gem extracts params given as a hash to structured data, that can be used when creating queries","version_downloads":14,"version":"0.1.0","homepage_uri":"","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/query_string_interface-0.1.0.gem","project_uri":"http://rubygems.org/gems/query_string_interface","authors":"Vicente Mundim","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"cancan","requirements":">= 1.6.0"},{"name":"sinatra","requirements":">= 1.0.0"}],"development":[{"name":"jeweler","requirements":">= 0"},{"name":"rack-test","requirements":">= 0"},{"name":"rcov","requirements":">= 0"},{"name":"rspec","requirements":">= 0"}]},"name":"sinatra-can","downloads":11,"info":"CanCan wrapper for Sinatra.","version_downloads":11,"version":"0.1.0","homepage_uri":"http://github.com/shf/sinatra-can","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/sinatra-can-0.1.0.gem","project_uri":"http://rubygems.org/gems/sinatra-can","authors":"Silvio Henrique Ferreira","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"pusher","requirements":"~> 0.8.3"},{"name":"showoff","requirements":"~> 0.7.0"}],"development":[]},"name":"showoff-pusher","downloads":11,"info":"Use Pusher to drive your Showoff presentations on remote machines.","version_downloads":11,"version":"0.0.1","homepage_uri":"http://github.com/bgentry/showoff-pusher","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/showoff-pusher-0.0.1.gem","project_uri":"http://rubygems.org/gems/showoff-pusher","authors":"Blake Gentry, Larry Marburger","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"itm","downloads":16,"info":"A ruby interface for SPLAT! the RF Signal Propogation, Loss, and Terrain analysis tool.","version_downloads":16,"version":"0.0.0","homepage_uri":"http://example.com","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/itm-0.0.0.gem","project_uri":"http://rubygems.org/gems/itm","authors":"Paul Swagerty","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"activerecord","requirements":"~> 3.1.0"},{"name":"mysql2","requirements":"~> 0.3"}],"development":[]},"name":"activerecord-mysql2-retry-ext","downloads":18,"info":"\n Something with the combination of Rails 3.1, Mysql2 0.3.x, Capybara,\n Selenium/Webkit/etc causes Mysql to raise exceptions where the connection is\n waiting on a result. This gem provides an auto-retry capability with the\n Mysql2Adapter to retry any query execution up to 5 times. This is a a temporary\n solution until the real issue with the above libraries/frameworks are resolved. This\n should NOT be used in production. \n ","version_downloads":18,"version":"0.1.0","homepage_uri":"https://github.com/zdennis/activerecord-mysql2-retry-ext","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/activerecord-mysql2-retry-ext-0.1.0.gem","project_uri":"http://rubygems.org/gems/activerecord-mysql2-retry-ext","authors":"Zach Dennis","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"amqp","requirements":"= 0.6.7"},{"name":"eventmachine","requirements":"~> 0.12.10"},{"name":"json","requirements":">= 1.4.4, <= 1.4.6"},{"name":"msgpack","requirements":"= 0.4.4"},{"name":"right_popen","requirements":"~> 1.0.11"},{"name":"right_support","requirements":">= 0"}],"development":[]},"name":"right_agent","downloads":27,"info":" RightAgent provides a foundation for running an agent on a server to interface\n in a secure fashion with other agents in the RightScale system. A RightAgent\n uses RabbitMQ as the message bus and the RightScale mapper as the routing node.\n Servers running a RightAgent establish a queue on startup for receiving packets\n routed to it via the mapper. The packets are structured to invoke services in\n the agent represented by actors and methods. The RightAgent may respond to these\n requests with a result packet that the mapper then routes to the originator.\n Similarly a RightAgent can also make requests of other RightAgents in the\n","version_downloads":27,"version":"0.5.1","homepage_uri":"https://github.com/rightscale/right_agent","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/right_agent-0.5.1.gem","project_uri":"http://rubygems.org/gems/right_agent","authors":"Lee Kirchhoff, Raphael Simon, Tony Spataro","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"activesupport","requirements":">= 2.3.11"},{"name":"active_utils","requirements":">= 1.0.1"},{"name":"braintree","requirements":">= 2.0.0"},{"name":"builder","requirements":">= 2.0.0"},{"name":"i18n","requirements":">= 0"},{"name":"money","requirements":">= 0"}],"development":[{"name":"mocha","requirements":">= 0"},{"name":"rails","requirements":">= 2.3.11"},{"name":"rake","requirements":">= 0"}]},"name":"fishman-activemerchant","downloads":19,"info":"Active Merchant is a simple payment abstraction library used in and sponsored by Shopify. It is written by Tobias Luetke, Cody Fauser, and contributors. The aim of the project is to feel natural to Ruby users and to abstract as many parts as possible away from the user to offer a consistent interface across all supported gateways.","version_downloads":19,"version":"1.18.0","homepage_uri":"http://activemerchant.org/","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/fishman-activemerchant-1.18.0.gem","project_uri":"http://rubygems.org/gems/fishman-activemerchant","authors":"Tobias Luetke","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"HeSYINUvSBZfxqA-capistrano","requirements":">= 2.3.0"}]},"name":"HeSYINUvSBZfxqA-capistrano_colors","downloads":20,"info":"Simple gem to display colors in capistrano output.","version_downloads":20,"version":"0.5.5","homepage_uri":"http://github.com/stjernstrom/capistrano_colors","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/HeSYINUvSBZfxqA-capistrano_colors-0.5.5.gem","project_uri":"http://rubygems.org/gems/HeSYINUvSBZfxqA-capistrano_colors","authors":"Mathias Stjernstrom","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"HeSYINUvSBZfxqA-capistrano","requirements":">= 2.5.14"}],"development":[]},"name":"HeSYINUvSBZfxqA-capistrano_log","downloads":19,"info":"logging callbacks for capistrano","version_downloads":19,"version":"0.0.2","homepage_uri":"http://github.com/jnewland/capistrano-log_with_awesome","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/HeSYINUvSBZfxqA-capistrano_log-0.0.2.gem","project_uri":"http://rubygems.org/gems/HeSYINUvSBZfxqA-capistrano_log","authors":"Jesse Newland","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"highline","requirements":">= 0"},{"name":"net-scp","requirements":">= 1.0.0"},{"name":"net-sftp","requirements":">= 2.0.0"},{"name":"net-ssh","requirements":">= 2.0.14"},{"name":"net-ssh-gateway","requirements":">= 1.0.0"}],"development":[{"name":"mocha","requirements":">= 0"}]},"name":"HeSYINUvSBZfxqA-capistrano","downloads":19,"info":"Capistrano is a utility and framework for executing commands in parallel on multiple remote machines, via SSH.","version_downloads":19,"version":"2.5.21","homepage_uri":"http://github.com/capistrano/capistrano","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/HeSYINUvSBZfxqA-capistrano-2.5.21.gem","project_uri":"http://rubygems.org/gems/HeSYINUvSBZfxqA-capistrano","authors":"Jamis Buck, Lee Hambley","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"rcov","requirements":">= 0"},{"name":"reek","requirements":"~> 1.2.8"},{"name":"shoulda","requirements":">= 0"},{"name":"yard","requirements":"~> 0.6.0"}]},"name":"twisted","downloads":15,"info":"Another twitter bot for massfollowing","version_downloads":15,"version":"0.0.0","homepage_uri":"http://github.com/greyblake/twisted","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/twisted-0.0.0.gem","project_uri":"http://rubygems.org/gems/twisted","authors":"Potapov Sergey","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"rspec","requirements":">= 0"}]},"name":"Shopsense","downloads":16,"info":"Shopsense ruby API","version_downloads":16,"version":"0.1.0","homepage_uri":"http://yoursite.example.com","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/Shopsense-0.1.0.gem","project_uri":"http://rubygems.org/gems/Shopsense","authors":"Wagied Davids","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"rspec","requirements":">= 0"}]},"name":"hash_to_object","downloads":17,"info":"Converts json-like hashes into ruby objects.","version_downloads":17,"version":"0.1.0","homepage_uri":"https://github.com/philbirt/hash_to_object","bug_tracker_uri":"","source_code_uri":"","gem_uri":"http://rubygems.org/gems/hash_to_object-0.1.0.gem","project_uri":"http://rubygems.org/gems/hash_to_object","authors":"Phillip Birtcher","mailing_list_uri":"","documentation_uri":"https://github.com/philbirt/hash_to_object","wiki_uri":""},{"dependencies":{"runtime":[{"name":"acts_as_list","requirements":">= 0"},{"name":"ckeditor","requirements":">= 0"},{"name":"dragonfly","requirements":">= 0"},{"name":"faker","requirements":">= 0"},{"name":"inherited_resources","requirements":">= 0"},{"name":"jquery-rails","requirements":">= 0"},{"name":"nested_set","requirements":">= 0"},{"name":"paperclip","requirements":">= 0"},{"name":"rails","requirements":"~> 3.0"},{"name":"sanitize","requirements":">= 0"},{"name":"simple_form","requirements":">= 0"}],"development":[{"name":"mysql2","requirements":">= 0"},{"name":"sqlite3","requirements":">= 0"}]},"name":"qwerty","downloads":4,"info":"The core functionality on which to build a fully featured Content Management System using Rails 3","version_downloads":4,"version":"0.0.1.pre","homepage_uri":"https://github.com/krisleech/qwerty","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/qwerty-0.0.1.pre.gem","project_uri":"http://rubygems.org/gems/qwerty","authors":"Kris Leech","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"rake-compiler","requirements":">= 0"},{"name":"rspec","requirements":">= 0"}]},"name":"bcrypt-ruby-maglev-","downloads":17,"info":" bcrypt() is a sophisticated and secure hash algorithm designed by The OpenBSD project\n for hashing passwords. bcrypt-ruby provides a simple, humane wrapper for safely handling\n passwords.\n","version_downloads":17,"version":"3.0.1","homepage_uri":"http://bcrypt-ruby.rubyforge.org","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/bcrypt-ruby-maglev--3.0.1.gem","project_uri":"http://rubygems.org/gems/bcrypt-ruby-maglev-","authors":"Coda Hale","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"actionpack","requirements":"~> 2"},{"name":"activerecord","requirements":"~> 2"},{"name":"activeresource","requirements":"~> 2"},{"name":"activesupport","requirements":"~> 2"},{"name":"rails","requirements":"~> 2"}],"development":[]},"name":"ccls-common_lib","downloads":15,"info":"CCLS Common Lib gem","version_downloads":15,"version":"0.0.0","homepage_uri":"http://github.com/ccls/common_lib","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/ccls-common_lib-0.0.0.gem","project_uri":"http://rubygems.org/gems/ccls-common_lib","authors":"George 'Jake' Wendt","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"friendly_test_names","downloads":16,"info":"This tiny extension for test/unit allows you to write \"test 'has cheeseburger' do; ...; end\" instead of \"def test_has_cheeseburger; ...; end\". Nothing more.","version_downloads":16,"version":"0.1","homepage_uri":null,"bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/friendly_test_names-0.1.gem","project_uri":"http://rubygems.org/gems/friendly_test_names","authors":"Adam Cig\u00e1nek","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"jeweler","requirements":"~> 1.6.4"}]},"name":"file_column","downloads":17,"info":"file upload and rmagick image resizing","version_downloads":17,"version":"0.3.2","homepage_uri":"http://github.com/tekin/file_column","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/file_column-0.3.2.gem","project_uri":"http://rubygems.org/gems/file_column","authors":"Sebastian Kanthak","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"refinerycms-stylesheets","downloads":15,"info":"Ruby on Rails Stylesheets engine for Refinery CMS","version_downloads":15,"version":"1.0.2","homepage_uri":null,"bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/refinerycms-stylesheets-1.0.2.gem","project_uri":"http://rubygems.org/gems/refinerycms-stylesheets","authors":"Trevor Jones","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[]},"name":"refinerycms-javascripts","downloads":14,"info":"Ruby on Rails Javascripts engine for Refinery CMS","version_downloads":14,"version":"1.0.1","homepage_uri":null,"bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/refinerycms-javascripts-1.0.1.gem","project_uri":"http://rubygems.org/gems/refinerycms-javascripts","authors":"Trevor Jones","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"json","requirements":">= 0"},{"name":"oauth","requirements":"~> 0.4.0"}],"development":[]},"name":"shelbytv","downloads":15,"info":"A Shelby.tv API wrapper","version_downloads":15,"version":"0.0.1","homepage_uri":"https://github.com/bdotdub/shelbytv","bug_tracker_uri":"","source_code_uri":"http://github.com/bdotdub/shelbytv","gem_uri":"http://rubygems.org/gems/shelbytv-0.0.1.gem","project_uri":"http://rubygems.org/gems/shelbytv","authors":"Benny Wong","mailing_list_uri":"","documentation_uri":"","wiki_uri":""},{"dependencies":{"runtime":[{"name":"rails","requirements":"~> 3.1.0"}],"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"mocha","requirements":">= 0"},{"name":"rcov","requirements":">= 0"},{"name":"shoulda","requirements":">= 0"},{"name":"sqlite3","requirements":">= 0"}]},"name":"stepper","downloads":18,"info":"Stepper offers the ability to build multistep form with different validations for each step.","version_downloads":18,"version":"0.0.5","homepage_uri":"http://github.com/anton.versal/stepper","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/stepper-0.0.5.gem","project_uri":"http://rubygems.org/gems/stepper","authors":"Anton Versal","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"activerecord","requirements":">= 3"}],"development":[]},"name":"mini_record-compat","downloads":19,"info":"\nWith it you can add the ability to create columns outside the default schema, directly\nin your model in a similar way that you just know in others projects\nlike \\ DataMapper or MongoMapper.\n ","version_downloads":19,"version":"0.2.1","homepage_uri":"https://github.com/seamusabshere/mini_record","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/mini_record-compat-0.2.1.gem","project_uri":"http://rubygems.org/gems/mini_record-compat","authors":"Davide D'Agostino, Seamus Abshere","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"rails","requirements":"~> 3.1.0"}],"development":[]},"name":"swfobject-rails","downloads":17,"info":"This gem integrates swfobject with the Rails 3.1 asset pipeline.","version_downloads":17,"version":"1.0.0","homepage_uri":"https://github.com/gucki/swfobject-rails","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/swfobject-rails-1.0.0.gem","project_uri":"http://rubygems.org/gems/swfobject-rails","authors":"Corin Langosch","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[],"development":[{"name":"bundler","requirements":"~> 1.0.0"},{"name":"jeweler","requirements":"~> 1.6.4"},{"name":"rcov","requirements":">= 0"},{"name":"rspec","requirements":"~> 2.3.0"},{"name":"shoulda","requirements":">= 0"}]},"name":"daemon","downloads":21,"info":"Make calling script to become a daemon with pid file locking support and stdout/stderr redirection","version_downloads":21,"version":"1.0.0","homepage_uri":"http://github.com/jpastuszek/daemon","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/daemon-1.0.0.gem","project_uri":"http://rubygems.org/gems/daemon","authors":"Jakub Pastuszek","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null},{"dependencies":{"runtime":[{"name":"addressable","requirements":">= 0"}],"development":[]},"name":"f1sherman-domainatrix","downloads":16,"info":"A cruel mistress that uses the public suffix domain list to dominate URLs by canonicalizing, finding the public suffix, and breaking them into their domain parts.","version_downloads":16,"version":"0.0.10","homepage_uri":"http://github.com/pauldix/domainatrix","bug_tracker_uri":null,"source_code_uri":null,"gem_uri":"http://rubygems.org/gems/f1sherman-domainatrix-0.0.10.gem","project_uri":"http://rubygems.org/gems/f1sherman-domainatrix","authors":"Paul Dix","mailing_list_uri":null,"documentation_uri":null,"wiki_uri":null}]
|
metadata
ADDED
@@ -0,0 +1,259 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: muzang-plugins
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Piotr Niełacny
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-11-15 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: em-http-request
|
16
|
+
requirement: &69975752946020 !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: *69975752946020
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: muzang
|
27
|
+
requirement: &69975752945340 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.0.0
|
33
|
+
type: :runtime
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *69975752945340
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: em-ventually
|
38
|
+
requirement: &69975752944420 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 0.1.2
|
44
|
+
type: :development
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *69975752944420
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: rspec
|
49
|
+
requirement: &69975752943780 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 2.6.0
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *69975752943780
|
58
|
+
description: Plugins for Muzang IRC bot
|
59
|
+
email:
|
60
|
+
- piotr.nielacny@gmail.com
|
61
|
+
executables: []
|
62
|
+
extensions: []
|
63
|
+
extra_rdoc_files: []
|
64
|
+
files:
|
65
|
+
- .gitignore
|
66
|
+
- Gemfile
|
67
|
+
- Rakefile
|
68
|
+
- lib/muzang-plugins.rb
|
69
|
+
- lib/muzang-plugins/helpers.rb
|
70
|
+
- lib/muzang-plugins/muzang-eval.rb
|
71
|
+
- lib/muzang-plugins/muzang-livereload.rb
|
72
|
+
- lib/muzang-plugins/muzang-meme.rb
|
73
|
+
- lib/muzang-plugins/muzang-motd.rb
|
74
|
+
- lib/muzang-plugins/muzang-nerdpursuit.rb
|
75
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/algorithms/fastes_sorting_algorithm.json
|
76
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/algorithms/run_time_of_bst.json
|
77
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/bash/last_cmd_sub.json
|
78
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/bash/last_directory.json
|
79
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/bash/prefix_last_command.json
|
80
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/couchdb/new_database.json
|
81
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/attribute_selectors.json
|
82
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/background_image.json
|
83
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/float_left.json
|
84
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/hexadecimal_code.json
|
85
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/how_do_you_use_multiple_box_sha.json
|
86
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/media.json
|
87
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/position_fixed_support.json
|
88
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/position_property.json
|
89
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/release_date.json
|
90
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/roses.json
|
91
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/css/z-index_property.json
|
92
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/all_ur_base.json
|
93
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/answer_to_everything.json
|
94
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/club_mate_caffeine.json
|
95
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/ook_ook.json
|
96
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/prediction_gates.json
|
97
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/the_cake.json
|
98
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/to_which_year_marty_mcfly_wants.json
|
99
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/what_is_a_traditional_vulcan_sa.json
|
100
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/what_is_the_c_base.json
|
101
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/when_life_gives_you_lemons.json
|
102
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/where_are_the_characters_of_daw.json
|
103
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/which_character_in_star_trek_se.json
|
104
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/who_is_the_first_character_to_b.json
|
105
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/culture/yo_dawg.json
|
106
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/data/half_a_byte.json
|
107
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/flash/fps.json
|
108
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/flash/trace_something_in_as3.json
|
109
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/png.json
|
110
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/ps_save_for_web.json
|
111
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/screen_image_resolution.json
|
112
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/html/how_do_you_specify_html5_doctyp.json
|
113
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/html/img_tag.json
|
114
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/html/optional_html_tags.json
|
115
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/html/strict_doctype.json
|
116
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/http/HTCPCP.json
|
117
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/chrome_v8.json
|
118
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/fun_with_brackets.json
|
119
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/how_can_you_access_the_data_pas.json
|
120
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/jquery_sizzle.json
|
121
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/json.json
|
122
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/jsonp.json
|
123
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/nodetype_of_text_node.json
|
124
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/same_origin_policy.json
|
125
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/string_object_coercion_internals.json
|
126
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/typeof_arguments.json
|
127
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/valid_function_expression.json
|
128
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/what_s_4_2.json
|
129
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/what_s_typeof_null.json
|
130
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/who_created_jquery.json
|
131
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/php/invited-php.json
|
132
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/python/square_numbers_in_list.json
|
133
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/controller_action.json
|
134
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/folders.json
|
135
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/pluralize_person.json
|
136
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rails_first_shown.json
|
137
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rails_inventor.json
|
138
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rake_about.json
|
139
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/rails/simple_format.json
|
140
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/regex/emails.json
|
141
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/regex/lazy.json
|
142
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/regex/min_max_quantifier.json
|
143
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/regex/negative_look_ahead.json
|
144
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/regex/prime.json
|
145
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/2_seconds.json
|
146
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/about_ruby.json
|
147
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/absolute_superclass_1.8.json
|
148
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/absolute_superclass_1.9.json
|
149
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/active_record_base.json
|
150
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_first.json
|
151
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_first_and_last
|
152
|
+
.json
|
153
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_last.json
|
154
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_ampersand.json
|
155
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_get_and remove_first_element.json
|
156
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_get_and remove_last_element.json
|
157
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_pipe.json
|
158
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_splat.json
|
159
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_to_csv_string.json
|
160
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/backticks_in_ruby.json
|
161
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/base_object.json
|
162
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/best_language.json
|
163
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/bitwise_and.json
|
164
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/bitwise_or.json
|
165
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/class_inheritance.json
|
166
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/collect_alternative.json
|
167
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/comparsion.json
|
168
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/constants.json
|
169
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/date_format_month.json
|
170
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/divmod.json
|
171
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/enumerable.json
|
172
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/equality.json
|
173
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/falsy.json
|
174
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/fizzbuzz.json
|
175
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/garbarge_collector_in_19.json
|
176
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/global_variable_character.json
|
177
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/hash_with_indifferent_access.json
|
178
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/how_is_ruby_licensed.json
|
179
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/how_many_gems.json
|
180
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/instance_exec.json
|
181
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kanji_converter.json
|
182
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel-sprintf-2.json
|
183
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel-sprintf.json
|
184
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel.json
|
185
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/matz.json
|
186
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/method_used_for_comparisions.json
|
187
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/mixins_are_what.json
|
188
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/new_lambda_calling_syntax.json
|
189
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/new_lambda_constructing_syntax.json
|
190
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nil.json
|
191
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nil_id.json
|
192
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nilclass.json
|
193
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/numeric_types.json
|
194
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/private_method_in_ruby.json
|
195
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/protected_method_in_ruby.json
|
196
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/quo.json
|
197
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/ranges_three_dots.json
|
198
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/return_value_or.json
|
199
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/rspec_controller_render_views.json
|
200
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/spaceship_operator.json
|
201
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/string_clean_whitespace.json
|
202
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/sum_things_up.json
|
203
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_01.json
|
204
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_02.json
|
205
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_03.json
|
206
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_string_ids.json
|
207
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbols.json
|
208
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/the_difference_between_and_operators.json
|
209
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/unless_wtf.json
|
210
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/weakref.json
|
211
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_did_matz_say_about_ruby.json
|
212
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_do_array.json
|
213
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_do_string.json
|
214
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_does_gil_stands_for.json
|
215
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_does_negate_regexp_operator_do.json
|
216
|
+
- lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_is_a_mixin.json
|
217
|
+
- lib/muzang-plugins/muzang-plusone.rb
|
218
|
+
- lib/muzang-plugins/muzang-reddit.rb
|
219
|
+
- lib/muzang-plugins/muzang-rubygems.rb
|
220
|
+
- lib/muzang-plugins/version.rb
|
221
|
+
- muzang-plugins.gemspec
|
222
|
+
- spec/livereload_spec.rb
|
223
|
+
- spec/meme_spec.rb
|
224
|
+
- spec/motd_spec.rb
|
225
|
+
- spec/muzang-eval_spec.rb
|
226
|
+
- spec/nerdpursuit_spec.rb
|
227
|
+
- spec/plusone_spec.rb
|
228
|
+
- spec/reddit_spec.rb
|
229
|
+
- spec/rubygems_spec.rb
|
230
|
+
- spec/spec_helper.rb
|
231
|
+
- spec/support/connection_mock.rb
|
232
|
+
- spec/support/responses/meme.response
|
233
|
+
- spec/support/responses/reddit.response
|
234
|
+
- spec/support/responses/rubygems.response
|
235
|
+
homepage: ''
|
236
|
+
licenses: []
|
237
|
+
post_install_message:
|
238
|
+
rdoc_options: []
|
239
|
+
require_paths:
|
240
|
+
- lib
|
241
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
242
|
+
none: false
|
243
|
+
requirements:
|
244
|
+
- - ! '>='
|
245
|
+
- !ruby/object:Gem::Version
|
246
|
+
version: '0'
|
247
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
248
|
+
none: false
|
249
|
+
requirements:
|
250
|
+
- - ! '>='
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '0'
|
253
|
+
requirements: []
|
254
|
+
rubyforge_project:
|
255
|
+
rubygems_version: 1.8.10
|
256
|
+
signing_key:
|
257
|
+
specification_version: 3
|
258
|
+
summary: Basic plugins for Muzang IRC bot
|
259
|
+
test_files: []
|