gss 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (390) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +22 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +2 -0
  7. data/gss.gemspec +25 -0
  8. data/lib/gss.rb +62 -0
  9. data/lib/gss/version.rb +3 -0
  10. data/vendor/bundle/ruby/1.9.1/bin/nokogiri +23 -0
  11. data/vendor/bundle/ruby/1.9.1/bin/nokogiri.bat +6 -0
  12. data/vendor/bundle/ruby/1.9.1/bin/rake +23 -0
  13. data/vendor/bundle/ruby/1.9.1/bin/rake.bat +6 -0
  14. data/vendor/bundle/ruby/1.9.1/build_info/certified-0.1.2.info +1 -0
  15. data/vendor/bundle/ruby/1.9.1/build_info/mini_portile-0.6.0.info +1 -0
  16. data/vendor/bundle/ruby/1.9.1/build_info/nokogiri-1.6.2.1-x86-mingw32.info +1 -0
  17. data/vendor/bundle/ruby/1.9.1/build_info/rake-0.9.2.2.info +1 -0
  18. data/vendor/bundle/ruby/1.9.1/gems/certified-0.1.2/README.md +5 -0
  19. data/vendor/bundle/ruby/1.9.1/gems/certified-0.1.2/certified.rb +20 -0
  20. data/vendor/bundle/ruby/1.9.1/gems/certified-0.1.2/certs/ca-bundle.crt +3376 -0
  21. data/vendor/bundle/ruby/1.9.1/gems/mini_portile-0.6.0/History.txt +86 -0
  22. data/vendor/bundle/ruby/1.9.1/gems/mini_portile-0.6.0/LICENSE.txt +20 -0
  23. data/vendor/bundle/ruby/1.9.1/gems/mini_portile-0.6.0/README.rdoc +169 -0
  24. data/vendor/bundle/ruby/1.9.1/gems/mini_portile-0.6.0/Rakefile +53 -0
  25. data/vendor/bundle/ruby/1.9.1/gems/mini_portile-0.6.0/examples/Rakefile +113 -0
  26. data/vendor/bundle/ruby/1.9.1/gems/mini_portile-0.6.0/lib/mini_portile.rb +437 -0
  27. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/.autotest +26 -0
  28. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/.editorconfig +17 -0
  29. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/.gemtest +0 -0
  30. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/.travis.yml +27 -0
  31. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/CHANGELOG.ja.rdoc +889 -0
  32. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/CHANGELOG.rdoc +898 -0
  33. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/C_CODING_STYLE.rdoc +33 -0
  34. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/Gemfile +21 -0
  35. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/Manifest.txt +377 -0
  36. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/README.ja.rdoc +111 -0
  37. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/README.rdoc +180 -0
  38. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ROADMAP.md +89 -0
  39. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/Rakefile +356 -0
  40. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/STANDARD_RESPONSES.md +47 -0
  41. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/Y_U_NO_GEMSPEC.md +155 -0
  42. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/bin/nokogiri +78 -0
  43. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/build_all +130 -0
  44. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/dependencies.yml +4 -0
  45. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/depend +358 -0
  46. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/extconf.rb +543 -0
  47. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_document.c +170 -0
  48. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_document.h +10 -0
  49. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_element_description.c +279 -0
  50. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_element_description.h +10 -0
  51. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_entity_lookup.c +32 -0
  52. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_entity_lookup.h +8 -0
  53. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_sax_parser_context.c +116 -0
  54. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_sax_parser_context.h +11 -0
  55. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_sax_push_parser.c +87 -0
  56. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/html_sax_push_parser.h +9 -0
  57. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/nokogiri.c +148 -0
  58. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/nokogiri.h +164 -0
  59. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_attr.c +94 -0
  60. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_attr.h +9 -0
  61. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_attribute_decl.c +70 -0
  62. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_attribute_decl.h +9 -0
  63. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_cdata.c +56 -0
  64. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_cdata.h +9 -0
  65. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_comment.c +54 -0
  66. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_comment.h +9 -0
  67. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_document.c +577 -0
  68. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_document.h +23 -0
  69. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_document_fragment.c +48 -0
  70. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_document_fragment.h +10 -0
  71. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_dtd.c +202 -0
  72. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_dtd.h +10 -0
  73. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_element_content.c +123 -0
  74. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_element_content.h +10 -0
  75. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_element_decl.c +69 -0
  76. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_element_decl.h +9 -0
  77. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_encoding_handler.c +79 -0
  78. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_encoding_handler.h +8 -0
  79. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_entity_decl.c +110 -0
  80. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_entity_decl.h +10 -0
  81. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_entity_reference.c +52 -0
  82. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_entity_reference.h +9 -0
  83. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_io.c +56 -0
  84. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_io.h +11 -0
  85. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_libxml2_hacks.c +112 -0
  86. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_libxml2_hacks.h +12 -0
  87. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_namespace.c +78 -0
  88. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_namespace.h +13 -0
  89. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_node.c +1603 -0
  90. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_node.h +13 -0
  91. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_node_set.c +467 -0
  92. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_node_set.h +14 -0
  93. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_processing_instruction.c +56 -0
  94. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_processing_instruction.h +9 -0
  95. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_reader.c +681 -0
  96. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_reader.h +10 -0
  97. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_relax_ng.c +161 -0
  98. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_relax_ng.h +9 -0
  99. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_sax_parser.c +312 -0
  100. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_sax_parser.h +39 -0
  101. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_sax_parser_context.c +262 -0
  102. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_sax_parser_context.h +10 -0
  103. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_sax_push_parser.c +115 -0
  104. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_sax_push_parser.h +9 -0
  105. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_schema.c +205 -0
  106. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_schema.h +9 -0
  107. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_syntax_error.c +63 -0
  108. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_syntax_error.h +13 -0
  109. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_text.c +52 -0
  110. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_text.h +9 -0
  111. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_xpath_context.c +307 -0
  112. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xml_xpath_context.h +10 -0
  113. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xslt_stylesheet.c +270 -0
  114. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/ext/nokogiri/xslt_stylesheet.h +14 -0
  115. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri.rb +137 -0
  116. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css.rb +27 -0
  117. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/node.rb +52 -0
  118. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/parser.rb +715 -0
  119. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/parser.y +249 -0
  120. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/parser_extras.rb +91 -0
  121. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/syntax_error.rb +7 -0
  122. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/tokenizer.rb +152 -0
  123. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/tokenizer.rex +55 -0
  124. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/css/xpath_visitor.rb +219 -0
  125. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/decorators/slop.rb +35 -0
  126. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html.rb +37 -0
  127. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/builder.rb +35 -0
  128. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/document.rb +333 -0
  129. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/document_fragment.rb +41 -0
  130. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/element_description.rb +23 -0
  131. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/element_description_defaults.rb +671 -0
  132. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/entity_lookup.rb +13 -0
  133. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/sax/parser.rb +52 -0
  134. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/sax/parser_context.rb +16 -0
  135. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/html/sax/push_parser.rb +16 -0
  136. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/syntax_error.rb +4 -0
  137. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/version.rb +106 -0
  138. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml.rb +73 -0
  139. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/attr.rb +14 -0
  140. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/attribute_decl.rb +18 -0
  141. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/builder.rb +443 -0
  142. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/cdata.rb +11 -0
  143. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/character_data.rb +7 -0
  144. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/document.rb +279 -0
  145. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/document_fragment.rb +112 -0
  146. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/dtd.rb +32 -0
  147. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/element_content.rb +36 -0
  148. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/element_decl.rb +13 -0
  149. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/entity_decl.rb +19 -0
  150. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/namespace.rb +13 -0
  151. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/node.rb +982 -0
  152. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/node/save_options.rb +61 -0
  153. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/node_set.rb +355 -0
  154. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/notation.rb +6 -0
  155. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/parse_options.rb +98 -0
  156. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/pp.rb +2 -0
  157. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/pp/character_data.rb +18 -0
  158. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/pp/node.rb +56 -0
  159. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/processing_instruction.rb +8 -0
  160. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/reader.rb +112 -0
  161. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/relax_ng.rb +32 -0
  162. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/sax.rb +4 -0
  163. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/sax/document.rb +171 -0
  164. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/sax/parser.rb +123 -0
  165. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/sax/parser_context.rb +16 -0
  166. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/sax/push_parser.rb +60 -0
  167. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/schema.rb +63 -0
  168. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/syntax_error.rb +47 -0
  169. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/text.rb +9 -0
  170. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/xpath.rb +10 -0
  171. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/xpath/syntax_error.rb +11 -0
  172. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xml/xpath_context.rb +16 -0
  173. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xslt.rb +56 -0
  174. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/nokogiri/xslt/stylesheet.rb +25 -0
  175. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/lib/xsd/xmlparser/nokogiri.rb +102 -0
  176. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/suppressions/README.txt +1 -0
  177. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/suppressions/nokogiri_ree-1.8.7.358.supp +61 -0
  178. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/suppressions/nokogiri_ruby-1.8.7.370.supp +0 -0
  179. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/suppressions/nokogiri_ruby-1.9.2.320.supp +28 -0
  180. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/suppressions/nokogiri_ruby-1.9.3.327.supp +28 -0
  181. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/tasks/nokogiri.org.rb +24 -0
  182. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/tasks/test.rb +95 -0
  183. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/css/test_nthiness.rb +222 -0
  184. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/css/test_parser.rb +358 -0
  185. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/css/test_tokenizer.rb +198 -0
  186. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/css/test_xpath_visitor.rb +96 -0
  187. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/decorators/test_slop.rb +16 -0
  188. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/2ch.html +108 -0
  189. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/address_book.rlx +12 -0
  190. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/address_book.xml +10 -0
  191. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/atom.xml +344 -0
  192. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/bar/bar.xsd +4 -0
  193. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/bogus.xml +0 -0
  194. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/dont_hurt_em_why.xml +422 -0
  195. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/encoding.html +82 -0
  196. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/encoding.xhtml +84 -0
  197. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/exslt.xml +8 -0
  198. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/exslt.xslt +35 -0
  199. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/foo/foo.xsd +4 -0
  200. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/metacharset.html +10 -0
  201. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/noencoding.html +47 -0
  202. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/po.xml +32 -0
  203. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/po.xsd +66 -0
  204. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/saml/saml20assertion_schema.xsd +283 -0
  205. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/saml/saml20protocol_schema.xsd +302 -0
  206. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/saml/xenc_schema.xsd +146 -0
  207. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/saml/xmldsig_schema.xsd +318 -0
  208. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/shift_jis.html +10 -0
  209. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/shift_jis.xml +5 -0
  210. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/shift_jis_no_charset.html +9 -0
  211. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/slow-xpath.xml +25509 -0
  212. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/snuggles.xml +3 -0
  213. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/staff.dtd +10 -0
  214. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/staff.xml +59 -0
  215. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/staff.xslt +32 -0
  216. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/test_document_url/bar.xml +2 -0
  217. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/test_document_url/document.dtd +4 -0
  218. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/test_document_url/document.xml +6 -0
  219. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/tlm.html +850 -0
  220. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/to_be_xincluded.xml +2 -0
  221. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/valid_bar.xml +2 -0
  222. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/files/xinclude.xml +4 -0
  223. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/helper.rb +164 -0
  224. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/sax/test_parser.rb +141 -0
  225. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/sax/test_parser_context.rb +46 -0
  226. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_builder.rb +164 -0
  227. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_document.rb +619 -0
  228. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_document_encoding.rb +148 -0
  229. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_document_fragment.rb +267 -0
  230. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_element_description.rb +105 -0
  231. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_named_characters.rb +14 -0
  232. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_node.rb +196 -0
  233. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/html/test_node_encoding.rb +27 -0
  234. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_additional_namespaces_in_builder_doc.rb +14 -0
  235. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_namespaces_aliased_default.rb +24 -0
  236. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_namespaces_in_builder_doc.rb +75 -0
  237. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_namespaces_in_cloned_doc.rb +31 -0
  238. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_namespaces_in_created_doc.rb +75 -0
  239. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_namespaces_in_parsed_doc.rb +66 -0
  240. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/namespaces/test_namespaces_preservation.rb +31 -0
  241. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_convert_xpath.rb +135 -0
  242. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_css_cache.rb +45 -0
  243. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_encoding_handler.rb +46 -0
  244. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_memory_leak.rb +156 -0
  245. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_nokogiri.rb +138 -0
  246. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_reader.rb +558 -0
  247. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_soap4r_sax.rb +52 -0
  248. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/test_xslt_transforms.rb +279 -0
  249. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/node/test_save_options.rb +28 -0
  250. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/node/test_subclass.rb +44 -0
  251. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/sax/test_parser.rb +382 -0
  252. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/sax/test_parser_context.rb +115 -0
  253. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/sax/test_push_parser.rb +157 -0
  254. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_attr.rb +64 -0
  255. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_attribute_decl.rb +86 -0
  256. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_builder.rb +315 -0
  257. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_c14n.rb +161 -0
  258. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_cdata.rb +48 -0
  259. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_comment.rb +29 -0
  260. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_document.rb +934 -0
  261. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_document_encoding.rb +28 -0
  262. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_document_fragment.rb +228 -0
  263. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_dtd.rb +187 -0
  264. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_dtd_encoding.rb +33 -0
  265. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_element_content.rb +56 -0
  266. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_element_decl.rb +73 -0
  267. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_entity_decl.rb +122 -0
  268. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_entity_reference.rb +245 -0
  269. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_namespace.rb +95 -0
  270. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_node.rb +1155 -0
  271. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_node_attributes.rb +113 -0
  272. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_node_encoding.rb +107 -0
  273. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_node_inheritance.rb +32 -0
  274. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_node_reparenting.rb +374 -0
  275. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_node_set.rb +755 -0
  276. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_parse_options.rb +64 -0
  277. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_processing_instruction.rb +30 -0
  278. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_reader_encoding.rb +142 -0
  279. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_relax_ng.rb +60 -0
  280. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_schema.rb +129 -0
  281. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_syntax_error.rb +12 -0
  282. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_text.rb +60 -0
  283. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_unparented_node.rb +422 -0
  284. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_xinclude.rb +83 -0
  285. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xml/test_xpath.rb +382 -0
  286. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xslt/test_custom_functions.rb +133 -0
  287. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test/xslt/test_exception_handling.rb +37 -0
  288. data/vendor/bundle/ruby/1.9.1/gems/nokogiri-1.6.2.1-x86-mingw32/test_all +81 -0
  289. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/.gemtest +0 -0
  290. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/CHANGES +522 -0
  291. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/MIT-LICENSE +21 -0
  292. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/README.rdoc +197 -0
  293. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/Rakefile +369 -0
  294. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/TODO +20 -0
  295. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/bin/rake +33 -0
  296. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/install.rb +90 -0
  297. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake.rb +69 -0
  298. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/alt_system.rb +109 -0
  299. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/application.rb +595 -0
  300. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/classic_namespace.rb +11 -0
  301. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/clean.rb +32 -0
  302. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/cloneable.rb +25 -0
  303. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/compositepublisher.rb +21 -0
  304. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/ftptools.rb +150 -0
  305. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/publisher.rb +73 -0
  306. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/rubyforgepublisher.rb +16 -0
  307. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/sshpublisher.rb +50 -0
  308. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/contrib/sys.rb +191 -0
  309. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/default_loader.rb +10 -0
  310. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/dsl_definition.rb +176 -0
  311. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/early_time.rb +18 -0
  312. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/core.rb +27 -0
  313. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/module.rb +39 -0
  314. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/string.rb +167 -0
  315. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ext/time.rb +14 -0
  316. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_creation_task.rb +24 -0
  317. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_list.rb +403 -0
  318. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_task.rb +47 -0
  319. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils.rb +114 -0
  320. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/file_utils_ext.rb +145 -0
  321. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/gempackagetask.rb +15 -0
  322. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/invocation_chain.rb +51 -0
  323. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/invocation_exception_mixin.rb +16 -0
  324. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/loaders/makefile.rb +40 -0
  325. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/multi_task.rb +16 -0
  326. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/name_space.rb +25 -0
  327. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/packagetask.rb +185 -0
  328. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/pathmap.rb +1 -0
  329. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/pseudo_status.rb +24 -0
  330. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_module.rb +29 -0
  331. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rake_test_loader.rb +22 -0
  332. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rdoctask.rb +234 -0
  333. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/ruby182_test_unit_fix.rb +25 -0
  334. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/rule_recursion_overflow_error.rb +20 -0
  335. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/runtest.rb +21 -0
  336. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task.rb +327 -0
  337. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task_argument_error.rb +7 -0
  338. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task_arguments.rb +78 -0
  339. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/task_manager.rb +307 -0
  340. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb +22 -0
  341. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb +191 -0
  342. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/version.rb +8 -0
  343. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/lib/rake/win32.rb +55 -0
  344. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/file_creation.rb +34 -0
  345. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/helper.rb +492 -0
  346. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake.rb +40 -0
  347. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_application.rb +489 -0
  348. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_application_options.rb +335 -0
  349. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_clean.rb +14 -0
  350. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_definitions.rb +80 -0
  351. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_directory_task.rb +46 -0
  352. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_dsl.rb +77 -0
  353. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_early_time.rb +31 -0
  354. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_extension.rb +59 -0
  355. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_creation_task.rb +56 -0
  356. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_list.rb +628 -0
  357. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_list_path_map.rb +8 -0
  358. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_task.rb +102 -0
  359. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_file_utils.rb +305 -0
  360. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_ftp_file.rb +59 -0
  361. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_functional.rb +450 -0
  362. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_invocation_chain.rb +52 -0
  363. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_makefile_loader.rb +44 -0
  364. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_multi_task.rb +51 -0
  365. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_name_space.rb +43 -0
  366. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_package_task.rb +79 -0
  367. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_path_map.rb +157 -0
  368. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_path_map_explode.rb +34 -0
  369. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_path_map_partial.rb +18 -0
  370. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_pseudo_status.rb +21 -0
  371. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_rake_test_loader.rb +21 -0
  372. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_rdoc_task.rb +83 -0
  373. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_require.rb +40 -0
  374. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_rules.rb +327 -0
  375. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task.rb +267 -0
  376. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_argument_parsing.rb +103 -0
  377. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_arguments.rb +88 -0
  378. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_lib.rb +9 -0
  379. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_manager.rb +157 -0
  380. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_manager_argument_resolution.rb +36 -0
  381. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_task_with_arguments.rb +173 -0
  382. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_test_task.rb +120 -0
  383. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_top_level_functions.rb +111 -0
  384. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_rake_win32.rb +72 -0
  385. data/vendor/bundle/ruby/1.9.1/gems/rake-0.9.2.2/test/test_sys.rb +20 -0
  386. data/vendor/bundle/ruby/1.9.1/specifications/certified-0.1.2.gemspec +20 -0
  387. data/vendor/bundle/ruby/1.9.1/specifications/mini_portile-0.6.0.gemspec +24 -0
  388. data/vendor/bundle/ruby/1.9.1/specifications/nokogiri-1.6.2.1-x86-mingw32.gemspec +73 -0
  389. data/vendor/bundle/ruby/1.9.1/specifications/rake-0.9.2.2.gemspec +37 -0
  390. metadata +489 -0
