Rakefile in rack-swagger-0.0.1 vs Rakefile in rack-swagger-0.0.6
- old
+ new
@@ -1,2 +1,32 @@
require "bundler/gem_tasks"
+require 'yaml'
+require 'httpclient'
+require 'json'
+task default: [:swagger_ui]
+
+desc "Update swagger-ui distribution files if they have changed."
+task swagger_ui: ["swagger-ui", :update_swagger_ui]
+
+directory "swagger-ui"
+
+task :update_swagger_ui do
+ client = HTTPClient.new
+ res = client.get('https://codeload.github.com/wordnik/swagger-ui/legacy.tar.gz/master', follow_redirect: true)
+ raise "Github API returned #{res.inspect}" if res.status != 200
+
+ # pull down swagger-ui mainline
+ cd "swagger-ui"
+ tar = res.content
+ File.open("master.tar.gz", "w+") { |f| f << tar }
+ sh("tar xvf master.tar.gz --include '*swagger-ui*/dist*' --strip-components 1")
+ cd ".."
+
+ # apply branding
+ puts `cat lib/rack/swagger/rentpath/rentpath.diff | patch -p1`
+ cp "lib/rack/swagger/rentpath/logo_small.png", "swagger-ui/dist/images/logo_small.png"
+
+ # replace petstore with real docs
+ index_page = File.read("swagger-ui/dist/index.html")
+ File.open("swagger-ui/dist/index.html", "w+") { |f| f << index_page.gsub("http://petstore.swagger.wordnik.com/api/api-docs", "api-docs") }
+end