spreadshoot 0.0.4 → 0.0.5

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.
@@ -1,3 +1,3 @@
1
1
  class Spreadshoot
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/spreadshoot.rb CHANGED
@@ -62,6 +62,8 @@ class Spreadshoot
62
62
  14
63
63
  when :percent
64
64
  10
65
+ when :currency
66
+ 7
65
67
  else
66
68
  value
67
69
  end
@@ -336,6 +338,7 @@ class Spreadshoot
336
338
  attr_reader :title, :xml, :spreadsheet, :row_index, :col_index, :cells
337
339
 
338
340
  # Not intended to be called directly. Use Spreadshoot#worksheet to create a worksheet.
341
+ # @private
339
342
  def initialize spreadsheet, title, options = {}
340
343
  @cells = {}
341
344
  @spreadsheet = spreadsheet
@@ -351,6 +354,7 @@ class Spreadshoot
351
354
  end
352
355
 
353
356
  # Outputs the worksheet as OOXML
357
+ # @private
354
358
  def to_s
355
359
  @xml ||= Builder::XmlMarkup.new.worksheet(:xmlns => "http://schemas.openxmlformats.org/spreadsheetml/2006/main") do |ws|
356
360
  unless @column_widths.empty?
@@ -379,6 +383,7 @@ class Spreadshoot
379
383
 
380
384
  # Creates a row within a worksheet.
381
385
  #
386
+ # @see Table#row
382
387
  # @param [Hash] options options to create a row with.
383
388
  # @return created row
384
389
  def row options = {}, &block
@@ -405,6 +410,7 @@ class Spreadshoot
405
410
  end
406
411
 
407
412
  # Not intended to be used directly.
413
+ # @private
408
414
  def set_col_width col, width
409
415
  @column_widths[col] = width
410
416
  end
@@ -416,6 +422,8 @@ class Spreadshoot
416
422
  class Table
417
423
  attr_reader :worksheet, :direction, :col_max, :row_max, :col_index, :row_index, :row_topleft, :col_topleft
418
424
 
425
+ # @private
426
+ # @see Worksheet#table
419
427
  def initialize worksheet, options = {}
420
428
  @worksheet = worksheet
421
429
  @options = options
@@ -474,11 +482,22 @@ class Spreadshoot
474
482
 
475
483
  # A row of a table. The table could be horizontal oriented, or vertical oriented.
476
484
  class Row
485
+ # @private
486
+ # @note Do not call directly, rows should be created using Table#row or #Worksheet#row methods
487
+ #
488
+ # @see Table#row
489
+ # @see Worksheet#row
477
490
  def initialize table, options = {}
478
491
  @table = table
479
492
  @options = options
480
493
  end
481
494
 
495
+ # Creates a cell within a row.
496
+ #
497
+ # @param [Object] value a value to write to the cell
498
+ # @param [Hash] options additional options applied (formatting, etc)
499
+ #
500
+ # @return created Cell instance
482
501
  def cell value = nil, options = {}
483
502
  cell = Cell.new(@table, value, @options.merge(options))
484
503
  @table.worksheet.cells[@table.current_row] ||= {}
@@ -494,13 +513,17 @@ class Spreadshoot
494
513
 
495
514
  # A cell within a row.
496
515
  class Cell
516
+ @alpha_indices ||= ('A'..'ZZ').to_a
497
517
  # maps numeric column indices to letter based:
498
518
  # 0 -> 'A', 1 -> 'B', 26 -> 'AA' and so on
519
+ # @return [String]
499
520
  def self.alpha_index i
500
- @alpha_indices ||= ('A'..'ZZ').to_a
501
521
  @alpha_indices[i]
502
522
  end
503
523
 
524
+ # @note Do not use directly, use Row#cell to create a cell.
525
+ # @private
526
+ # @see Row#cell
504
527
  def initialize table, value, options = {}
505
528
  @table = table
506
529
  @value = value
