module URL::Classer::ClassMethods

Public Instance Methods

allowed_params() click to toggle source
# File lib/url/classer.rb, line 5
def allowed_params
  @allowed_params ||= []
end

Private Instance Methods

allow_changed(*args) click to toggle source
# File lib/url/classer.rb, line 9
def allow_changed *args
  args.flatten!
  def_delegators :@url, :subdomains if args.include?(:subdomain)
  def_delegators :@url, :subdomain  if args.include?(:subdomains)
  def_delegators :@url, :[], :[]=   if args.include?(:params)
  def_delegators :@url, *args
end
allow_params(*args) click to toggle source
# File lib/url/classer.rb, line 17
def allow_params *args
  args.flatten.each do |arg|
    arg = arg.to_sym
    self.allowed_params << arg
    define_method arg do
      @url.params[arg]
    end
    
    define_method "#{arg}=" do |val|
      @url.params[arg] = val
    end
  end
end
overrideable_path_val(v) click to toggle source
# File lib/url/classer.rb, line 31
def overrideable_path_val v
  v = v.to_s.downcase
  define_method v do
    @var_map[v]
  end
  
  define_method "#{v}=" do |val|
    @var_map[v] = val
    
    p = self.class.const_get(:URL).path.dup
    
    @var_map.each do |key,value|
      p.gsub!("__#{key}__", value.to_s)
    end
    
    @url.path = p
    
    val
  end
end