rods 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/README +54 -6
  2. data/Rakefile +1 -1
  3. data/lib/rods.rb +27 -3
  4. data/rods.gemspec +1 -1
  5. metadata +3 -3
data/README CHANGED
@@ -14,10 +14,17 @@
14
14
  Licensed under the same terms as Ruby. No warranty is provided.
15
15
 
16
16
  = Changelog
17
+ * 0.6.2
18
+ * added style-attributes
19
+ * text-underline-style
20
+ * text-underline-width
21
+ * text-underline-color
22
+ cf. Example 0.6.2
17
23
  * 0.6.1
18
24
  * added new functions
19
25
  * insertTableBefore()
20
26
  * insertTableAfter()
27
+ cf. Example 0.6.1
21
28
  * 0.6.0
22
29
  * changed interface from
23
30
  * getNextRow, getPreviousRow, getNextCell, getPreviousCell to
@@ -37,12 +44,8 @@
37
44
  * logging set as default
38
45
 
39
46
  = Disclaimer
40
- At the time of this publishing and stage of development RODS just suits my personal needs
41
- * to provide an intuitively to use, purpose oriented interface for
42
- * automating most of the tasks I personally encountered so far.
43
47
 
44
- The code has not been tested on a wide variety of systems, languages or use cases yet.
45
- At the time of this writing the script 'example.rb' provided in commented version below proved to work for
48
+ The example code was tested on
46
49
  * Linux
47
50
  * Ubuntu 10.10 64-Bit (German)
48
51
  * OpenOffice.org 3.2 (German)
@@ -276,6 +279,51 @@
276
279
  end
277
280
  end
278
281
 
282
+ = Example for additions in 0.6.1
283
+
284
+ #!/usr/bin/ruby
285
+ # coding: UTF-8
286
+ #
287
+ # Author: Dr. Heinz Breinlinger
288
+ #
289
+ require 'rubygems'
290
+ require 'rods'
291
+
292
+ mySheet=Rods.new("Template.ods")
293
+ mySheet.insertTableAfter("Tabelle1","Neue Tabelle")
294
+ mySheet.insertTableAfter("Neue Tabelle","Neue Tabelle2")
295
+ mySheet.insertTableAfter("Neue Tabelle2","Neue Tabelle3")
296
+ mySheet.insertTableAfter("Tabelle3","Neue Tabelle4")
297
+ mySheet.insertTableBefore("Tabelle1","Vor1")
298
+ mySheet.insertTableBefore("Neue Tabelle4","Vor4")
299
+ mySheet.saveAs("Test2.ods")
300
+ puts("done")
301
+
302
+ = Example for additions in 0.6.2
303
+
304
+ #!/usr/bin/ruby
305
+ # coding: UTF-8
306
+ #
307
+ # Author: Dr. Heinz Breinlinger
308
+ #
309
+ require 'rubygems'
310
+ require 'rods'
311
+
312
+ mySheet=Rods.new("Template.ods")
313
+ cell=mySheet.writeGetCell(3,3,"string","Underline")
314
+ mySheet.setAttributes(cell,{ "style:text-underline-color" => "blue",
315
+ "style:text-underline-style" => "solid",
316
+ "style:text-underline-width" => "auto"})
317
+ cell=mySheet.writeGetCell(4,4,"string","Underline_Default_with_Black")
318
+ #----------------------------------------------------------------------
319
+ # if not specified otherwise, widt and color are set to default
320
+ # - black
321
+ # - solid
322
+ #----------------------------------------------------------------------
323
+ mySheet.setAttributes(cell,{ "style:text-underline-style" => "solid" })
324
+ mySheet.saveAs("Test3.ods")
325
+ puts("done")
326
+
279
327
  = Caveat
280
328
 
281
329
  The XML-structure of a <file>.ods is
@@ -286,7 +334,7 @@
286
334
 
287
335
  1.upto(500){ |i|
288
336
  text1,type1=readCell(i,3) # XML-Parser starts from the top-node
289
- text2,type2=readCell(i,4) # XML-Parser starts form the top-node
337
+ text2,type2=readCell(i,4) # XML-Parser starts from the top-node
290
338
  puts("Read #{text1} of #{type1} and #{text2} of #{type2}")
291
339
  }
292
340
 
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('rods', '0.6.1') do |p|
5
+ Echoe.new('rods', '0.6.2') do |p|
6
6
  p.description = "OpenOffice.org oocalc: Fast automated batch-processing of spreadsheets (*.ods) conforming to Open Document Format v1.1. used by e.g. OpenOffice.org and LibreOffice. Please see screenshot and Rdoc-Documentation at http://ruby.homelinux.com/ruby/rods/. You can contact me at rodsdotrubyatonlinedotde (and drop me a line, if you like it ;-)"
