aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@ubuntu.com>2017-06-12 03:37:11 -0400
committerLibravatarUnit 193 <unit193@ubuntu.com>2017-06-12 03:37:11 -0400
commit8280a21a23d44aa90177e2bc041d0b8dc8556f4b (patch)
treedadef7ee085c0e990a5070bd41b6a5b98c97f4fd /examples
Import Upstream version 2.7.1upstream/2.7.1
Diffstat (limited to 'examples')
-rw-r--r--examples/roo_soap_client.rb50
-rw-r--r--examples/roo_soap_server.rb26
-rw-r--r--examples/write_me.rb31
3 files changed, 107 insertions, 0 deletions
diff --git a/examples/roo_soap_client.rb b/examples/roo_soap_client.rb
new file mode 100644
index 0000000..eb8b4e8
--- /dev/null
+++ b/examples/roo_soap_client.rb
@@ -0,0 +1,50 @@
+require 'soap/rpc/driver'
+
+def ferien_fuer_region(proxy, region, year = nil)
+ proxy.first_row.upto(proxy.last_row) do |row|
+ if proxy.cell(row, 2) == region
+ jahr = proxy.cell(row, 1).to_i
+ if year.nil? || jahr == year
+ bis_datum = proxy.cell(row, 5)
+ if DateTime.now > bis_datum
+ print '('
+ end
+ print jahr.to_s + ' '
+ print proxy.cell(row, 2) + ' '
+ print proxy.cell(row, 3) + ' '
+ print proxy.cell(row, 4).to_s + ' '
+ print bis_datum.to_s + ' '
+ print (proxy.cell(row, 6) || '') + ' '
+ if DateTime.now > bis_datum
+ print ')'
+ end
+ puts
+ end
+ end
+ end
+end
+
+proxy = SOAP::RPC::Driver.new('http://localhost:12321', 'spreadsheetserver')
+proxy.add_method('cell', 'row', 'col')
+proxy.add_method('officeversion')
+proxy.add_method('last_row')
+proxy.add_method('last_column')
+proxy.add_method('first_row')
+proxy.add_method('first_column')
+proxy.add_method('sheets')
+proxy.add_method('set_default_sheet', 's')
+proxy.add_method('ferien_fuer_region', 'region')
+
+sheets = proxy.sheets
+proxy.set_default_sheet(sheets.first)
+
+puts "first row: #{proxy.first_row}"
+puts "first column: #{proxy.first_column}"
+puts "last row: #{proxy.last_row}"
+puts "last column: #{proxy.last_column}"
+puts "cell: #{proxy.cell('C', 8)}"
+puts "cell: #{proxy.cell('F', 12)}"
+puts "officeversion: #{proxy.officeversion}"
+puts 'Berlin:'
+
+ferien_fuer_region(proxy, 'Berlin')
diff --git a/examples/roo_soap_server.rb b/examples/roo_soap_server.rb
new file mode 100644
index 0000000..0ef6477
--- /dev/null
+++ b/examples/roo_soap_server.rb
@@ -0,0 +1,26 @@
+require 'roo'
+require 'soap/rpc/standaloneServer'
+
+NS = 'spreadsheetserver' # name of your service = namespace
+class Server2 < SOAP::RPC::StandaloneServer
+ def on_init
+ spreadsheet = OpenOffice.new('./Ferien-de.ods')
+ add_method(spreadsheet, 'cell', 'row', 'col')
+ add_method(spreadsheet, 'officeversion')
+ add_method(spreadsheet, 'first_row')
+ add_method(spreadsheet, 'last_row')
+ add_method(spreadsheet, 'first_column')
+ add_method(spreadsheet, 'last_column')
+ add_method(spreadsheet, 'sheets')
+ # add_method(spreadsheet, 'default_sheet=', 's')
+ # method with '...=' did not work? alias method 'set_default_sheet' created
+ add_method(spreadsheet, 'set_default_sheet', 's')
+ end
+end
+
+PORT = 12_321
+puts "serving at port #{PORT}"
+svr = Server2.new('Roo', NS, '0.0.0.0', PORT)
+
+trap('INT') { svr.shutdown }
+svr.start
diff --git a/examples/write_me.rb b/examples/write_me.rb
new file mode 100644
index 0000000..422bdae
--- /dev/null
+++ b/examples/write_me.rb
@@ -0,0 +1,31 @@
+require 'roo'
+
+#-- create a new spreadsheet within your google-spreadsheets and paste
+#-- the 'key' parameter in the spreadsheet URL
+MAXTRIES = 1000
+print "what's your name? "
+my_name = gets.chomp
+print 'where do you live? '
+my_location = gets.chomp
+print 'your message? (if left blank, only your name and location will be inserted) '
+my_message = gets.chomp
+spreadsheet = Google.new('ptu6bbahNZpY0N0RrxQbWdw')
+spreadsheet.default_sheet = 'Sheet1'
+success = false
+MAXTRIES.times do
+ col = rand(10) + 1
+ row = rand(10) + 1
+ if spreadsheet.empty?(row, col)
+ if my_message.empty?
+ text = Time.now.to_s + ' ' + "Greetings from #{my_name} (#{my_location})"
+ else
+ text = Time.now.to_s + ' ' + "#{my_message} from #{my_name} (#{my_location})"
+ end
+ spreadsheet.set_value(row, col, text)
+ puts "message written to row #{row}, column #{col}"
+ success = true
+ break
+ end
+ puts "Row #{row}, column #{col} already occupied, trying again..."
+end
+puts "no empty cell found within #{MAXTRIES} tries" unless success