Class: ActionDispatch::Routing::Mapper::Resources::Resource

Inherits:
Object
  • Object
show all
Defined in:
actionpack/lib/action_dispatch/routing/mapper.rb

Overview

:nodoc:

Direct Known Subclasses

SingletonResource

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(entities, options = {}) ⇒ Resource

Returns a new instance of Resource.


1010
1011
1012
1013
1014
1015
1016
1017
1018
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1010

def initialize(entities, options = {})
  @name       = entities.to_s
  @path       = (options[:path] || @name).to_s
  @controller = (options[:controller] || @name).to_s
  @as         = options[:as]
  @param      = (options[:param] || :id).to_sym
  @options    = options
  @shallow    = false
end

Instance Attribute Details

#controllerObject (readonly)

Returns the value of attribute controller


1008
1009
1010
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1008

def controller
  @controller
end

#optionsObject (readonly)

Returns the value of attribute options


1008
1009
1010
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1008

def options
  @options
end

#paramObject (readonly)

Returns the value of attribute param


1008
1009
1010
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1008

def param
  @param
end

#pathObject (readonly) Also known as: collection_scope

Returns the value of attribute path


1008
1009
1010
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1008

def path
  @path
end

Instance Method Details

#actionsObject


1024
1025
1026
1027
1028
1029
1030
1031
1032
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1024

def actions
  if only = @options[:only]
    Array(only).map(&:to_sym)
  elsif except = @options[:except]
    default_actions - Array(except).map(&:to_sym)
  else
    default_actions
  end
end

#collection_nameObject

Checks for uncountable plurals, and appends “_index” if the plural and singular form are the same.


1050
1051
1052
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1050

def collection_name
  singular == plural ? "#{plural}_index" : plural
end

#default_actionsObject


1020
1021
1022
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1020

def default_actions
  [:index, :create, :new, :show, :update, :destroy, :edit]
end

#member_scopeObject Also known as: shallow_scope


1060
1061
1062
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1060

def member_scope
  "#{path}/:#{param}"
end

#nameObject


1034
1035
1036
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1034

def name
  @as || @name
end

#nested_paramObject


1070
1071
1072
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1070

def nested_param
  :"#{singular}_#{param}"
end

#nested_scopeObject


1074
1075
1076
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1074

def nested_scope
  "#{path}/:#{nested_param}"
end

#new_scope(new_path) ⇒ Object


1066
1067
1068
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1066

def new_scope(new_path)
  "#{path}/#{new_path}"
end

#pluralObject


1038
1039
1040
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1038

def plural
  @plural ||= name.to_s
end

#resource_scopeObject


1054
1055
1056
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1054

def resource_scope
  { :controller => controller }
end

#shallow=(value) ⇒ Object


1078
1079
1080
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1078

def shallow=(value)
  @shallow = value
end

#shallow?Boolean

Returns:

  • (Boolean)

1082
1083
1084
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1082

def shallow?
  @shallow
end

#singularObject Also known as: member_name


1042
1043
1044
# File 'actionpack/lib/action_dispatch/routing/mapper.rb', line 1042

def singular
  @singular ||= name.to_s.singularize
end