Class: PactBroker::Api::Decorators::BaseDecorator

Inherits:
Roar::Decorator
  • Object
show all
Includes:
FormatDateTime, PactBrokerUrls, Roar::JSON::HAL, Roar::JSON::HAL::Links
Defined in:
lib/pact_broker/api/decorators/base_decorator.rb

Direct Known Subclasses

BasicPacticipantDecorator, BranchDecorator, BranchVersionDecorator, DasherizedVersionDecorator, DeployedVersionDecorator, DeployedVersionsDecorator, DryValidationErrorsProblemJsonDecorator, EmbeddedBranchVersionDecorator, EmbeddedDeployedVersionDecorator, EmbeddedEnvironmentDecorator, EmbeddedErrorProblemJsonDecorator, EmbeddedLabelDecorator, EmbeddedPacticipantDecorator, EmbeddedReleasedVersionDecorator, EmbeddedTagDecorator, EmbeddedVersionDecorator, EnvironmentDecorator, EnvironmentsDecorator, ExtendedPactDecorator::TagDecorator, ExtendedVerificationDecorator::TagDecorator, IntegrationDecorator, IntegrationsDecorator, LabelDecorator, NonEmbeddedPacticipantCollectionDecorator, NoticesDecorator, PactCollectionDecorator, PactDecorator, PactDetailsDecorator, PactPacticipantDecorator, PactVersionDecorator, PactVersionsDecorator, PactWebhooksStatusDecorator, PacticipantBranchesDecorator, PacticipantDecorator, PacticipantsDecorator, PactsForVerificationQueryDecorator, ProviderPactsDecorator, PublishContractDecorator, PublishContractsDecorator, PublishContractsResultsDecorator, ReleasedVersionDecorator, ReleasedVersionsDecorator, TagDecorator, TaggedPactVersionsDecorator, TriggeredWebhookDecorator, TriggeredWebhooksDecorator, VerifiablePactDecorator, VerifiablePactsDecorator, VerificationDecorator, VerificationDecorator::TagDecorator, VerificationSummaryDecorator, VersionDecorator, VersionsDecorator, WebhookDecorator, WebhookDecorator::WebhookEventDecorator, WebhookExecutionResultDecorator, WebhookExecutionResultDecorator::ErrorDecorator, WebhookExecutionResultDecorator::HTTPRequestDecorator, WebhookExecutionResultDecorator::HTTPResponseDecorator, WebhookRequestTemplateDecorator, WebhooksDecorator

Constant Summary

Constants included from FormatDateTime

FormatDateTime::DATE_TIME_CLASS

Constants included from Pacts::Metadata

Pacts::Metadata::MAPPINGS

Class Method Summary collapse

Methods included from FormatDateTime

call, #format_date_time

Methods included from PactBrokerUrls

#append_query_if_present, #badge_url_for_latest_pact, #branch_url, #branch_version_url, #branch_versions_url, #consumer_webhooks_url, #currently_deployed_versions_for_environment_url, #currently_supported_versions_for_environment_url, #dashboard_url_for_integration, #decode_pact_metadata, #deployed_version_url, #deployed_versions_for_version_and_environment_url, #encode_metadata, #environment_url, #environments_url, #group_url, #hal_browser_url, #integration_url, #label_url, #labels_url, #latest_pact_url, #latest_pacts_url, #latest_tagged_pact_url, #latest_untagged_pact_url, #latest_verification_for_pact_url, #latest_verifications_for_consumer_version_url, #latest_version_for_branch_url, #latest_version_url, #matrix_badge_url_for_selectors, #matrix_for_pact_url, #matrix_for_pacticipant_version_url, #matrix_url, #matrix_url_from_params, #new_verification_url, #pact_triggered_webhooks_url, #pact_url, #pact_url_from_params, #pact_version_url, #pact_version_url_with_metadata, #pact_version_url_with_webhook_metadata, #pact_version_with_consumer_version_metadata_url, #pact_versions_for_branch_url, #pact_versions_url, #pacticipant_branches_url, #pacticipant_url, #pacticipant_url_from_params, #pacticipants_url, #pacticipants_with_label_url, #previous_distinct_diff_url, #previous_distinct_pact_version_url, #provider_webhooks_url, #record_undeployment_url, #released_version_url, #released_versions_for_version_and_environment_url, #tag_url, #tagged_pact_versions_url, #tags_url, #templated_branch_version_url_for_pacticipant, #templated_can_i_deploy_badge_url, #templated_can_i_deploy_branch_to_environment_badge_url, #templated_can_i_deploy_url, #templated_diff_url, #templated_label_url_for_pacticipant, #templated_tag_url_for_pacticipant, #templated_version_url_for_pacticipant, #triggered_webhook_logs_url, #url_encode, #verification_publication_url, #verification_triggered_webhooks_url, #verification_url, #verification_url_from_params, #version_url, #version_url_from_params, #versions_url, #webhook_execution_url, #webhook_url, #webhooks_for_consumer_and_provider_url, #webhooks_for_pact_url, #webhooks_status_url, #webhooks_url

Methods included from Logging

included, #log_error, #log_with_tag, #measure_info

Methods included from Pacts::Metadata

#build_metadata_for_consumer_version_number, #build_metadata_for_latest_pact, #build_metadata_for_pact_for_verification, #build_metadata_for_webhook_triggered_by_pact_publication, #parse_hash, #parse_metadata, #parse_object

Class Method Details

.camelize_property_namesObject

Call this method to automatically camelize property names without having to define an :as each time.



21
22
23
# File 'lib/pact_broker/api/decorators/base_decorator.rb', line 21

def self.camelize_property_names
  @camelize = true
end

.eager_load_associationsArray<Symbol>

Returns the names of the model associations to eager load for use with this decorator. The default implementation attempts to do an “auto detect” of the associations. For single item decorators, it attempts to identify the attributes that are themselves models. For collection decorators, it delegates to the eager_load_associations method of the single item decorator used to decorate the collection.

The “auto detect” logic can only go so far. It cannot identify when a child object needs its own child object(s) to render the attribute. This method should be overridden when the “auto detect” logic cannot identify the correct associations to load. eg VersionDecorator

Returns:

  • (Array<Symbol>)


48
49
50
51
52
53
54
# File 'lib/pact_broker/api/decorators/base_decorator.rb', line 48

def self.eager_load_associations
  if is_collection_resource?
    collection_item_decorator_class.eager_load_associations
  else
    embedded_and_collection_attribute_names
  end
end

.property(name, options = {}, &block) ⇒ Object

Overrides the default property method to add a camelised :as option when camelize_property_names has been called for this decorator.



28
29
30
31
32
33
34
35
# File 'lib/pact_broker/api/decorators/base_decorator.rb', line 28

def self.property(name, options={}, &block)
  if options.delete(:camelize) || @camelize
    camelized_name = name.to_s.camelcase(false).to_sym
    super(name, { as: camelized_name }.merge(options), &block)
  else
    super
  end
end