Sha256: 54b485bbeb1049ea57cb64d5f224d62be290d6292a7a2be0fe0d321585d54bfb

Contents?: true

Size: 1.09 KB

Versions: 33

Compression:

Stored size: 1.09 KB

Contents

class AwesomeTranslations::Group
  attr_reader :handler, :id, :data

  def self.find_by_handler_and_id(handler, id)
    handler.groups.each do |group|
      return group if group.id == id.to_s
    end

    raise ActiveRecord::RecordNotFound, "Group not found by handler and ID: '#{handler.name}', '#{id}'."
  end

  def initialize(args)
    @handler = args.fetch(:handler)
    @id = args.fetch(:id)
    @data = args[:data] || {}
    raise "Invalid ID: #{@id}" unless @id.present?
  end

  def translations(args = {})
    translations_list = @handler.translations_for_group(self)

    args.each do |key, value|
      if key == :finished
        translations_list = translations_list.select(&:finished?) if value
      elsif key == :unfinished
        translations_list = translations_list.select(&:unfinished?) if value
      else
        raise "Unknown key: #{key}"
      end
    end

    translations_list
  end

  def to_param
    id
  end

  def name
    @data[:name].presence || id.presence
  end

  def to_s
    "<AwesomeTranslations::Group id=\"#{@id}\" name=\"#{name}\">"
  end

  def inspect
    to_s
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
awesome_translations-0.0.58 app/models/awesome_translations/group.rb
awesome_translations-0.0.57 app/models/awesome_translations/group.rb
awesome_translations-0.0.56 app/models/awesome_translations/group.rb
awesome_translations-0.0.55 app/models/awesome_translations/group.rb
awesome_translations-0.0.54 app/models/awesome_translations/group.rb
awesome_translations-0.0.53 app/models/awesome_translations/group.rb
awesome_translations-0.0.52 app/models/awesome_translations/group.rb
awesome_translations-0.0.51 app/models/awesome_translations/group.rb
awesome_translations-0.0.50 app/models/awesome_translations/group.rb
awesome_translations-0.0.49 app/models/awesome_translations/group.rb
awesome_translations-0.0.48 app/models/awesome_translations/group.rb
awesome_translations-0.0.47 app/models/awesome_translations/group.rb
awesome_translations-0.0.46 app/models/awesome_translations/group.rb
awesome_translations-0.0.45 app/models/awesome_translations/group.rb
awesome_translations-0.0.44 app/models/awesome_translations/group.rb
awesome_translations-0.0.43 app/models/awesome_translations/group.rb
awesome_translations-0.0.42 app/models/awesome_translations/group.rb
awesome_translations-0.0.41 app/models/awesome_translations/group.rb
awesome_translations-0.0.40 app/models/awesome_translations/group.rb
awesome_translations-0.0.39 app/models/awesome_translations/group.rb