#!/usr/bin/env ruby require 'tmpdir' require 'json' puts 'running post-commit hook' BOWER = JSON.parse File.read 'bower.json' def commit @commit ||= `git log | head -1 | cut -d' ' -f2` end # get version of library from bower.json def bower_version(library) BOWER["dependencies"][library] || BOWER["devDependencies"][library] end # return the base url for a library from bower / github def library_base_url(library) # TODO: figure out how to clean the cache so we can use `bower --offline` (@library_base_url ||= {})[library] ||= JSON.parse(`bower lookup #{library} --json`)["url"] .sub(/^git:\/\/github.com/, 'https://rawgithub.com') .sub(/\.git$/, "/#{bower_version(library).sub(/~/, '')}/") end # transform script ref to bower URL def script_url(src) if src =~ /\/bower_components\// parts = src.split('/bower_components/')[1].split('/') library_base_url(parts[0]) + parts.drop(1).join('/') else src.sub(/^\.\.\/\.\./, 'https://rawgithub.com/akatov/angular-contenteditable/master') end end # link href # script src def replace_script_and_link(contents) ["script src", "link href"].reduce(contents) do |c, tag| c.gsub /#{tag}="([^"]*)"/ do "#{tag}=\"#{script_url($1)}\"" end end end def index_header < angular-contenteditable

angular contenteditable

examples