energon 0.0.3 → 0.0.4

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.
@@ -21,7 +21,7 @@ module Woa; module Energon
21
21
  # include Woa::Energon
22
22
  # document = Document.new("@author@, @date@, @country@")
23
23
  # document.add_values({:author => "Woa! Kft", :date => Time.now})
24
- # document.add_value(:country => "Hungary")
24
+ # document.add_value(:country, "Hungary")
25
25
  # puts document.write #"Woa! Kft, Wed Nov 29 11:31:52 CET 2006, Hungary"
26
26
  class Document
27
27
 
@@ -83,7 +83,7 @@ module Woa; module Energon
83
83
  @placeholders.each do |placeholder|
84
84
  data = Parser.merge(placeholder, @datas)
85
85
  data = data.join(@new_line) if data.is_a?(Array)
86
- @template.gsub!("#{@delimiter}#{placeholder}#{@delimiter}", data)
86
+ @template.gsub!("#{@delimiter}#{placeholder}#{@delimiter}", data.to_s)
87
87
  end
88
88
  return(@template) if output.nil?
89
89
  output.puts @template
@@ -1,7 +1,6 @@
1
1
  require 'energon/document'
2
2
  require 'energon/open_xml_helper'
3
3
  require 'rexml/document'
4
- include REXML
5
4
 
6
5
  module Woa; module Energon;
7
6
  # This is a subclass of Document but it deals with Excel templates
@@ -12,7 +11,8 @@ module Woa; module Energon;
12
11
  #
13
12
  # :include: rdoc-header
14
13
  class ExcelDocument < Document
15
-
14
+ include REXML
15
+
16
16
  def write()
17
17
  raise NoPlaceholderFound if @placeholders.empty?
18
18
  rows = {}
@@ -48,7 +48,7 @@ module Woa; module Energon;
48
48
  continue = false
49
49
  break
50
50
  end
51
- cell.text = add_shared_string(data.to_s)
51
+ write_data_to_cell data, cell
52
52
  end
53
53
  if continue
54
54
  new_row = row.deep_clone
@@ -70,7 +70,7 @@ module Woa; module Energon;
70
70
  XPath.each(root, 'row') do |element|
71
71
  next if element.parent.index(element) <= index
72
72
  value = element.attributes.get_attribute('r').value.to_i + inserted_rows
73
- element.add_attribute('r', value)
73
+ element.add_attribute('r', value.to_s)
74
74
  XPath.each(element, 'c[@r]') do |element|
75
75
  new_value = element.attributes.get_attribute('r').value.to_s.gsub(/\d+/, value.to_s)
76
76
  element.add_attribute('r', new_value)
@@ -94,6 +94,16 @@ module Woa; module Energon;
94
94
  #############################
95
95
  private
96
96
  #############################
97
+ def write_data_to_cell(data, cell)
98
+ if data.kind_of?(Numeric)
99
+ cell.text = data.to_s
100
+ type_attribute = cell.parent.attributes.get_attribute('t')
101
+ type_attribute.remove if type_attribute
102
+ else
103
+ cell.text = add_shared_string(data.to_s)
104
+ end
105
+ end
106
+
97
107
  def extract_placeholders
98
108
  @openxml = OpenXmlHelper.new_excel(@template)
99
109
  @documents = @openxml.documents
@@ -132,7 +142,7 @@ module Woa; module Energon;
132
142
  unique_count = root.attributes.get_attribute('uniqueCount').value.to_i.next
133
143
  root.add_attribute('count', count.to_s)
134
144
  root.add_attribute('uniqueCount', unique_count.to_s)
135
- count - 1
145
+ unique_count - 1
136
146
  end
137
147
  end
138
148
  end; end
@@ -1,7 +1,6 @@
1
1
  require 'energon/document'
2
2
  require 'energon/open_document_helper'
3
3
  require 'rexml/document'
4
- include REXML
5
4
 
6
5
  module Woa; module Energon;
7
6
  # This is a subclass of Document but it deals with OpenDocument
@@ -13,6 +12,8 @@ module Woa; module Energon;
13
12
  #
14
13
  # :include: rdoc-header
15
14
  class OdDocument < Document
15
+ include REXML
16
+
16
17
  def write()
17
18
  raise NoPlaceholderFound if @placeholders.empty?
18
19
  rows = {}
@@ -49,7 +49,7 @@ module Woa; module Energon
49
49
  ############# tempdir ##############
50
50
  n = 0
51
51
  begin
52
- @tmpdir = "tempdir.#{$$}.#{n}.dir"
52
+ @tmpdir = File.join(File.dirname(@template), "tempdir.#{$$}.#{n}.dir")
53
53
  n = n.next
54
54
  end while File.exist?(@tmpdir)
55
55
 
@@ -232,7 +232,7 @@ module Woa; module Energon
232
232
  raise NoDataFound, error unless specific_data.is_a?(Array)
233
233
  raise NoDataFound, error if specific_data.empty?
234
234
 
235
- singular = Inflector::singularize(dynamic)
235
+ singular = ActiveSupport::Inflector::singularize(dynamic)
236
236
  singular = nil if singular == dynamic
