gss 0.0.5

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 (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