@@ -0,0 +1,86 @@
1
+ === 0.6.0 / 2014-04-18
2
+
3
+ * Enhancements:
4
+ * Add default cert store and custom certs from `SSL_CERT_FILE` if present.
5
+ This increases compatibility with Ruby 1.8.7.
6
+
7
+ * Bugfixes:
8
+ * Specify Accept-Encoding to make sure a raw file content is downloaded.
9
+ Pull #30. [knu]
10
+
11
+ * Internal:
12
+ * Improve examples and use them as test harness.
13
+
14
+ === 0.5.3 / 2014-03-24
15
+
16
+ * Bugfixes:
17
+ * Shell escape paths in tar command. Pull #29. [quickshiftin]
18
+ * Support older versions of tar that cannot auto-detect
19
+ the compression type. Pull #27. Closes #21. [b-dean]
20
+ * Try RbConfig's CC before fall back to 'gcc'. Ref #28.
21
+
22
+ === 0.5.2 / 2013-10-23
23
+
24
+ * Bugfixes:
25
+ * Change tar detection order to support NetBSD 'gtar'. Closes #24
26
+ * Trick 'git-apply' when applying patches on nested Git checkouts. [larskanis]
27
+ * Respect ENV's MAKE before fallback to 'make'. [larskanis]
28
+ * Respect ENV's CC variable before fallback to 'gcc'.
29
+ * Avoid non-ASCII output of GCC cause host detection issues. Closes #22
30
+
31
+ === 0.5.1 / 2013-07-07
32
+
33
+ * Bugfixes:
34
+ * Detect tar executable without shelling out. [jtimberman]
35
+
36
+ === 0.5.0 / 2012-11-17
37
+
38
+ * Enhancements:
39
+ * Allow patching extracted files using `git apply`. [metaskills]
40
+
41
+ === 0.4.1 / 2012-10-24
42
+
43
+ * Bugfixes:
44
+ * Syntax to process FTp binary chunks differs between Ruby 1.8.7 and 1.9.x
45
+
46
+ === 0.4.0 / 2012-10-24
47
+
48
+ * Enhancements:
49
+ * Allow fetching of FTP URLs along HTTP ones. [metaskills]
50
+
51
+ === 0.3.0 / 2012-03-23
52
+
53
+ * Enhancements:
54
+ * Use `gcc -v` to determine original host (platform) instead of Ruby one.
55
+
56
+ * Deprecations:
57
+ * Dropped support for Rubies older than 1.8.7
58
+
59
+ === 0.2.2 / 2011-04-11
60
+
61
+ * Minor enhancements:
62
+ * Use LDFLAGS when activating recipes for cross-compilation. Closes #6
63
+
64
+ * Bugfixes:
65
+ * Remove memoization of *_path helpers. Closes #7
66
+
67
+ === 0.2.1 / 2011-04-06
68
+
69
+ * Minor enhancements:
70
+ * Provide MiniPortile#path to obtain full path to installation directory. Closes GH-5
71
+
72
+ === 0.2.0 / 2011-04-05
73
+
74
+ * Enhancements:
75
+ * Improve tar detection
76
+ * Improve and refactor configure_options
77
+ * Detect configure_options changes. Closes GH-1
78
+ * Add recipe examples
79
+
80
+ * Bugfixes:
81
+ * MiniPortile#target can be changed now. Closes GH-2
82
+ * Always redirect tar output properly
83
+
84
+ === 0.1.0 / 2011-03-08
85
+
86
+ * Initial release. Welcome to this world!
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Luis Lavena.
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,169 @@
1
+ = MiniPortile
2
+
3
+ * {Source Code}[https://github.com/luislavena/mini_portile]
4
+ * {Bug Reports}[https://github.com/luislavena/mini_portile/issues]
5
+
6
+ This project is a minimalistic, simplistic and stupid implementation of a port/recipe
7
+ system <b>for developers</b>.
8
+
9
+ == Another port system, srsly?
10
+
11
+ No, is not a general port system, is not aimed to take over apt, macports or
12
+ anything like that.
13
+
14
+ The rationale is simple.
15
+
16
+ You create a library A that uses B at runtime or compile time. Target audience
17
+ of your library might have different versions of B installed than yours.
18
+
19
+ You know, <em>Works on my machine</em> is not what you expect from one
20
+ developer to another.
21
+
22
+ Developers having problems report them back to you, and what you do then?
23
+ Compile B locally, replacing your existing installation of B or simply hacking
24
+ things around so nothing breaks.
25
+
26
+ All this, manually.
27
+
28
+ Computers are tools, are meant to help us, not the other way around.
29
+
30
+ What if I tell you the above scenario can be simplified with something like
31
+ this:
32
+
33
+ rake compile B_VERSION=1.2.3
34
+
35
+ And your library will use the version of B you specified. Done.
36
+
37
+ == You make it sound easy, where is the catch?
38
+
39
+ You got me, there is a catch. At this time (and highly likely will be always)
40
+ MiniPortile is only compatible with GCC compilers and autoconf/configure-based
41
+ projects.
42
+
43
+ It assumes the library you want to build contains a <tt>configure</tt> script,
44
+ which all the autoconf-based libraries do.
45
+
46
+ === How to use
47
+
48
+ Now that you know the catch, and you're still reading this, let me show you a
49
+ quick example:
50
+
51
+ require "mini_portile"
52
+ recipe = MiniPortile.new("libiconv", "1.13.1")
53
+ recipe.files = ["http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz"]
54
+ recipe.cook
55
+ recipe.activate
56
+
57
+ That's all. <tt>cook</tt> will download, extract, patch, configure and compile
58
+ the library into a namespaced structure. <tt>activate</tt> ensures GCC find
59
+ this library and prefers it over a system-wide installation.
60
+
61
+ === Structure
62
+
63
+ At this time, if you haven't digged into the code yet, are wondering <em>what
64
+ is all that structure talk about?</em>.
65
+
66
+ MiniPortile follows the principle of <b>convention over configuration</b> and
67
+ established a folder structure where is going to place files and perform work.
68
+
69
+ Take the above example, and let's draw some picture:
70
+
71
+ mylib
72
+ |-- ports
73
+ | |-- archives
74
+ | | `-- libiconv-1.13.1.tar.gz
75
+ | `-- <platform>
76
+ | `-- libiconv
77
+ | `-- 1.13.1
78
+ | |-- bin
79
+ | |-- include
80
+ | `-- lib
81
+ `-- tmp
82
+ `-- <platform>
83
+ `-- ports
84
+
85
+ In above structure, <tt>platform</tt> refers to the architecture that represents
86
+ the operating system you're using (e.g. i686-linux, i386-mingw32, etc).
87
+
88
+ Inside this folder, MiniPortile will store the artifacts that result from the
89
+ compilation process. As you cans see, it versions out the library so you can
90
+ run multiple version combination without compromising these overlap each other.
91
+
92
+ <tt>archives</tt> is where downloaded source files are stored. It is recommended
93
+ you avoid trashing that folder so no further downloads will be required (save
94
+ bandwidth, save the world).
95
+
96
+ The <tt>tmp</tt> is where compilation is performed and can be safely discarded.
97
+
98
+ Don't worry, you don't need to know the path structure by memory, just use recipe's
99
+ <tt>path</tt> to obtain the full path to the installation directory:
100
+
101
+ recipe.cook
102
+ recipe.path # => /home/luis/projects/myapp/ports/i686-linux/libiconv/1.13.1
103
+
104
+ === How can I combine this with my compilation task?
105
+
106
+ In the simplified proposal, the idea is that using Rake, your <tt>compile</tt>
107
+ task depends on MiniPortile compilation and most important, activation.
108
+
109
+ Take the following as a simplification of how you can use MiniPortile with
110
+ Rake:
111
+
112
+ task :libiconv do
113
+ recipe = MiniPortile.new("libiconv", "1.13.1")
114
+ recipe.files = ["http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.1.tar.gz"]
115
+ checkpoint = ".#{recipe.name}-#{recipe.version}.installed"
116
+
117
+ unless File.exist?(checkpoint)
118
+ recipe.cook
119
+ touch checkpoint
120
+ end
121
+
122
+ recipe.activate
123
+ end
124
+
125
+ task :compile => [:libiconv] do
126
+ # ...
127
+ end
128
+
129
+ This example will:
130
+
131
+ * Compile the library only once (using a timestamp file)
132
+ * Ensure compiled library gets activated every time
133
+ * Make compile task depend on compiled library activation
134
+
135
+ For your homework, you can make libiconv version be taken from <tt>ENV</tt>
136
+ variables.
137
+
138
+ === Native or cross-compilation
139
+
140
+ Above examples cover the normal use case: compile support libraries natively.
141
+
142
+ MiniPortile also covers another use case, which is the cross-compilation of the
143
+ support libraries to be used as part of a binary gem compilation.
144
+
145
+ It is the perfect complementary tool for rake-compiler and it's <tt>cross</tt>
146
+ Rake task.
147
+
148
+ Depending on your usage of rake-compiler, you will need to use <tt>host</tt> to
149
+ match the installed cross-compiler toolchain.
150
+
151
+ Please refer to the examples directory for simplified and practical usage.
152
+
153
+ === Supported scenarios
154
+
155
+ As mentioned before, MiniPortile requires a GCC compiler toolchain. This has
156
+ been tested against Ubuntu, OSX and even Windows (RubyInstaller with DevKit)
157
+
158
+ == Disclaimer
159
+
160
+ If you have any trouble, don't hesitate to contact the author. As always,
161
+ I'm not going to say <em>Use at your own risk</em> because I don't want this
162
+ library to be risky.
163
+
164
+ If you trip on something, I'll share the liability by repairing things
165
+ as quickly as I can. Your responsibility is to report the inadequacies.
166
+
167
+ == License
168
+
169
+ This library is licensed under MIT license. Please see LICENSE.txt for details.
@@ -0,0 +1,53 @@
1
+ require "rake/clean"
2
+ require "rubygems/package_task"
3
+
4
+ GEM_SPEC = Gem::Specification.new do |s|
5
+ # basic information
6
+ s.name = "mini_portile"
7
+ s.version = "0.6.0"
8
+ s.platform = Gem::Platform::RUBY
9
+
10
+ # description and details
11
+ s.summary = "Simplistic port-like solution for developers"
12
+ s.description = "Simplistic port-like solution for developers. It provides a standard and simplified way to compile against dependency libraries without messing up your system."
13
+
14
+ # requirements
15
+ s.required_ruby_version = ">= 1.8.7"
16
+ s.required_rubygems_version = ">= 1.3.5"
17
+
18
+ # dependencies (add_dependency)
19
+ # development dependencies (add_development_dependency)
20
+
21
+ # components, files and paths
22
+ s.files = FileList["examples/Rakefile", "lib/**/*.rb", "Rakefile", "*.{rdoc,txt}"]
23
+
24
+ s.require_path = 'lib'
25
+
26
+ # documentation
27
+ s.has_rdoc = true
28
+ s.rdoc_options << '--main' << 'README.rdoc' << '--title' << 'MiniPortile -- Documentation'
29
+
30
+ s.extra_rdoc_files = %w(README.rdoc History.txt LICENSE.txt)
31
+
32
+ # project information
33
+ s.homepage = 'http://github.com/luislavena/mini_portile'
34
+ s.licenses = ['MIT']
35
+
36
+ # author and contributors
37
+ s.author = 'Luis Lavena'
38
+ s.email = 'luislavena@gmail.com'
39
+ end
40
+
41
+ Gem::PackageTask.new(GEM_SPEC) do |pkg|
42
+ pkg.need_tar = false
43
+ pkg.need_zip = false
44
+ end
45
+
46
+ desc "Test MiniPortile by compiling examples"
47
+ task :test do
48
+ Dir.chdir("examples") do
49
+ sh "rake ports:all"
50
+ end
51
+ end
52
+
53
+ task :default => [:test]
@@ -0,0 +1,113 @@
1
+ require File.expand_path("mini_portile", File.join(File.dirname(__FILE__), "../lib"))
2
+
3
+ recipes = []
4
+
5
+ # libiconv
6
+ libiconv = MiniPortile.new "libiconv", "1.14"
7
+ libiconv.files << "ftp://ftp.gnu.org/pub/gnu/#{libiconv.name}/#{libiconv.name}-#{libiconv.version}.tar.gz"
8
+
9
+ recipes.push libiconv
10
+
11
+ # sqlite3
12
+ sqlite3 = MiniPortile.new "sqlite3", "3.8.4.1"
13
+ sqlite3.files << "http://sqlite.org/2014/sqlite-autoconf-3080401.tar.gz"
14
+
15
+ recipes.push sqlite3
16
+
17
+ # c-ares
18
+ c_ares = MiniPortile.new "c-ares", "1.7.5"
19
+ c_ares.files << "https://s3.amazonaws.com/distfiles.openknapsack.org/#{c_ares.name}/#{c_ares.name}-#{c_ares.version}.tar.gz"
20
+
21
+ recipes.push c_ares
22
+
23
+ # zlib
24
+ class ZlibRecipe < MiniPortile
25
+ def windows?
26
+ !(host =~ /mswin|mingw/).nil?
27
+ end
28
+
29
+ def configure
30
+ return super unless windows?
31
+
32
+ Dir.chdir work_path do
33
+ mk = File.read 'win32/Makefile.gcc'
34
+ File.open 'win32/Makefile.gcc', 'wb' do |f|
35
+ f.puts "BINARY_PATH = #{path}/bin"
36
+ f.puts "LIBRARY_PATH = #{path}/lib"
37
+ f.puts "INCLUDE_PATH = #{path}/include"
38
+
39
+ cross_build? and
40
+ mk.sub!(/^PREFIX\s*=\s*$/, "PREFIX = #{host}-")
41
+
42
+ f.puts mk
43
+ end
44
+ end
45
+ end
46
+
47
+ def configure_defaults
48
+ ["--static"]
49
+ end
50
+
51
+ def configured?
52
+ return super unless windows?
53
+
54
+ !!(File.read(File.join(work_path, 'win32/Makefile.gcc')) =~ /^BINARY_PATH/)
55
+ end
56
+
57
+ def compile
58
+ return super unless windows?
59
+
60
+ execute "compile", "make -f win32/Makefile.gcc"
61
+ end
62
+
63
+ def install
64
+ return if installed?
65
+ return super unless windows?
66
+
67
+ execute "install", %Q(#{make_cmd} -f win32/Makefile.gcc install)
68
+ end
69
+
70
+ def cross_build?
71
+ host != original_host
72
+ end
73
+ end
74
+
75
+ zlib = ZlibRecipe.new "zlib", "1.2.8"
76
+ zlib.files << "http://zlib.net/#{zlib.name}-#{zlib.version}.tar.gz"
77
+
78
+ recipes.push zlib
79
+
80
+ namespace :ports do
81
+ directory "ports"
82
+
83
+ recipes.each do |recipe|
84
+ desc "Install port #{recipe.name} #{recipe.version}"
85
+ task recipe.name => ["ports"] do |t|
86
+ checkpoint = "ports/.#{recipe.name}-#{recipe.version}-#{recipe.host}.installed"
87
+
88
+ unless File.exist?(checkpoint)
89
+ recipe.cook
90
+ touch checkpoint
91
+ end
92
+
93
+ recipe.activate
94
+ end
95
+
96
+ task :all => recipe.name
97
+ end
98
+
99
+ desc "Install all ports and display installation location"
100
+ task :all do
101
+ recipes.each do |recipe|
102
+ puts "Artifacts of '#{recipe.name}' in '#{recipe.path}'"
103
+ end
104
+ puts "LDFLAGS: " << ENV['LDFLAGS'].inspect
105
+ end
106
+ end
107
+
108
+ desc "Adjust all recipes host for cross-compilation"
109
+ task :cross do
110
+ recipes.each do |recipe|
111
+ recipe.host = "i686-w64-mingw32"
112
+ end
113
+ end
@@ -0,0 +1,437 @@
1
+ require 'rbconfig'
2
+ require 'net/http'
3
+ require 'net/https'
4
+ require 'net/ftp'
5
+ require 'fileutils'
6
+ require 'tempfile'
7
+ require 'digest/md5'
8
+
9
+ class MiniPortile
10
+ attr_reader :name, :version, :original_host
11
+ attr_writer :configure_options
12
+ attr_accessor :host, :files, :patch_files, :target, :logger
13
+
14
+ def initialize(name, version)
15
+ @name = name
16
+ @version = version
17
+ @target = 'ports'
18
+ @files = []
19
+ @patch_files = []
20
+ @logger = STDOUT
21
+
22
+ @original_host = @host = detect_host
23
+ end
24
+
25
+ def download
26
+ @files.each do |url|
27
+ filename = File.basename(url)
28
+ download_file(url, File.join(archives_path, filename))
29
+ end
30
+ end
31
+
32
+ def extract
33
+ @files.each do |url|
34
+ filename = File.basename(url)
35
+ extract_file(File.join(archives_path, filename), tmp_path)
36
+ end
37
+ end
38
+
39
+ def patch
40
+ # Set GIT_DIR while appying patches to work around
41
+ # git-apply doing nothing when started within another
42
+ # git directory.
43
+ ENV['GIT_DIR'], old_git = '.', ENV['GIT_DIR']
44
+ begin
45
+ @patch_files.each do |full_path|
46
+ next unless File.exists?(full_path)
47
+ output "Running git apply with #{full_path}..."
48
+ execute('patch', %Q(git apply #{full_path}))
49
+ end
50
+ ensure
51
+ ENV['GIT_DIR'] = old_git
52
+ end
53
+ end
54
+
55
+ def configure_options
56
+ @configure_options ||= configure_defaults
57
+ end
58
+
59
+ def configure
60
+ return if configured?
61
+
62
+ md5_file = File.join(tmp_path, 'configure.md5')
63
+ digest = Digest::MD5.hexdigest(computed_options)
64
+ File.open(md5_file, "w") { |f| f.write digest }
65
+
66
+ execute('configure', %Q(sh configure #{computed_options}))
67
+ end
68
+
69
+ def compile
70
+ execute('compile', make_cmd)
71
+ end
72
+
73
+ def install
74
+ return if installed?
75
+ execute('install', %Q(#{make_cmd} install))
76
+ end
77
+
78
+ def downloaded?
79
+ missing = @files.detect do |url|
80
+ filename = File.basename(url)
81
+ !File.exist?(File.join(archives_path, filename))
82
+ end
83
+
84
+ missing ? false : true
85
+ end
86
+
87
+ def configured?
88
+ configure = File.join(work_path, 'configure')
89
+ makefile = File.join(work_path, 'Makefile')
90
+ md5_file = File.join(tmp_path, 'configure.md5')
91
+
92
+ stored_md5 = File.exist?(md5_file) ? File.read(md5_file) : ""
93
+ current_md5 = Digest::MD5.hexdigest(computed_options)
94
+
95
+ (current_md5 == stored_md5) && newer?(makefile, configure)
96
+ end
97
+
98
+ def installed?
99
+ makefile = File.join(work_path, 'Makefile')
100
+ target_dir = Dir.glob("#{port_path}/*").find { |d| File.directory?(d) }
101
+
102
+ newer?(target_dir, makefile)
103
+ end
104
+
105
+ def cook
106
+ download unless downloaded?
107
+ extract
108
+ patch
109
+ configure unless configured?
110
+ compile
111
+ install unless installed?
112
+
113
+ return true
114
+ end
115
+
116
+ def activate
117
+ lib_path = File.join(port_path, "lib")
118
+ vars = {
119
+ 'PATH' => File.join(port_path, 'bin'),
120
+ 'CPATH' => File.join(port_path, 'include'),
121
+ 'LIBRARY_PATH' => lib_path
122
+ }.reject { |env, path| !File.directory?(path) }
123
+
124
+ output "Activating #{@name} #{@version} (from #{port_path})..."
125
+ vars.each do |var, path|
126
+ full_path = File.expand_path(path)
127
+
128
+ # turn into a valid Windows path (if required)
129
+ full_path.gsub!(File::SEPARATOR, File::ALT_SEPARATOR) if File::ALT_SEPARATOR
130
+
131
+ # save current variable value
132
+ old_value = ENV[var] || ''
133
+
134
+ unless old_value.include?(full_path)
135
+ ENV[var] = "#{full_path}#{File::PATH_SEPARATOR}#{old_value}"
136
+ end
137
+ end
138
+
139
+ # rely on LDFLAGS when cross-compiling
140
+ if File.exist?(lib_path) && (@host != @original_host)
141
+ full_path = File.expand_path(lib_path)
142
+
143
+ old_value = ENV.fetch("LDFLAGS", "")
144
+
145
+ unless old_value.include?(full_path)
146
+ ENV["LDFLAGS"] = "-L#{full_path} #{old_value}".strip
147
+ end
148
+ end
149
+ end
150
+
151
+ def path
152
+ File.expand_path(port_path)
153
+ end
154
+
155
+ private
156
+
157
+ def tmp_path
158
+ "tmp/#{@host}/ports/#{@name}/#{@version}"
159
+ end
160
+
161
+ def port_path
162
+ "#{@target}/#{@host}/#{@name}/#{@version}"
163
+ end
164
+
165
+ def archives_path
166
+ "#{@target}/archives"
167
+ end
168
+
169
+ def work_path
170
+ Dir.glob("#{tmp_path}/*").find { |d| File.directory?(d) }
171
+ end
172
+
173
+ def configure_defaults
174
+ [
175
+ "--host=#{@host}", # build for specific target (host)
176
+ "--enable-static", # build static library
177
+ "--disable-shared" # disable generation of shared object
178
+ ]
179
+ end
180
+
181
+ def configure_prefix
182
+ "--prefix=#{File.expand_path(port_path)}"
183
+ end
184
+
185
+ def computed_options
186
+ [
187
+ configure_options, # customized or default options
188
+ configure_prefix, # installation target
189
+ ].flatten.join(' ')
190
+ end
191
+
192
+ def log_file(action)
193
+ File.join(tmp_path, "#{action}.log")
194
+ end
195
+
196
+ def tar_exe
197
+ @@tar_exe ||= begin
198
+ %w[gtar bsdtar tar basic-bsdtar].find { |c|
199
+ which(c)
200
+ }
201
+ end
202
+ end
203
+
204
+ def tar_compression_switch(filename)
205
+ case File.extname(filename)
206
+ when '.gz', '.tgz'
207
+ 'z'
208
+ when '.bz2', '.tbz2'
209
+ 'j'
210
+ when '.Z'
211
+ 'Z'
212
+ else
213
+ ''
214
+ end
215
+ end
216
+
217
+ # From: http://stackoverflow.com/a/5471032/7672
218
+ # Thanks, Mislav!
219
+ #
220
+ # Cross-platform way of finding an executable in the $PATH.
221
+ #
222
+ # which('ruby') #=> /usr/bin/ruby
223
+ def which(cmd)
224
+ exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
225
+ ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
226
+ exts.each { |ext|
227
+ exe = File.join(path, "#{cmd}#{ext}")
228
+ return exe if File.executable? exe
229
+ }
230
+ end
231
+ return nil
232
+ end
233
+
234
+ def detect_host
235
+ return @detect_host if defined?(@detect_host)
236
+
237
+ begin
238
+ ENV["LC_ALL"], old_lc_all = "C", ENV["LC_ALL"]
239
+
240
+ output = `#{gcc_cmd} -v 2>&1`
241
+ if m = output.match(/^Target\: (.*)$/)
242
+ @detect_host = m[1]
243
+ end
244
+
245
+ @detect_host
246
+ ensure
247
+ ENV["LC_ALL"] = old_lc_all
248
+ end
249
+ end
250
+
251
+ def extract_file(file, target)
252
+ filename = File.basename(file)
253
+ FileUtils.mkdir_p target
254
+
255
+ message "Extracting #{filename} into #{target}... "
256
+ result = `#{tar_exe} #{tar_compression_switch(filename)}xf "#{file}" -C "#{target}" 2>&1`
257
+ if $?.success?
258
+ output "OK"
259
+ else
260
+ output "ERROR"
261
+ output result
262
+ raise "Failed to complete extract task"
263
+ end
264
+ end
265
+
266
+ def execute(action, command)
267
+ log = log_file(action)
268
+ log_out = File.expand_path(log)
269
+ redirected = command << " >#{log_out} 2>&1"
270
+
271
+ Dir.chdir work_path do
272
+ message "Running '#{action}' for #{@name} #{@version}... "
273
+ system redirected
274
+ if $?.success?
275
+ output "OK"
276
+ return true
277
+ else
278
+ output "ERROR, review '#{log}' to see what happened."
279
+ raise "Failed to complete #{action} task"
280
+ end
281
+ end
282
+ end
283
+
284
+ def newer?(target, checkpoint)
285
+ if (target && File.exist?(target)) && (checkpoint && File.exist?(checkpoint))
286
+ File.mtime(target) > File.mtime(checkpoint)
287
+ else
288
+ false
289
+ end
290
+ end
291
+
292
+ # print out a message with the logger
293
+ def message(text)
294
+ @logger.print text
295
+ @logger.flush
296
+ end
297
+
298
+ # print out a message using the logger but return to a new line
299
+ def output(text = "")
300
+ @logger.puts text
301
+ @logger.flush
302
+ end
303
+
304
+ # Slighly modified from RubyInstaller uri_ext, Rubinius configure
305
+ # and adaptations of Wayne's RailsInstaller
306
+ def download_file(url, full_path, count = 3)
307
+ return if File.exist?(full_path)
308
+ uri = URI.parse(url)
309
+ begin
310
+ case uri.scheme.downcase
311
+ when /ftp/
312
+ download_file_ftp(uri, full_path)
313
+ when /http|https/
314
+ download_file_http(url, full_path, count)
315
+ end
316
+ rescue Exception => e
317
+ File.unlink full_path if File.exists?(full_path)
318
+ output "ERROR: #{e.message}"
319
+ raise "Failed to complete download task"
320
+ end
321
+ end
322
+
323
+ def download_file_http(url, full_path, count = 3)
324
+ filename = File.basename(full_path)
325
+ uri = URI.parse(url)
326
+
327
+ if ENV['http_proxy']
328
+ _, userinfo, p_host, p_port = URI.split(ENV['http_proxy'])
329
+ proxy_user, proxy_pass = userinfo.split(/:/) if userinfo
330
+ http = Net::HTTP.new(uri.host, uri.port, p_host, p_port, proxy_user, proxy_pass)
331
+ else
332
+ http = Net::HTTP.new(uri.host, uri.port)
333
+
334
+ if URI::HTTPS === uri
335
+ http.use_ssl = true
336
+ http.verify_mode = OpenSSL::SSL::VERIFY_PEER
337
+
338
+ store = OpenSSL::X509::Store.new
339
+
340
+ # Auto-include system-provided certificates
341
+ store.set_default_paths
342
+
343
+ if ENV.has_key?("SSL_CERT_FILE") && File.exist?(ENV["SSL_CERT_FILE"])
344
+ store.add_file ENV["SSL_CERT_FILE"]
345
+ end
346
+
347
+ http.cert_store = store
348
+ end
349
+ end
350
+
351
+ message "Downloading #{filename} "
352
+ http.start do |h|
353
+ h.request_get(uri.path, 'Accept-Encoding' => 'identity') do |response|
354
+ case response
355
+ when Net::HTTPNotFound
356
+ output "404 - Not Found"
357
+ return false
358
+
359
+ when Net::HTTPClientError
360
+ output "Error: Client Error: #{response.inspect}"
361
+ return false
362
+
363
+ when Net::HTTPRedirection
364
+ raise "Too many redirections for the original URL, halting." if count <= 0
365
+ url = response["location"]
366
+ return download_file(url, full_path, count - 1)
367
+
368
+ when Net::HTTPOK
369
+ return with_tempfile(filename, full_path) do |temp_file|
370
+ size = 0
371
+ progress = 0
372
+ total = response.header["Content-Length"].to_i
373
+ response.read_body do |chunk|
374
+ temp_file << chunk
375
+ size += chunk.size
376
+ new_progress = (size * 100) / total
377
+ unless new_progress == progress
378
+ message "\rDownloading %s (%3d%%) " % [filename, new_progress]
379
+ end
380
+ progress = new_progress
381
+ end
382
+ output
383
+ end
384
+ end
385
+ end
386
+ end
387
+ end
388
+
389
+ def download_file_ftp(uri, full_path)
390
+ filename = File.basename(uri.path)
391
+ with_tempfile(filename, full_path) do |temp_file|
392
+ size = 0
393
+ progress = 0
394
+ Net::FTP.open(uri.host, uri.user, uri.password) do |ftp|
395
+ ftp.passive = true
396
+ ftp.login
397
+ remote_dir = File.dirname(uri.path)
398
+ ftp.chdir(remote_dir) unless remote_dir == '.'
399
+ total = ftp.size(filename)
400
+ ftp.getbinaryfile(filename, temp_file.path, 8192) do |chunk|
401
+ # Ruby 1.8.7 already wrote the chunk into the file
402
+ unless RUBY_VERSION < "1.9"
403
+ temp_file << chunk
404
+ end
405
+
406
+ size += chunk.size
407
+ new_progress = (size * 100) / total
408
+ unless new_progress == progress
409
+ message "\rDownloading %s (%3d%%) " % [filename, new_progress]
410
+ end
411
+ progress = new_progress
412
+ end
413
+ end
414
+ output
415
+ end
416
+ end
417
+
418
+ def with_tempfile(filename, full_path)
419
+ temp_file = Tempfile.new("download-#{filename}")
420
+ temp_file.binmode
421
+ yield temp_file
422
+ temp_file.close
423
+ File.unlink full_path if File.exists?(full_path)
424
+ FileUtils.mkdir_p File.dirname(full_path)
425
+ FileUtils.mv temp_file.path, full_path, :force => true
426
+ end
427
+
428
+ def gcc_cmd
429
+ cc = ENV["CC"] || RbConfig::CONFIG["CC"] || "gcc"
430
+ return cc.dup
431
+ end
432
+
433
+ def make_cmd
434
+ m = ENV['MAKE'] || ENV['make'] || 'make'
435
+ return m.dup
436
+ end
437
+ end