diff options
| author | 2017-06-12 03:37:11 -0400 | |
|---|---|---|
| committer | 2017-06-12 03:37:11 -0400 | |
| commit | 8280a21a23d44aa90177e2bc041d0b8dc8556f4b (patch) | |
| tree | dadef7ee085c0e990a5070bd41b6a5b98c97f4fd /examples | |
Import Upstream version 2.7.1upstream/2.7.1
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/roo_soap_client.rb | 50 | ||||
| -rw-r--r-- | examples/roo_soap_server.rb | 26 | ||||
| -rw-r--r-- | examples/write_me.rb | 31 |
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 |
