spreadsheet_report 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/spreadsheet_report.rb +50 -0
  2. metadata +64 -0
@@ -0,0 +1,50 @@
1
+ require 'google_spreadsheet'
2
+
3
+ class SpreadsheetReport
4
+
5
+ def initialize(username, password, spreadsheet_key, &block)
6
+ @session = GoogleSpreadsheet.login(username, password)
7
+ @spreadsheet = @session.spreadsheet_by_key(spreadsheet_key)
8
+
9
+ yield(self)
10
+ end
11
+
12
+ def worksheet(name, query)
13
+ worksheet = @spreadsheet.worksheets.find { |ws| ws.title == name }
14
+
15
+ # create the worksheet if we didn't find it
16
+ if worksheet != nil
17
+ worksheet.delete
18
+ worksheet = nil
19
+ end
20
+
21
+
22
+
23
+ # run the query
24
+ result = ActiveRecord::Base.connection.select_all(query)
25
+
26
+ # resize the worksheet
27
+ rows = result.size + 1
28
+ keys = []
29
+ if result.size > 0
30
+ keys = result[0].keys
31
+ end
32
+ cols = keys.size
33
+ worksheet = @spreadsheet.add_worksheet(name, result.size + 1, keys.size)
34
+
35
+ # add the title cells
36
+ keys.each_with_index do |key, index|
37
+ worksheet[1, index + 1] = key
38
+ end
39
+
40
+ current_row = 2
41
+ result.each do |row_data|
42
+ keys.each_with_index do |key, index|
43
+ worksheet[current_row, index + 1] = row_data[key]
44
+ end
45
+ current_row += 1
46
+ end
47
+
48
+ worksheet.save
49
+ end
50
+ end
metadata ADDED
@@ -0,0 +1,64 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: spreadsheet_report
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Gnoso, Inc.
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-09-01 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: commondream-google-spreadsheet-ruby
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.0.4
24
+ version:
25
+ description:
26
+ email: alan@gnoso.com
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files: []
32
+
33
+ files:
34
+ - lib/spreadsheet_report.rb
35
+ has_rdoc: true
36
+ homepage: http://www.gnoso.com
37
+ licenses: []
38
+
39
+ post_install_message:
40
+ rdoc_options: []
41
+
42
+ require_paths:
43
+ - lib
44
+ required_ruby_version: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: "0"
49
+ version:
50
+ required_rubygems_version: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: "0"
55
+ version:
56
+ requirements: []
57
+
58
+ rubyforge_project:
59
+ rubygems_version: 1.3.5
60
+ signing_key:
61
+ specification_version: 3
62
+ summary: Simple tool for running queries against ActiveRecord and putting them into a Google Spreadsheet.
63
+ test_files: []
64
+