Sha256: d880a84d7d5f42f461a9c3079acbafcbc3e0328e112852b39f230c9ce8412255

Contents?: true

Size: 831 Bytes

Versions: 2

Compression:

Stored size: 831 Bytes

Contents

module Rosetta
  class Translated::Create
    attr_reader :content

    def initialize(record, locale, content)
      @record = record
      @locale = locale
      @content = content
    end

    def save
      @record.public_send(:"#{@locale.code}_translation=", translation)
    end

    def translated_version
      @translated_version ||= find_or_build_translated_version
    end

    def translation
      @record.public_send(:"build_#{@locale.code}_translation", to: translated_version)
    end

    private

    def find_or_build_translated_version
      find_translated_version || build_translated_version
    end

    def find_translated_version
      TextEntry.find_by(locale: @locale, content: @content)
    end

    def build_translated_version
      TextEntry.new(locale: @locale, content: @content)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rosetta-rails-0.2.1 lib/rosetta/translated/create.rb
rosetta-rails-0.2.0 lib/rosetta/translated/create.rb