osheet 0.6.0 → 0.7.0

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.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- osheet (0.6.0)
4
+ osheet (0.7.0)
5
5
  enumeration (~> 1.1.0)
6
6
  xmlss (~> 0.2.0)
7
7
 
@@ -43,7 +43,6 @@ PLATFORMS
43
43
 
44
44
  DEPENDENCIES
45
45
  bundler (~> 1.0)
46
- enumeration (~> 1.1.0)
47
46
  open4
48
47
  osheet!
49
48
  rack-test (>= 0.5.3)
@@ -51,4 +50,3 @@ DEPENDENCIES
51
50
  sinatra (>= 0.9.4)
52
51
  test-belt (= 0.2.1)
53
52
  webrat (>= 0.6.0)
54
- xmlss (~> 0.2.0)
data/lib/osheet/mixin.rb CHANGED
@@ -25,6 +25,15 @@ module Osheet::Mixin
25
25
  def templates
26
26
  instance_variable_get("@t") || []
27
27
  end
28
+
29
+ def partial(name, &block)
30
+ instance_variable_set("@p",
31
+ (instance_variable_get("@p") || []) << ::Osheet::Partial.new(name, &block)
32
+ )
33
+ end
34
+ def partials
35
+ instance_variable_get("@p") || []
36
+ end
28
37
  end
29
38
 
30
39
  end
@@ -1,3 +1,3 @@
1
1
  module Osheet
2
- VERSION = "0.6.0"
2
+ VERSION = "0.7.0"
3
3
  end
@@ -50,6 +50,7 @@ module Osheet
50
50
  def use(mixin)
51
51
  (mixin.styles || []).each{ |s| push_ivar(:styles, s) }
52
52
  (mixin.templates || []).each{ |t| push_ivar(:templates, t) }
53
+ (mixin.partials || []).each{ |p| push_ivar(:partials, p) }
53
54
  end
54
55
 
55
56
  def writer
data/test/mixin_test.rb CHANGED
@@ -7,12 +7,13 @@ module Osheet
7
7
  context "Osheet::Mixin thing" do
8
8
  subject { DefaultMixin }
9
9
 
10
- should_have_readers :styles, :templates
11
- should_have_instance_methods :style, :template
10
+ should_have_readers :styles, :templates, :partials
11
+ should_have_instance_methods :style, :template, :partial
12
12
 
13
13
  should "set it's defaults" do
14
14
  assert_equal [], subject.styles
15
15
  assert_equal [], subject.templates
16
+ assert_equal [], subject.partials
16
17
  end
17
18
  end
18
19
  end
@@ -43,4 +44,47 @@ module Osheet
43
44
  end
44
45
  end
45
46
 
47
+ class MixinPartialTest < Test::Unit::TestCase
48
+ context "that defines partials" do
49
+ subject { PartialedMixin }
50
+
51
+ should "have it's partials defined" do
52
+ assert subject.partials
53
+ assert_equal 2, subject.partials.size
54
+ assert_kind_of Partial, subject.partials.first
55
+ end
56
+ end
57
+ end
58
+
59
+ class MixinUseTest < Test::Unit::TestCase
60
+ context "A workbook that uses mixins" do
61
+ setup do
62
+ @workbook = Osheet::Workbook.new do
63
+ use PartialedMixin
64
+ use TemplatedMixin
65
+ use StyledMixin
66
+ end
67
+ end
68
+ subject { @workbook }
69
+
70
+ should "have mixin partials" do
71
+ workbook_partials = @workbook.partials.values
72
+ PartialedMixin.partials.each do |partial|
73
+ assert workbook_partials.include?(partial)
74
+ end
75
+ end
76
+
77
+ should "have mixin templates" do
78
+ workbook_templates = @workbook.templates.values.collect{ |t| t.values.first }
79
+ TemplatedMixin.templates.each do |template|
80
+ assert workbook_templates.include?(template)
81
+ end
82
+ end
83
+
84
+ should "have mixin styles" do
85
+ assert_equal StyledMixin.styles, @workbook.styles
86
+ end
87
+ end
88
+ end
89
+
46
90
  end
data/test/mixins.rb CHANGED
@@ -29,3 +29,20 @@ class TemplatedMixin
29
29
  }
30
30
 
31
31
  end
32
+
33
+ class PartialedMixin
34
+ include Osheet::Mixin
35
+
36
+ partial(:three_empty_rows) {
37
+ row { }
38
+ row { }
39
+ row { }
40
+ }
41
+
42
+ partial(:two_cells_in_a_row) {
43
+ row {
44
+ cell { data "one" }
45
+ cell { data "two" }
46
+ }
47
+ }
48
+ end
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- osheet (0.5.0)
4
+ osheet (0.7.0)
5
5
  enumeration (~> 1.1.0)
6
6
  xmlss (~> 0.2.0)
7
7
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: ../../..
3
3
  specs:
4
- osheet (0.5.0)
4
+ osheet (0.7.0)
5
5
  enumeration (~> 1.1.0)
6
6
  xmlss (~> 0.2.0)
7
7
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: osheet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
5
- prerelease: false
4
+ hash: 3
5
+ prerelease:
6
6
  segments:
7
7
  - 0
8
- - 6
8
+ - 7
9
9
  - 0
10
- version: 0.6.0
10
+ version: 0.7.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-04-20 00:00:00 -05:00
19
- default_executable:
18
+ date: 2011-04-20 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: bundler
@@ -322,7 +321,6 @@ files:
322
321
  - test/xmlss_writer/base_test.rb
323
322
  - test/xmlss_writer/elements_test.rb
324
323
  - test/xmlss_writer/styles_test.rb
325
- has_rdoc: true
326
324
  homepage: http://github.com/kelredd/osheet
327
325
  licenses: []
328
326
 
@@ -352,7 +350,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
352
350
  requirements: []
353
351
 
354
352
  rubyforge_project:
355
- rubygems_version: 1.3.7
353
+ rubygems_version: 1.7.2
356
354
  signing_key:
357
355
  specification_version: 3
358
356
  summary: A DSL for specifying and generating spreadsheets using Ruby