Sha256: 13f1dec5f4f1fea21dd7be1c54ef96635e0ccd6f73405567317adf291db6f4fc

Contents?: true

Size: 1.02 KB

Versions: 17

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module Decidim
  module Components
    # This class automatically names components for the given organization.
    # In order to do so, it uses the i18n keys of the component, fallback to English,
    # searching for the key `"decidim.components.<component name>.name"`
    #
    # This is intended to be used from the component seeds section.
    #
    # Examples:
    #
    #   Decidim::Component.create!(
    #     participatory_space: process,
    #     name: Decidim::Component::Namer.new(organization.available_locales, :my_component_name).i18n_name
    #     manifest_name: :my_component_name
    #   )
    class Namer
      def initialize(locales, component_name)
        @locales = locales
        @component_name = component_name
      end

      def i18n_name
        locales.inject({}) do |names, locale|
          names.update(locale => I18n.t("decidim.components.#{component_name}.name", locale:))
        end
      end

      private

      attr_reader :locales, :component_name
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc2 lib/decidim/components/namer.rb
decidim-core-0.30.0.rc1 lib/decidim/components/namer.rb
decidim-core-0.29.2 lib/decidim/components/namer.rb
decidim-core-0.28.5 lib/decidim/components/namer.rb
decidim-core-0.29.1 lib/decidim/components/namer.rb
decidim-core-0.28.4 lib/decidim/components/namer.rb
decidim-core-0.29.0 lib/decidim/components/namer.rb
decidim-core-0.28.3 lib/decidim/components/namer.rb
decidim-core-0.29.0.rc4 lib/decidim/components/namer.rb
decidim-core-0.29.0.rc3 lib/decidim/components/namer.rb
decidim-core-0.29.0.rc2 lib/decidim/components/namer.rb
decidim-core-0.29.0.rc1 lib/decidim/components/namer.rb
decidim-core-0.28.2 lib/decidim/components/namer.rb
decidim-core-0.28.1 lib/decidim/components/namer.rb
decidim-core-0.28.0 lib/decidim/components/namer.rb
decidim-core-0.28.0.rc5 lib/decidim/components/namer.rb
decidim-core-0.28.0.rc4 lib/decidim/components/namer.rb