muzang-plugins 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. data/.gitignore +17 -0
  2. data/Gemfile +4 -0
  3. data/Rakefile +11 -0
  4. data/lib/muzang-plugins.rb +11 -0
  5. data/lib/muzang-plugins/helpers.rb +39 -0
  6. data/lib/muzang-plugins/muzang-eval.rb +51 -0
  7. data/lib/muzang-plugins/muzang-livereload.rb +19 -0
  8. data/lib/muzang-plugins/muzang-meme.rb +51 -0
  9. data/lib/muzang-plugins/muzang-motd.rb +21 -0
  10. data/lib/muzang-plugins/muzang-nerdpursuit.rb +95 -0
  11. data/lib/muzang-plugins/muzang-nerdpursuit/questions/algorithms/fastes_sorting_algorithm.json +14 -0
  12. data/lib/muzang-plugins/muzang-nerdpursuit/questions/algorithms/run_time_of_bst.json +14 -0
  13. data/lib/muzang-plugins/muzang-nerdpursuit/questions/bash/last_cmd_sub.json +13 -0
  14. data/lib/muzang-plugins/muzang-nerdpursuit/questions/bash/last_directory.json +14 -0
  15. data/lib/muzang-plugins/muzang-nerdpursuit/questions/bash/prefix_last_command.json +13 -0
  16. data/lib/muzang-plugins/muzang-nerdpursuit/questions/couchdb/new_database.json +10 -0
  17. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/attribute_selectors.json +14 -0
  18. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/background_image.json +15 -0
  19. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/float_left.json +14 -0
  20. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/hexadecimal_code.json +14 -0
  21. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/how_do_you_use_multiple_box_sha.json +15 -0
  22. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/media.json +14 -0
  23. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/position_fixed_support.json +14 -0
  24. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/position_property.json +15 -0
  25. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/release_date.json +14 -0
  26. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/roses.json +14 -0
  27. data/lib/muzang-plugins/muzang-nerdpursuit/questions/css/z-index_property.json +14 -0
  28. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/all_ur_base.json +14 -0
  29. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/answer_to_everything.json +14 -0
  30. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/club_mate_caffeine.json +14 -0
  31. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/ook_ook.json +15 -0
  32. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/prediction_gates.json +14 -0
  33. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/the_cake.json +15 -0
  34. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/to_which_year_marty_mcfly_wants.json +15 -0
  35. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/what_is_a_traditional_vulcan_sa.json +15 -0
  36. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/what_is_the_c_base.json +14 -0
  37. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/when_life_gives_you_lemons.json +14 -0
  38. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/where_are_the_characters_of_daw.json +15 -0
  39. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/which_character_in_star_trek_se.json +15 -0
  40. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/who_is_the_first_character_to_b.json +15 -0
  41. data/lib/muzang-plugins/muzang-nerdpursuit/questions/culture/yo_dawg.json +14 -0
  42. data/lib/muzang-plugins/muzang-nerdpursuit/questions/data/half_a_byte.json +14 -0
  43. data/lib/muzang-plugins/muzang-nerdpursuit/questions/flash/fps.json +14 -0
  44. data/lib/muzang-plugins/muzang-nerdpursuit/questions/flash/trace_something_in_as3.json +14 -0
  45. data/lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/png.json +14 -0
  46. data/lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/ps_save_for_web.json +14 -0
  47. data/lib/muzang-plugins/muzang-nerdpursuit/questions/grafix/screen_image_resolution.json +14 -0
  48. data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/how_do_you_specify_html5_doctyp.json +15 -0
  49. data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/img_tag.json +14 -0
  50. data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/optional_html_tags.json +14 -0
  51. data/lib/muzang-plugins/muzang-nerdpursuit/questions/html/strict_doctype.json +14 -0
  52. data/lib/muzang-plugins/muzang-nerdpursuit/questions/http/HTCPCP.json +14 -0
  53. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/chrome_v8.json +10 -0
  54. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/fun_with_brackets.json +14 -0
  55. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/how_can_you_access_the_data_pas.json +15 -0
  56. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/jquery_sizzle.json +10 -0
  57. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/json.json +14 -0
  58. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/jsonp.json +14 -0
  59. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/nodetype_of_text_node.json +14 -0
  60. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/same_origin_policy.json +14 -0
  61. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/string_object_coercion_internals.json +14 -0
  62. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/typeof_arguments.json +14 -0
  63. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/valid_function_expression.json +14 -0
  64. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/what_s_4_2.json +15 -0
  65. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/what_s_typeof_null.json +12 -0
  66. data/lib/muzang-plugins/muzang-nerdpursuit/questions/javascript/who_created_jquery.json +14 -0
  67. data/lib/muzang-plugins/muzang-nerdpursuit/questions/php/invited-php.json +14 -0
  68. data/lib/muzang-plugins/muzang-nerdpursuit/questions/python/square_numbers_in_list.json +14 -0
  69. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/controller_action.json +14 -0
  70. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/folders.json +14 -0
  71. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/pluralize_person.json +14 -0
  72. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rails_first_shown.json +14 -0
  73. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rails_inventor.json +14 -0
  74. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/rake_about.json +11 -0
  75. data/lib/muzang-plugins/muzang-nerdpursuit/questions/rails/simple_format.json +14 -0
  76. data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/emails.json +14 -0
  77. data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/lazy.json +13 -0
  78. data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/min_max_quantifier.json +14 -0
  79. data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/negative_look_ahead.json +14 -0
  80. data/lib/muzang-plugins/muzang-nerdpursuit/questions/regex/prime.json +10 -0
  81. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/2_seconds.json +15 -0
  82. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/about_ruby.json +14 -0
  83. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/absolute_superclass_1.8.json +14 -0
  84. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/absolute_superclass_1.9.json +14 -0
  85. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/active_record_base.json +14 -0
  86. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_first.json +15 -0
  87. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_first_and_last .json +15 -0
  88. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_all_but_the_last.json +15 -0
  89. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_ampersand.json +14 -0
  90. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_get_and remove_first_element.json +15 -0
  91. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_get_and remove_last_element.json +15 -0
  92. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_pipe.json +14 -0
  93. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_splat.json +14 -0
  94. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/array_to_csv_string.json +15 -0
  95. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/backticks_in_ruby.json +15 -0
  96. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/base_object.json +14 -0
  97. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/best_language.json +14 -0
  98. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/bitwise_and.json +14 -0
  99. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/bitwise_or.json +14 -0
  100. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/class_inheritance.json +14 -0
  101. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/collect_alternative.json +14 -0
  102. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/comparsion.json +14 -0
  103. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/constants.json +14 -0
  104. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/date_format_month.json +10 -0
  105. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/divmod.json +14 -0
  106. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/enumerable.json +14 -0
  107. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/equality.json +13 -0
  108. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/falsy.json +14 -0
  109. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/fizzbuzz.json +15 -0
  110. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/garbarge_collector_in_19.json +15 -0
  111. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/global_variable_character.json +14 -0
  112. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/hash_with_indifferent_access.json +14 -0
  113. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/how_is_ruby_licensed.json +15 -0
  114. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/how_many_gems.json +14 -0
  115. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/instance_exec.json +10 -0
  116. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kanji_converter.json +10 -0
  117. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel-sprintf-2.json +14 -0
  118. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel-sprintf.json +14 -0
  119. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/kernel.json +14 -0
  120. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/matz.json +14 -0
  121. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/method_used_for_comparisions.json +15 -0
  122. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/mixins_are_what.json +15 -0
  123. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/new_lambda_calling_syntax.json +13 -0
  124. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/new_lambda_constructing_syntax.json +10 -0
  125. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nil.json +14 -0
  126. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nil_id.json +15 -0
  127. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/nilclass.json +10 -0
  128. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/numeric_types.json +14 -0
  129. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/private_method_in_ruby.json +14 -0
  130. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/protected_method_in_ruby.json +15 -0
  131. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/quo.json +10 -0
  132. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/ranges_three_dots.json +14 -0
  133. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/return_value_or.json +14 -0
  134. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/rspec_controller_render_views.json +10 -0
  135. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/spaceship_operator.json +15 -0
  136. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/string_clean_whitespace.json +15 -0
  137. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/sum_things_up.json +15 -0
  138. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_01.json +14 -0
  139. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_02.json +14 -0
  140. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_identity_03.json +14 -0
  141. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbol_string_ids.json +14 -0
  142. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/symbols.json +14 -0
  143. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/the_difference_between_and_operators.json +15 -0
  144. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/unless_wtf.json +14 -0
  145. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/weakref.json +10 -0
  146. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_did_matz_say_about_ruby.json +15 -0
  147. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_do_array.json +14 -0
  148. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_do_string.json +14 -0
  149. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_does_gil_stands_for.json +15 -0
  150. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_does_negate_regexp_operator_do.json +15 -0
  151. data/lib/muzang-plugins/muzang-nerdpursuit/questions/ruby/what_is_a_mixin.json +14 -0
  152. data/lib/muzang-plugins/muzang-plusone.rb +49 -0
  153. data/lib/muzang-plugins/muzang-reddit.rb +42 -0
  154. data/lib/muzang-plugins/muzang-rubygems.rb +43 -0
  155. data/lib/muzang-plugins/version.rb +5 -0
  156. data/muzang-plugins.gemspec +23 -0
  157. data/spec/livereload_spec.rb +23 -0
  158. data/spec/meme_spec.rb +43 -0
  159. data/spec/motd_spec.rb +18 -0
  160. data/spec/muzang-eval_spec.rb +43 -0
  161. data/spec/nerdpursuit_spec.rb +76 -0
  162. data/spec/plusone_spec.rb +67 -0
  163. data/spec/reddit_spec.rb +45 -0
  164. data/spec/rubygems_spec.rb +37 -0
  165. data/spec/spec_helper.rb +11 -0
  166. data/spec/support/connection_mock.rb +15 -0
  167. data/spec/support/responses/meme.response +4 -0
  168. data/spec/support/responses/reddit.response +3 -0
  169. data/spec/support/responses/rubygems.response +3 -0
  170. metadata +259 -0
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text": "What is the return value of nil || 'a' ?",
6
+ "a1": "true",
7
+ "a2": "false",
8
+ "a3": "nil",
9
+ "a4": "'a'",
10
+ "right_answer": "a4",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Paul"
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 3,
5
+ "text": "Which command makes a rails controller spec also render the views?",
6
+ "a1": "render_views",
7
+ "created_at": "2011-05-14",
8
+ "created_by": "Schorsch"
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question": {
3
+ "category": "ruby",
4
+ "right_answer": "a2",
5
+ "nerd_level": 4,
6
+ "text": "What is the spaceship operator?",
7
+ "a1": "=||=",
8
+ "a2": "<=>",
9
+ "a3": "[] (two square brackets)",
10
+ "a4": "(=)",
11
+ "created_by": "nbartlomiej",
12
+ "id": "",
13
+ "created_at": "2011-06-14"
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question": {
3
+ "nerd_level": 2,
4
+ "text": "How to remove leading and trailing whitespace from a string.",
5
+ "a1": "str.clean",
6
+ "a2": "str.spit",
7
+ "a3": "str.split",
8
+ "a4": "str.strip",
9
+ "category": "ruby",
10
+ "right_answer": "a4",
11
+ "created_by": "Georg Leciejewski",
12
+ "created_at": "2011-06-27",
13
+ "id": ""
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question" : {
3
+ "id": "",
4
+ "category": "ruby",
5
+ "nerd_level": 1,
6
+ "text":"Which one will sum up an array of numbers?",
7
+ "a1": "[1,2,3].sum",
8
+ "a2": "[1,2,3].flatten!.inject(&:+)",
9
+ "a3": "[1,2,3].reduce{|remainder,n| remainder + n}",
10
+ "a4": "[1,2,3].sum(&:add)",
11
+ "right_answer":"a3",
12
+ "created_at": "2011-06-09",
13
+ "created_by": "kangguru"
14
+ }
15
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text": "What are the outputs for a == b and a.equal?(b) with a = 'xy' and b = a?",
6
+ "a1": "true and false",
7
+ "a2": "true and true",
8
+ "a3": "false and false",
9
+ "a4": "false and true",
10
+ "right_answer": "a2",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Paul"
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text": "What are the outputs for a == b and a.equal?(b) with a = 'xy' and b = 'xy'?",
6
+ "a1": "true and false",
7
+ "a2": "true and true",
8
+ "a3": "false and false",
9
+ "a4": "false and true",
10
+ "right_answer": "a1",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Paul"
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text": "What are the outputs for a == b and a.equal?(b) with a = :xy and b = :xy?",
6
+ "a1": "true and false",
7
+ "a2": "true and true",
8
+ "a3": "false and false",
9
+ "a4": "false and true",
10
+ "right_answer": "a2",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Paul"
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text": "Where is a.id == b.id?",
6
+ "a1": "a = 'xy'; b = 'xy'",
7
+ "a2": "a = :xy; b = :xy",
8
+ "a3": "a = 'xy'; b = :xy",
9
+ "a4": "a = :xy; b= 'xy'",
10
+ "right_answer": "a2",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Paul"
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text": "What are Ruby symbols?",
6
+ "a1": "Hash Keys.",
7
+ "a2": "Immutable strings.",
8
+ "a3": "Ruby pointers.",
9
+ "a4": "Ruby's Array index.",
10
+ "right_answer": "a2",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Paul"
13
+ }
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question": {
3
+ "id": "",
4
+ "nerd_level": 3,
5
+ "text": "What is the difference between && and \"and\" operators?",
6
+ "a1": "They are exactly the same",
7
+ "a2": "\"and\" operator is added by Rails",
8
+ "a3": "&& has a higher precedence",
9
+ "a4": "&& is deprecated in ruby 1.9",
10
+ "right_answer": "a3",
11
+ "created_by": "Michał Łomnicki",
12
+ "created_at": "2011-09-08",
13
+ "category": "ruby"
14
+ }
15
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 1,
5
+ "text":"(1..4).reverse_each {|i| puts i unless i.equal?(i**i) } # Which of the following will not be printed?",
6
+ "a1": "1",
7
+ "a2": "2",
8
+ "a3": "3",
9
+ "a4": "4",
10
+ "right_answer":"a1",
11
+ "created_at": "2011-06-06",
12
+ "created_by": "juliancheal"
13
+ }
14
+ }
@@ -0,0 +1,10 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 4,
5
+ "text": "Which library lets Ruby garbage collect an object, that is still being referenced",
6
+ "a1": "Weakref",
7
+ "created_at": "2011-06-06",
8
+ "created_by": "juliancheal"
9
+ }
10
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question": {
3
+ "id": "",
4
+ "nerd_level": 1,
5
+ "category": "ruby",
6
+ "text": "What did Matz say about Ruby?",
7
+ "a1": "It should be abandoned because PHP 5.3 is damn good",
8
+ "a2": "It was created to implement JAVA",
9
+ "a3": "It was created to upset Bill Gates",
10
+ "a4": "It was created for programmer productivity and fun",
11
+ "right_answer": "a4",
12
+ "created_at": "2011-09-08",
13
+ "created_by": "Michał Łomnicki"
14
+ }
15
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 2,
5
+ "text":"What is the result of [1,2,3] * 3?",
6
+ "a1": "[[1,2,3], [1,2,3], [1,2,3]]",
7
+ "a2": "[1, 2, 3, 1, 2, 3, 1, 2, 3]",
8
+ "a3": "[3, 6, 9]",
9
+ "a4": "[1, 8, 27]",
10
+ "right_answer":"a2",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Jost"
13
+ }
14
+ }
@@ -0,0 +1,14 @@
1
+ { "question" : {
2
+ "id": "",
3
+ "category": "ruby",
4
+ "nerd_level": 2,
5
+ "text":"What is the result of \"hello\".tr_s('l','r')?",
6
+ "a1": "hero",
7
+ "a2": "helrlro",
8
+ "a3": "herro",
9
+ "a4": "heo",
10
+ "right_answer":"a1",
11
+ "created_at": "2011-06-07",
12
+ "created_by": "Jost"
13
+ }
14
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question": {
3
+ "id": "",
4
+ "nerd_level": 2,
5
+ "category": "ruby",
6
+ "text": "What does GIL stands for?",
7
+ "a1": "The name of a Ruby dialect for embedded devices",
8
+ "a2": "Game Illegaly Loaded",
9
+ "a3": "Global Interpreter Lock",
10
+ "a4": "Got Infinitive Length",
11
+ "right_answer": "a3",
12
+ "created_by": "Michał Łomnicki",
13
+ "created_at": "2011-09-08"
14
+ }
15
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "question": {
3
+ "id": "",
4
+ "nerd_level": 1,
5
+ "text": "What does !~ operator do?",
6
+ "a1": "Performs bitwise XOR on its arguments",
7
+ "a2": "Returns the index of the first character matching the regexp",
8
+ "a3": "Returns false if the arguments match",
9
+ "a4": "Returns true if the arguments match",
10
+ "right_answer": "a3",
11
+ "created_at": "2011-09-08",
12
+ "category": "ruby",
13
+ "created_by": "Michał Łomnicki"
14
+ }
15
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "question": {
3
+ "id": "",
4
+ "nerd_level": 1,
5
+ "category": "ruby",
6
+ "text": "What is a mixin?",
7
+ "a1": "A nickname of a Ruby creator",
8
+ "a2": "A successor of HTTP protocol",
9
+ "a3": "An implementation which may be shared across multiple classes",
10
+ "right_answer": "a3",
11
+ "created_by": "Michał Łomnicki",
12
+ "created_at": "2011-09-08"
13
+ }
14
+ }
@@ -0,0 +1,49 @@
1
+ require 'fileutils'
2
+ require 'yaml'
3
+
4
+ class PlusOne
5
+ include Muzang::Plugins::Helpers
6
+
7
+ attr_accessor :config, :stats
8
+
9
+ def initialize(bot)
10
+ @bot = bot
11
+ create_database("stats.yml", Hash.new, :stats)
12
+ end
13
+
14
+ def call(connection, message)
15
+ if on_channel?(message)
16
+ if (plus_for = match?(message, :regexp => /^([^\s]*) \+1/, :position => 1))
17
+ plus_for.gsub!(":","")
18
+ if filter(plus_for, message.nick)
19
+ connection.msg(message.channel, "#{message.nick} pisze w PHP") and return
20
+ end
21
+
22
+ connection.msg(message.channel, "#{message.nick} podarowal +1 dla *#{plus_for}*")
23
+ @stats[plus_for] ||= 0
24
+ @stats[plus_for] += 1
25
+ save
26
+ end
27
+
28
+ if match?(message, :regexp => /^!stats$/, :position => 0)
29
+ connection.msg(message.channel, print)
30
+ end
31
+ end
32
+ end
33
+
34
+ def print
35
+ message = ""
36
+ stat = @stats.sort_by { |points| -points[1] }
37
+ stat.each do |s|
38
+ message << "*#{s[0]}* #{s[1]} | " if s[1] > 0
39
+ end
40
+
41
+ message
42
+ end
43
+
44
+ def filter(plus_for, nick)
45
+ if plus_for == nick || @stats[nick] == nil
46
+ return true
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,42 @@
1
+ require "em-http-request"
2
+ require "rss/1.0"
3
+ require "rss/2.0"
4
+
5
+ class Reddit
6
+ include Muzang::Plugins::Helpers
7
+ attr_accessor :last_update
8
+
9
+ def initialize(bot)
10
+ @bot = bot
11
+ create_database("last_update.yml", Time.now, :last_update)
12
+ end
13
+
14
+ def call(connection, message)
15
+ if on_join?(connection, message)
16
+ EventMachine::add_periodic_timer(period) do
17
+ http = EventMachine::HttpRequest.new('http://www.reddit.com/r/ruby/.rss').get
18
+
19
+ http.errback {
20
+ # exceptioner
21
+ }
22
+
23
+ http.callback {
24
+ rss = RSS::Parser.parse(http.response, false)
25
+ rss.items.each do |item|
26
+ connection.msg(message.channel, "#{item.title} | #{item.link}") if item.date > @last_update
27
+ end
28
+ save(rss)
29
+ }
30
+ end
31
+ end
32
+ end
33
+
34
+ def save(rss)
35
+ @last_update = rss.items.max_by{|i|i.date}.date
36
+ file = File.open(@config + "/last_update.yml", "w"){|f| f.write YAML::dump(@last_update)}
37
+ end
38
+
39
+ def period
40
+ 30
41
+ end
42
+ end
@@ -0,0 +1,43 @@
1
+ require "em-http-request"
2
+ require "json"
3
+
4
+ class RubyGems
5
+ include Muzang::Plugins::Helpers
6
+
7
+ attr_accessor :last_gem
8
+
9
+ def initialize(bot)
10
+ @bot = bot
11
+ create_database("last_gem.yml", String.new, :last_gem)
12
+ end
13
+
14
+ def call(connection, message)
15
+ if on_join?(connection, message)
16
+ EventMachine.add_periodic_timer(period) do
17
+ http = EventMachine::HttpRequest.new('http://rubygems.org/api/v1/gems/latest.json').get
18
+
19
+ http.errback {
20
+ # exceptioner
21
+ }
22
+
23
+ http.callback {
24
+ gems = JSON.parse(http.response)
25
+ gem = gems.first
26
+ unless @last_gem == gem["name"]
27
+ @last_gem = gem["name"]
28
+ connection.msg(message.channel, "Nowy gem! | #{gem["name"]} | #{gem["info"]} | #{gem["project_uri"]}")
29
+ save
30
+ end
31
+ }
32
+ end
33
+ end
34
+ end
35
+
36
+ def save
37
+ file = File.open(@config + "/last_gem.yml", "w"){|f| f.write YAML::dump(@last_gem)}
38
+ end
39
+
40
+ def period
41
+ 30
42
+ end
43
+ end
@@ -0,0 +1,5 @@
1
+ module Muzang
2
+ module Plugins
3
+ VERSION = "1.0.0"
4
+ end
5
+ end