7
7
  p.summary = "Automation of OpenOffice/LibreOffice by batch-processing of spreadsheets conforming to Open Document v1.1"
8
8
  p.url = "http://ruby.homelinux.com/ruby/rods/"
data/lib/rods.rb CHANGED
@@ -1193,12 +1193,13 @@ class Rods
1193
1193
  #---------------------------------------------------------------------
1194
1194
  # Ersetzung von Farbwerten
1195
1195
  #---------------------------------------------------------------------
1196
- if((key == "color") || (key == "fo:color") || (key == "background-color") || (key == "fo:background-color"))
1196
+ if((key == "color") || (key == "fo:color") || (key == "background-color") || (key == "fo:background-color") || (key == "text-underline-color") || (key == "style:text-underline-color"))
1197
1197
  #-------------------------------------------------------
1198
1198
  # Falls Farbwert nicht hexadezimal angegeben (i.e. '#' zu Beginn),
1199
1199
  # => in Farbpalette nachschlagen, ggf. Fehlermeldung
1200
1200
  #-------------------------------------------------------
1201
- if(!value.match(/^#/)) then value=getColor(value) end
1201
+ if(!value.match(/^#/)) then value=getColor(value)
1202
+ end
1202
1203
  #--------------------------------------------------------
1203
1204
  # dito bei Farben fuer den Rand
1204
1205
  #--------------------------------------------------------
@@ -1237,6 +1238,9 @@ class Rods
1237
1238
  when "font-style" then outHash["fo:font-style"] = value
1238
1239
  when "font-weight" then outHash["fo:font-weight"] = value
1239
1240
  when "data-style-name" then outHash["style:data-style-name"] = value
1241
+ when "text-underline-style" then outHash["style:text-underline-style"] = value
1242
+ when "text-underline-width" then outHash["style:text-underline-width"] = value
1243
+ when "text-underline-color" then outHash["style:text-underline-color"] = value
1240
1244
  #-------------------------------------
1241
1245
  # andernfalls Key und Value kopieren
1242
1246
  #-------------------------------------
@@ -1464,6 +1468,25 @@ class Rods
1464
1468
  die("checkStyleAttributes: internal error: found unnormed or invalid attribute #{key}") unless (key.match(/:/))
1465
1469
  }
1466
1470
  #--------------------------------------------------------
1471
+ # Unterstrich ggf. mit Defaultwerten auffüllen
1472
+ #--------------------------------------------------------
1473
+ if(attributes.has_key?("style:text-underline-style"))
1474
+ if(! attributes.has_key?("style:text-underline-width"))
1475
+ attributes["style:text-underline-width"]="auto"
1476
+ puts("checkStyleAttributes: automatically set style:text-underline-width to 'auto'")
1477
+ end
1478
+ if(! attributes.has_key?("style:text-underline-color"))
1479
+ attributes["style:text-underline-color"]="#000000" # schwarz
1480
+ puts("checkStyleAttributes: automatically set style:text-underline-color to 'black'")
1481
+ end
1482
+ end
1483
+ #-------------------------------------------------------------
1484
+ # style:text-underline-style ist Pflicht !
1485
+ #-------------------------------------------------------------
1486
+ if((attributes.has_key?("style:text-underline-width") || attributes.has_key?("style:text-underline-color")) && (! attributes.has_key?("style:text-underline-style")))
1487
+ die("checkStyleAttributes: missing (style:)text-underline-style ... please specify")
1488
+ end
1489
+ #--------------------------------------------------------
1467
1490
  # fo:font-style und fo:font-weight vereinheitlichen (asiatisch/komplex)
1468
1491
  #--------------------------------------------------------
1469
1492
  fontStyle=attributes["fo:font-style"]
@@ -1563,7 +1586,8 @@ class Rods
1563
1586
  # style:text-properties
1564
1587
  #------------------------------------------------------------------------
1565
1588
  when "fo:color","fo:font-style","fo:font-style-asian","fo:font-style-complex",
1566
- "fo:font-weight","fo:font-weight-asian","fo:font-weight-complex"
1589
+ "fo:font-weight","fo:font-weight-asian","fo:font-weight-complex","style:text-underline-style",
1590
+ "style:text-underline-width","style:text-underline-color"
1567
1591
  textProperties=style.add_element("style:text-properties") unless (textProperties)
1568
1592
  textProperties.attributes[key]=value
1569
1593
  #---------------------------------------------------------
data/rods.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{rods}
5
- s.version = "0.6.1"
5
+ s.version = "0.6.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Dr. Heinz Breinlinger"]
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rods
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
4
+ hash: 3
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 1
10
- version: 0.6.1
9
+ - 2
10
+ version: 0.6.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Dr. Heinz Breinlinger