Class: Middleman::Spreadsheet::Extension
- Inherits:
-
Extension
- Object
- Extension
- Middleman::Spreadsheet::Extension
- Defined in:
- lib/middleman/spreadsheet/extension.rb
Instance Method Summary collapse
-
#initialize(app, options_hash = {}, &block) ⇒ Extension
constructor
A new instance of Extension.
Constructor Details
#initialize(app, options_hash = {}, &block) ⇒ Extension
Returns a new instance of Extension.
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/middleman/spreadsheet/extension.rb', line 16 def initialize(app, ={}, &block) super require "google_drive" require "sheet_wrap" session = drive_session() if .spreadsheet_key spreadsheet = session.spreadsheet_by_key(.spreadsheet_key) elsif .spreadsheet_url spreadsheet = session.spreadsheet_by_url(.spreadsheet_url) elsif .spreadsheet_title spreadsheet = session.spreadsheet_by_title(.spreadsheet_title) end raise SpreadsheetNotFound, "No spreadsheet specified" unless spreadsheet data = spreadsheet.worksheets.each_with_object({}) do |worksheet, hash| sheet_wrap = SheetWrap.wrap(worksheet) hash[sheet_wrap.title.to_sym] = sheet_wrap.rows.map(&:to_h) end @app.data.store(.data_name.to_sym, data) end |