Module: RubyLokaliseApi::Utils::AttributeHelpers
- Included in:
- Collections::Base, Collections::Base, Resources::Base, Resources::Base
- Defined in:
- lib/ruby_lokalise_api/utils/attribute_helpers.rb
Constant Summary collapse
- UNIFIED_RESOURCES =
%w[comment language].freeze
Instance Method Summary collapse
-
#attributes_for(klass) ⇒ Array<String>
Loads attributes for the given resource based on its name.
-
#data_key_for(model_class:, plural: false, collection: false) ⇒ String
Returns the name of the API resource for the given class.
-
#id_key_for(model_class) ⇒ String
Returns key used to determine resource id (for example ‘user_id` or `project_id`).
Instance Method Details
#attributes_for(klass) ⇒ Array<String>
Loads attributes for the given resource based on its name
51 52 53 54 55 56 |
# File 'lib/ruby_lokalise_api/utils/attribute_helpers.rb', line 51 def attributes_for(klass) @attributes ||= YAML.load_file(File.('../data/attributes.yml', __dir__)).freeze name = unify klass.name.snakecase @attributes[name] end |
#data_key_for(model_class:, plural: false, collection: false) ⇒ String
Returns the name of the API resource for the given class. Most class names correspond to resource names (eg, ‘Project`, `Team`) but some may differ (`ProjectComment` corresponds to `Comment` resource). The resource name is in lowercase, with underscores as separators. Some resources also have different pluralization rules. For example, “CustomTranslationStatus” is “CustomTranslationStatuses” (-es postfix). To address that, we try to fetch `DATA_KEY_PLURAL` set for the individual class.
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/ruby_lokalise_api/utils/attribute_helpers.rb', line 21 def data_key_for(model_class:, plural: false, collection: false) data_key_plural = get_key( name: 'DATA_KEY_PLURAL', model_class: model_class, collection: true, strict: true ) return data_key_plural if collection && data_key_plural data_key = get_key name: 'DATA_KEY', model_class: model_class, collection: collection return data_key unless plural "#{data_key}s" end |
#id_key_for(model_class) ⇒ String
Returns key used to determine resource id (for example ‘user_id` or `project_id`). Most ids corresponds to resources’ class names, but some may differ (for instance, ‘Contributor` has `user_id` attribute).
44 45 46 |
# File 'lib/ruby_lokalise_api/utils/attribute_helpers.rb', line 44 def id_key_for(model_class) get_key name: 'ID_KEY', model_class: model_class end |