photomix/resources/DummyHTML/css/joshuaclayton-blueprint-css.../lib/blueprint/namespace.rb

38 lines
1.1 KiB
Ruby
Executable File

module Blueprint
class Namespace
# Read html to string, remove namespace if any,
# set the new namespace, and update the test file.
def initialize(path, namespace)
html = File.path_to_string(path)
remove_current_namespace(html)
add_namespace(html, namespace)
File.string_to_file(html, path)
end
# adds namespace to BP classes in a html file
def add_namespace(html, namespace)
html.gsub!(/(class=")([a-zA-Z0-9\-_ ]*)(")/) do |m|
classes = m.to_s.split('"')[1].split(' ')
classes.map! { |c| c = namespace + c }
'class="' + classes.join(' ') + '"'
end
html
end
# removes a namespace from a string of html
def remove_current_namespace(html)
current = current_namespace(html)
html.gsub!(current, '')
html
end
# returns current namespace in test files
# based on container class
def current_namespace(html)
html =~ /class="([\S]+)container/
current_namespace = $1 if $1
current_namespace || ''
end
end
end