237
237
  elements = []
238
238
 
@@ -1,7 +1,6 @@
1
1
  require 'energon/document'
2
2
  require 'energon/open_xml_helper'
3
3
  require 'rexml/document'
4
- include REXML
5
4
 
6
5
  module Woa; module Energon;
7
6
  # This is a subclass of Document but it deals with Word templates
@@ -12,7 +11,8 @@ module Woa; module Energon;
12
11
  #
13
12
  # :include: rdoc-header
14
13
  class WordDocument < Document
15
-
14
+ include REXML
15
+
16
16
  def write()
17
17
  raise NoPlaceholderFound if @placeholders.empty?
18
18
  rows = {}
data/rakefile.rb CHANGED
@@ -1,57 +1,57 @@
1
- require 'rake'
2
- require 'rake/testtask'
3
- require 'rake/rdoctask'
4
- require 'rake/gempackagetask'
5
-
6
- task :default => :test
7
-
8
- desc "Run the tests"
9
- Rake::TestTask::new do |t|
10
- t.test_files = FileList['test/test_*.rb']
11
- t.verbose = true
12
- end
13
-
14
- desc "Generate the documentation"
15
- Rake::RDocTask::new do |rdoc|
16
- rdoc.rdoc_dir = 'energon-doc/'
17
- rdoc.title = "Energon Documentation"
18
- rdoc.options << '--line-numbers' << '--inline-source'
19
- rdoc.rdoc_files.include('README')
20
- rdoc.rdoc_files.include('MIT-LICENSE')
21
- rdoc.rdoc_files.include('lib/**/*.rb')
22
- end
23
-
24
- spec = Gem::Specification::new do |s|
25
- s.platform = Gem::Platform::RUBY
26
-
27
- s.name = 'energon'
28
- s.version = "0.0.3"
29
- s.summary = "Report engine outputting Word/Excel OpenXML documents"
30
- s.description = <<EOF
31
- Energon is a report engine written in ruby, creating advanced and
32
- reliable reports from templates.
33
- EOF
34
- s.author = 'Woa! Kft'
35
- s.email = 'energon@woa.hu'
36
- s.homepage = "http://www.woa.hu"
37
-
38
- s.requirements << 'rubyzip, 0.9.1 or greater'
39
- s.add_dependency('rubyzip', '>= 0.9.1')
40
-
41
- s.requirements << 'activesupport, 1.3.1 or greater'
42
- s.add_dependency('activesupport', '>= 1.3.1')
43
-
44
- s.require_path = 'lib'
45
- s.files = FileList["lib/**/*.rb", "test/**/*.rb", "README","MIT-LICENSE","rakefile.rb"]
46
- s.test_files = FileList['test/test*.rb']
47
-
48
- s.has_rdoc = true
49
- s.extra_rdoc_files = ["README", "rdoc-header"]
50
- s.rdoc_options.concat ['--main', 'README']
51
- end
52
-
53
- desc "Package the library as a gem"
54
- Rake::GemPackageTask.new(spec) do |pkg|
55
- pkg.need_zip = true
56
- pkg.need_tar = true
57
- end
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'rake/rdoctask'
4
+ require 'rake/gempackagetask'
5
+
6
+ task :default => :test
7
+
8
+ desc "Run the tests"
9
+ Rake::TestTask::new do |t|
10
+ t.test_files = FileList['test/test_*.rb']
11
+ t.verbose = true
12
+ end
13
+
14
+ desc "Generate the documentation"
15
+ Rake::RDocTask::new do |rdoc|
16
+ rdoc.rdoc_dir = 'energon-doc/'
17
+ rdoc.title = "Energon Documentation"
18
+ rdoc.options << '--line-numbers' << '--inline-source'
19
+ rdoc.rdoc_files.include('README')
20
+ rdoc.rdoc_files.include('MIT-LICENSE')
21
+ rdoc.rdoc_files.include('lib/**/*.rb')
22
+ end
23
+
24
+ spec = Gem::Specification::new do |s|
25
+ s.platform = Gem::Platform::RUBY
26
+
27
+ s.name = 'energon'
28
+ s.version = "0.0.4"
29
+ s.summary = "Report engine outputting Word/Excel OpenXML documents"
30
+ s.description = <<EOF
31
+ Energon is a report engine written in ruby, creating advanced and
32
+ reliable reports from templates.
33
+ EOF
34
+ s.author = 'Wopata'
35
+ s.email = 'energon@wopata.com'
36
+ s.homepage = "http://www.wopata.com"
37
+
38
+ s.requirements << 'rubyzip, 0.9.1 or greater'
39
+ s.add_dependency('rubyzip', '>= 0.9.1')
40
+
41
+ s.requirements << 'activesupport, 1.3.1 or greater'
42
+ s.add_dependency('activesupport', '>= 1.3.1')
43
+
44
+ s.require_path = 'lib'
45
+ s.files = FileList["lib/**/*.rb", "test/**/*.rb", "README","MIT-LICENSE","rakefile.rb"]
46
+ s.test_files = FileList['test/test*.rb']
47
+
48
+ s.has_rdoc = true
49
+ s.extra_rdoc_files = ["README", "rdoc-header"]
50
+ s.rdoc_options.concat ['--main', 'README']
51
+ end
52
+
53
+ desc "Package the library as a gem"
54
+ Rake::GemPackageTask.new(spec) do |pkg|
55
+ pkg.need_zip = true
56
+ pkg.need_tar = true
57
+ end
@@ -41,7 +41,8 @@ class TestOdDocument < Test::Unit::TestCase
41
41
  ZipFile.open("test/opendocument/template_test.#{hash[:ext]}") {|zipfile| content_orig = zipfile.file.read("content.xml")}