@@ -510,17 +533,23 @@ class Spreadshoot
510
533
  @options[:format] ||= :date if @value.is_a?(Date) || @value.is_a?(Time)
511
534
  end
512
535
 
536
+ # Zero-based index of the current column of the cell
537
+ # @return [Fixnum]
513
538
  def current_col
514
539
  @table.current_col
515
540
  end
516
541
 
542
+ # Zero-based index of the current row of the cell
543
+ # @return [Fixnum]
517
544
  def current_row
518
545
  @table.current_row
519
546
  end
520
547
 
521
- # outputs the cell into the resulting xml
548
+ # Outputs the cell into the resulting xml
549
+ # @private
522
550
  def output xn_parent
523
551
  r = {:r => @coords}
552
+ @options = @value if @value.is_a?(Hash)
524
553
  if style = @table.worksheet.spreadsheet.style(@options)
525
554
  r.merge!(:s => style + 1)
526
555
  end
@@ -529,7 +558,6 @@ class Spreadshoot
529
558
  i = @table.worksheet.spreadsheet.ss_index(@value)
530
559
  xn_parent.c(r.merge(:t => 's')){ |xc| xc.v(i) }
531
560
  when Hash # no @value, formula in options
532
- @options = @value
533
561
  xn_parent.c(r) do |xc|
534
562
  xc.f(@options[:formula])
535
563
  end
@@ -544,6 +572,9 @@ class Spreadshoot
544
572
  end
545
573
  end
546
574
 
575
+ # Outputs cell coordinates (e.g. "C3", "AG41" and so on)
576
+ #
577
+ # @return [String]
547
578
  def to_s
548
579
  @coords
549
580
  end
metadata CHANGED
@@ -1,34 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: spreadshoot
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.4
5
- prerelease:
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 5
9
+ version: 0.0.5
6
10
  platform: ruby
7
- authors:
11
+ authors:
8
12
  - Mladen Jablanovic
9
13
  autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
- date: 2012-05-07 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
16
+
17
+ date: 2013-01-25 00:00:00 +01:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: builder
16
- requirement: &80585380 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
22
31
  type: :runtime
23
- prerelease: false
24
- version_requirements: *80585380
32
+ version_requirements: *id001
25
33
  description: Create XLSX files from scratch using Ruby
26
- email:
34
+ email:
27
35
  - jablan@radioni.ca
28
36
  executables: []
37
+
29
38
  extensions: []
39
+
30
40
  extra_rdoc_files: []
31
- files:
41
+
42
+ files:
32
43
  - .gitignore
33
44
  - Gemfile
34
45
  - LICENSE
@@ -38,29 +49,37 @@ files:
38
49
  - lib/spreadshoot.rb
39
50
  - lib/spreadshoot/version.rb
40
51
  - spreadshoot.gemspec
52
+ has_rdoc: true
41
53
  homepage: https://github.com/jablan/spreadshoot
42
54
  licenses: []
55
+
43
56
  post_install_message:
44
57
  rdoc_options: []
45
- require_paths:
58
+
59
+ require_paths:
46
60
  - lib
47
- required_ruby_version: !ruby/object:Gem::Requirement
61
+ required_ruby_version: !ruby/object:Gem::Requirement
48
62
  none: false
49
- requirements:
50
- - - ! '>='
51
- - !ruby/object:Gem::Version
52
- version: '0'
53
- required_rubygems_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ segments:
67
+ - 0
68
+ version: "0"
69
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
70
  none: false
55
- requirements:
56
- - - ! '>='
57
- - !ruby/object:Gem::Version
58
- version: '0'
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ segments:
75
+ - 0
76
+ version: "0"
59
77
  requirements: []
78
+
60
79
  rubyforge_project:
61
- rubygems_version: 1.8.11
80
+ rubygems_version: 1.3.7
62
81
  signing_key:
63
82
  specification_version: 3
64
83
  summary: Ruby DSL for creating Excel xlsx spreadsheets
65
84
  test_files: []
66
- has_rdoc:
85
+