Class: SalesClicExporter::Document::GoogleSpreadsheets

Inherits:
Base
  • Object
show all
Defined in:
lib/sales_clic_exporter/google_spreadsheets.rb

Overview

Describes a Google Spreadsheets document

Constant Summary collapse

Default_cell_index =

Par défaut on commence à écrire sur la seconde colone. A la différence de Excel, le premier index est 1 (au lieu de 0)

2
Extension =

Valeur qui va servir dans une route d’un controller à générer un document Google Spreadsheets

'google_spreadsheets'

Instance Method Summary collapse

Methods inherited from Base

#h_table, #line, #v_table, #write

Constructor Details

#initialize(filename, args = {}) ⇒ GoogleSpreadsheets

Returns a new instance of GoogleSpreadsheets.



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 17

def initialize(filename, args = {})
  # Cas username/password
  if args[:username] && args[:password]
    @username = args[:username]
    password  = args[:password]
    @google   = GoogleSpreadsheet.(@username, password)
  # Token passé en paramètre
  elsif args[:access_token]
    token     = args[:access_token]
    @google   = GoogleSpreadsheet.(token)
  elsif args.blank?
    @google   = GoogleSpreadsheet.saved_session
  else
    raise "Erreur lors de l'initialisation du module GoogleSpreadsheets"
  end

  @filename          = filename || "Export SalesClic"

  # Google Doc template, that contain styles
  @template_doc      = @google.spreadsheet_by_key(args[:google_doc_template_id]) if args[:google_doc_template_id]

  # If we can use a template we use it to create the file. Else we just create a new doc
  @doc               = @template_doc ? @template_doc.duplicate(@filename) : @google.create_spreadsheet(@filename)

  # Ligne en cours d'écriture, afin de récupérer le dernier index écrit
  @current_row_index = 1 # Attention on démarre à la ligne 1
  
  # Réglage du nom de la première feuille du classeur
  sheet.title        = @filename
end

Instance Method Details

#destroyObject

Suppression du document depuis Google Docs (vers la corbeille)



77
78
79
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 77

def destroy
  @doc.delete
end

#freezepaneObject

Freezepane factice



67
68
69
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 67

def freezepane
  self
end

#keyObject



86
87
88
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 86

def key
  @doc.key
end

#newline(size = nil) ⇒ Object

Rajout d’une ligne vide



59
60
61
62
63
64
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 59

def newline(size = nil)
  # Incrémentation du nombre de lignes dans le document
  @current_row_index += 1

  self
end

#permanent_destroyObject

Suppression du document depuis Google Docs (PERMANENTE)



82
83
84
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 82

def permanent_destroy
  @doc.delete(true)
end

#saveObject

Sauvegarde du contenu



72
73
74
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 72

def save
  sheet.save
end

#title_1(value) ⇒ Object

On ne définit pas les méthodes title_x comme Spreadsheet ne supporte pas les titres. Chaque méthode va en fait être utilisée comme une simple ligne. Les titres 1 et 2 commencent à la première colone, tandis que le 3 est aligné avec le reste du texte



97
98
99
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 97

def title_1(value)
  line(value, :index => 1)
end

#title_2(value) ⇒ Object



101
102
103
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 101

def title_2(value)
  line(value, :index => 1)
end

#title_3(value) ⇒ Object



105
106
107
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 105

def title_3(value)
  line(value, :index => Default_cell_index)
end

#urlObject



90
91
92
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 90

def url
  @doc.human_url
end

#worksheet_nameObject

Nom de la 1ère worksheet



54
55
56
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 54

def worksheet_name
  sheet.title
end

#worksheet_name=(name) ⇒ Object

Réglage du nom de la 1ère worksheet



49
50
51
# File 'lib/sales_clic_exporter/google_spreadsheets.rb', line 49

def worksheet_name=(name)
  sheet.title = name
end