class ConfigurationPageFacade

Public Class Methods

ApplyConfigurations(new_conf) click to toggle source
# File lib/facades/configuration_page_facade.rb, line 62
def self.ApplyConfigurations(new_conf)
  @configurations_hash.each do |rule, configurations|
    configurations.each do |configuration|

      case configuration.displayfield
      when DisplayField[:CheckBox]
        if new_conf.has_key?(configuration.id)
          configuration.value = true
        else
          configuration.value = false
        end

      when DisplayField[:SelectBox]
        configuration.value = new_conf[configuration.id].split(/\r?\n/).delete_if(&:empty?)

      when DisplayField[:RegexBox]
        configuration.value = if new_conf[configuration.id].empty? then new_conf[configuration.id] else Regexp.new new_conf[configuration.id] end
      else
        configuration.value = new_conf[configuration.id]
      end

    end
  end
end
AssemblePage() click to toggle source
# File lib/facades/configuration_page_facade.rb, line 7
def self.AssemblePage
  @configurations_hash = ConfigurationVisitor.Visit

  final_html = self.Title
  final_html += self.ConfigurationsForm
  return final_html
end

Private Class Methods

ConfigurationsForm() click to toggle source
# File lib/facades/configuration_page_facade.rb, line 19
def self.ConfigurationsForm
  final_html = "<form action=\"/configuration\" method=\"post\">\n"
  @configurations_hash.each do |rule, configurations|
    final_html += self.RuleConfigurations(rule,configurations)
  end
  final_html += "<input type=\"submit\" value=\"Submit\">\n"
  final_html += "</form>\n"

  return final_html
end
Input(configuration) click to toggle source
# File lib/facades/configuration_page_facade.rb, line 40
def self.Input(configuration)
  return_value = "<label for=\"#{configuration.class.name}\">#{configuration.name}:</label>\n"

  case configuration.displayfield
  when DisplayField[:CheckBox]
    return_value += "<input type=\"checkbox\" id=\"#{configuration.id}\" name=\"#{configuration.id}\""+if configuration.value then "checked" else "" end+"><br>\n"

  when DisplayField[:SelectBox]
    return_value += "<br><textarea id=\"#{configuration.id}\" name=\"#{configuration.id}\" rows=\"#{configuration.value.length()+2}\">\n"
    configuration.value.each do |option|
      return_value+="#{option}\n"
    end
    return_value += "</textarea>"
  when DisplayField[:TextBox], DisplayField[:RegexBox]
    return_value += "<input type=\"text\" id=\"#{configuration.id}\" name=\"#{configuration.id}\" value=\"#{configuration.value.to_s}\" size=\"#{configuration.value.to_s.length()}\"><br>\n"
  end

  return_value += "<p style=\"color:gray\">#{configuration.description}</p>\n<br>\n"

  return return_value
end
RuleConfigurations(rule,configurations) click to toggle source
# File lib/facades/configuration_page_facade.rb, line 30
def self.RuleConfigurations(rule,configurations)
  final_html = "<h2>#{rule.name}</h2>\n"

  configurations.each do |configuration|
    final_html += self.Input(configuration)
  end

  return final_html
end
Title() click to toggle source
# File lib/facades/configuration_page_facade.rb, line 15
def self.Title
  return "<h1>Configurations Page</h1>\n"
end