42
42
  ZipFile.open(file) {|zipfile| content_new = zipfile.file.read("content.xml")}
43
43
 
44
- assert_equal(content_orig, content_new)
44
+ # compare hash equivalents so as to ignore insignificant differences in formatting or attribute ordering
45
+ assert_equal Hash.from_xml(content_orig), Hash.from_xml(content_new)
45
46
 
46
47
  FileUtils.rm(file)
47
48
  end
metadata CHANGED
@@ -1,35 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.0
3
- specification_version: 1
4
2
  name: energon
5
3
  version: !ruby/object:Gem::Version
6
- version: 0.0.3
7
- date: 2007-03-23 00:00:00 +01:00
8
- summary: Report engine outputting Word/Excel OpenXML documents
9
- require_paths:
10
- - lib
11
- email: energon@woa.hu
12
- homepage: http://www.woa.hu
13
- rubyforge_project:
14
- description: Energon is a report engine written in ruby, creating advanced and reliable reports from templates.
15
- autorequire:
16
- default_executable:
17
- bindir: bin
18
- has_rdoc: true
19
- required_ruby_version: !ruby/object:Gem::Version::Requirement
20
- requirements:
21
- - - ">"
22
- - !ruby/object:Gem::Version
23
- version: 0.0.0
24
- version:
4
+ version: 0.0.4
25
5
  platform: ruby
26
- signing_key:
27
- cert_chain:
28
- post_install_message:
29
6
  authors:
30
- - Woa! Kft
7
+ - Wopata
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-11-22 00:00:00 +01:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rubyzip
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 0.9.1
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: activesupport
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.1
34
+ version:
35
+ description: " Energon is a report engine written in ruby, creating advanced and\n reliable reports from templates. \n"
36
+ email: energon@wopata.com
37
+ executables: []
38
+
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - README
43
+ - rdoc-header
31
44
  files:
32
- - lib/energon.rb
33
45
  - lib/energon/document.rb
34
46
  - lib/energon/excel_document.rb
35
47
  - lib/energon/od_document.rb
@@ -37,6 +49,7 @@ files:
37
49
  - lib/energon/open_xml_helper.rb
38
50
  - lib/energon/parser.rb
39
51
  - lib/energon/word_document.rb
52
+ - lib/energon.rb
40
53
  - test/test_document.rb
41
54
  - test/test_excel_document.rb
42
55
  - test/test_oo_document.rb
@@ -47,6 +60,36 @@ files:
47
60
  - MIT-LICENSE
48
61
  - rakefile.rb
49
62
  - rdoc-header
63
+ has_rdoc: true
64
+ homepage: http://www.wopata.com
65
+ licenses: []
66
+
67
+ post_install_message:
68
+ rdoc_options:
69
+ - --main
70
+ - README
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: "0"
78
+ version:
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: "0"
84
+ version:
85
+ requirements:
86
+ - rubyzip, 0.9.1 or greater
87
+ - activesupport, 1.3.1 or greater
88
+ rubyforge_project:
89
+ rubygems_version: 1.3.5
90
+ signing_key:
91
+ specification_version: 3
92
+ summary: Report engine outputting Word/Excel OpenXML documents
50
93
  test_files:
51
94
  - test/test_document.rb
52
95
  - test/test_excel_document.rb
@@ -54,35 +97,3 @@ test_files:
54
97
  - test/test_open_document_helper.rb
55
98
  - test/test_open_xml_helper.rb
56
99
  - test/test_word_document.rb
57
- rdoc_options:
58
- - --main
59
- - README
60
- extra_rdoc_files:
61
- - README
62
- - rdoc-header
63
- executables: []
64
-
65
- extensions: []
66
-
67
- requirements:
68
- - rubyzip, 0.9.1 or greater
69
- - activesupport, 1.3.1 or greater
70
- dependencies:
71
- - !ruby/object:Gem::Dependency
72
- name: rubyzip
73
- version_requirement:
74
- version_requirements: !ruby/object:Gem::Version::Requirement
75
- requirements:
76
- - - ">="
77
- - !ruby/object:Gem::Version
78
- version: 0.9.1
79
- version:
80
- - !ruby/object:Gem::Dependency
81
- name: activesupport
82
- version_requirement:
83
- version_requirements: !ruby/object:Gem::Version::Requirement
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- version: 1.3.1
88
- version: