muzang-plugins 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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