module Sinatra::API::ResourceAliases
Attributes
resource_aliases[RW]
Public Class Methods
extended(base)
click to toggle source
# File lib/sinatra/api/resource_aliases.rb, line 6 def self.extended(base) base.resource_aliases = {} base.on :resource_located, &method(:export_alias) end
Private Class Methods
export_alias(resource, name)
click to toggle source
# File lib/sinatra/api/resource_aliases.rb, line 33 def self.export_alias(resource, name) base = Sinatra::API base.aliases_for(name).each do |resource_alias| base.instance.instance_variable_set("@#{resource_alias}", resource) end end
Public Instance Methods
alias_resource(original, resource_alias)
click to toggle source
# File lib/sinatra/api/resource_aliases.rb, line 11 def alias_resource(original, resource_alias) key, resource_alias = original.to_sym, resource_alias.to_s self.resource_aliases[key] ||= [] return if self.resource_aliases[key].include?(resource_alias) return if key.to_s == resource_alias self.resource_aliases[key] << resource_alias # logger.debug "API resource #{original} is now aliased as #{resource_alias}" end
aliases_for(resource)
click to toggle source
# File lib/sinatra/api/resource_aliases.rb, line 23 def aliases_for(resource) self.resource_aliases[resource.to_sym] || [] end
reset_aliases!()
click to toggle source
# File lib/sinatra/api/resource_aliases.rb, line 27 def reset_aliases! self.resource_aliases = {} end