class RailsAutobots::RewriteRuleset
Public Class Methods
new()
click to toggle source
# File lib/rails_autobots/rewrite_ruleset.rb, line 4 def initialize @rulesets = [] end
Public Instance Methods
add(environment_name, rewrite_function)
click to toggle source
# File lib/rails_autobots/rewrite_ruleset.rb, line 8 def add(environment_name, rewrite_function) @rulesets << RailsAutobots::EnvironmentRewriter.new(environment_name, rewrite_function) end
environment_nodes(d)
click to toggle source
# File lib/rails_autobots/rewrite_ruleset.rb, line 32 def environment_nodes(d) d.css("meta[name$='/config/environment']") end
rewrite(markup)
click to toggle source
# File lib/rails_autobots/rewrite_ruleset.rb, line 12 def rewrite(markup) d = Nokogiri::HTML(markup) environments = environment_nodes(d) any_rewritten = false environments.each do |e| name = strip_environment_suffix(e["name"]) content = JSON.parse(CGI.unescape(e["content"])) original_content = content.deep_dup @rulesets.each { |r| r.process(name, content) } if original_content != content any_rewritten = true e["content"] = CGI.escape(content.to_json) end end any_rewritten ? d.to_html : markup end
strip_environment_suffix(s)
click to toggle source
# File lib/rails_autobots/rewrite_ruleset.rb, line 36 def strip_environment_suffix(s) i = s.index("/") s[0...i] end