Class: Opencdd::Parcel::Writer

Inherits:
Object
  • Object
show all
Defined in:
lib/opencdd/parcel/writer.rb

Defined Under Namespace

Classes: BuiltSheet

Constant Summary collapse

DEFAULT_PROJECT_ID =
"LOCAL"
DEFAULT_SOURCE_LANGUAGE =
"en"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(database) ⇒ Writer

Returns a new instance of Writer.



15
16
17
# File 'lib/opencdd/parcel/writer.rb', line 15

def initialize(database)
  @database = database
end

Instance Attribute Details

#databaseObject (readonly)

Returns the value of attribute database.



13
14
15
# File 'lib/opencdd/parcel/writer.rb', line 13

def database
  @database
end

Instance Method Details

#write(target, parcel_id:, project_id: DEFAULT_PROJECT_ID, source_language: DEFAULT_SOURCE_LANGUAGE, translation_languages: [], sheet_types: :all, selector: nil) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/opencdd/parcel/writer.rb', line 19

def write(target, parcel_id:, project_id: DEFAULT_PROJECT_ID,
          source_language: DEFAULT_SOURCE_LANGUAGE, translation_languages: [],
          sheet_types: :all, selector: nil)
  package = build_package(
    parcel_id: parcel_id, project_id: project_id,
    source_language: source_language, translation_languages: translation_languages,
    sheet_types: sheet_types, selector: selector,
  )
  serialize(package, target)
  target
end

#write_sheet(sheet, entities, target, source_language: DEFAULT_SOURCE_LANGUAGE) ⇒ Object



31
32
33
34
35
36
37
38
39
40
# File 'lib/opencdd/parcel/writer.rb', line 31

def write_sheet(sheet, entities, target, source_language: DEFAULT_SOURCE_LANGUAGE)
  emitter = SheetEmitter.new(source_language: source_language)
  rows = emitter.emit(sheet, entities)
  package = Axlsx::Package.new
  package.workbook.add_worksheet(name: sheet.name) do |ws|
    rows.each { |row| ws.add_row(row) }
  end
  serialize(package, target)
  target
end