Module: KnuVerse::Knufactor::Helpers::ResourceClass
- Included in:
- Resource
- Defined in:
- lib/knuverse/knufactor/helpers/resource_class.rb
Overview
Simple helper class methods for Resource
Instance Method Summary collapse
-
#determine_getter_names(original_name, opts) ⇒ Array<Symbol>
Determine a list of names to use to access a resource entity attribute.
-
#determine_setter_names(original_name, opts) ⇒ Array<Symbol>
Determine a list of names to use to set a resource entity attribute.
-
#human ⇒ String
Produce a more human-readable representation of #i18n_key.
-
#i18n_key ⇒ String
(also: #singular_route_key)
A mock internationalization key based on the class name.
-
#immutable? ⇒ Boolean
Check if a resource class is immutable.
-
#param_key ⇒ Symbol
A symbolized version of #i18n_key.
-
#properties ⇒ Hash{Symbol => Hash}
All the properties defined for this Resource class.
-
#route_key ⇒ String
A route key for building URLs.
Instance Method Details
#determine_getter_names(original_name, opts) ⇒ Array<Symbol>
Determine a list of names to use to access a resource entity attribute
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 10 def determine_getter_names(original_name, opts) names = [] names << (opts[:type] == :boolean ? "#{original_name}?" : original_name) if opts[:as] Array(opts[:as]).each do |new_name| names << (opts[:type] == :boolean ? "#{new_name}?" : new_name) end end names.map(&:to_sym).uniq end |
#determine_setter_names(original_name, opts) ⇒ Array<Symbol>
Determine a list of names to use to set a resource entity attribute
25 26 27 28 29 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 25 def determine_setter_names(original_name, opts) names = ["#{original_name}="] names.concat Array(opts[:as]).map { |new_name| "#{new_name}=" } if opts[:as] names.map(&:to_sym).uniq end |
#human ⇒ String
ActiveRecord ActiveModel::Name compatibility method
Produce a more human-readable representation of #i18n_key
34 35 36 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 34 def human i18n_key.humanize end |
#i18n_key ⇒ String Also known as: singular_route_key
ActiveRecord ActiveModel::Name compatibility method
A mock internationalization key based on the class name
46 47 48 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 46 def i18n_key name.split('::').last.to_underscore end |
#immutable? ⇒ Boolean
Check if a resource class is immutable
39 40 41 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 39 def immutable? @immutable ||= false end |
#param_key ⇒ Symbol
ActiveRecord ActiveModel::Name compatibility method
A symbolized version of #i18n_key
55 56 57 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 55 def param_key i18n_key.to_sym end |
#properties ⇒ Hash{Symbol => Hash}
All the properties defined for this Resource class
61 62 63 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 61 def properties @properties ||= {} end |
#route_key ⇒ String
ActiveRecord ActiveModel::Name compatibility method
A route key for building URLs
68 69 70 |
# File 'lib/knuverse/knufactor/helpers/resource_class.rb', line 68 def route_key i18n_key.en.plural end |