rails-excel 0.0.4 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog CHANGED
@@ -1,13 +1,18 @@
1
- 2011-09-26 18:33 Ramihajamalala Hery <hery@weborama.com> v0.0.3
1
+ 2012-01-02 Hallelujah - Ramihajamalala Hery <hery@rails-royce.org> v0.0.4 v1.0.0
2
+
3
+ * Remove builtin strategies
4
+ * Deprecate Rails::Excel in favor of RailsExcel
5
+
6
+ 2011-09-26 18:33 Ramihajamalala Hery <hery@rails-royce.org> v0.0.3
2
7
 
3
8
  * Compatibility with Rails 3.x (by edpaget)
4
9
 
5
- 2011-08-23 12:19 Ramihajamalala Hery <hery@weborama.com> v0.0.2
10
+ 2011-08-23 12:19 Ramihajamalala Hery <hery@rails-royce.org> v0.0.2
6
11
 
7
12
  * Add a todo list
8
13
  * Allow to set excel strategy per action basis
9
14
 
10
- 2011-08-22 10:19 Ramihajamalala Hery <hery@weborama.com> v0.0.1
15
+ 2011-08-22 10:19 Ramihajamalala Hery <hery@rails-royce.org> v0.0.1
11
16
 
12
17
  * First working release
13
18
 
data/README.md CHANGED
@@ -2,7 +2,19 @@
2
2
 
3
3
  It adds support of .rxls templates for your rails views
4
4
 
5
- It comes with two builtin strategies based on the very good gems [writeexcel](https://github.com/cxn03651/writeexcel) and [spreadsheet](http://spreadsheet.rubyforge.org/index.html)
5
+ [DEPRECATED]
6
+
7
+ Prior to 1.0.0, it comes with two builtin strategies based on the very good gems [writeexcel](https://github.com/cxn03651/writeexcel) and [spreadsheet](http://spreadsheet.rubyforge.org/index.html)
8
+
9
+ [IMPORTANT]
10
+
11
+ As of 1.0.0, there is no builtin strategy anymore. You should install at least one strategy :
12
+
13
+ * [spreadsheet](https://github.com/hallelujah/rails-excel-spreadsheet-strategy)
14
+ * [write_excel](https://github.com/hallelujah/rails-excel-write_excel-strategy)
15
+ * [rubyXL](https://github.com/hallelujah/rails-excel-rubyXL-strategy)
16
+
17
+
6
18
 
7
19
  # Requirements
8
20
 
@@ -95,6 +107,20 @@ class UsersController < ApplicationController
95
107
  end
96
108
  ```
97
109
 
110
+ Or you can also override excel_strategy by action like that :
111
+
112
+ ```ruby
113
+ class UsersController < ApplicationController
114
+ self.excel_strategy = :write_excel
115
+
116
+ def other_action
117
+ self.excel_strategy = :rubyXL
118
+ # ...
119
+ end
120
+
121
+ end
122
+ ```
123
+
98
124
  # Contributors
99
125
 
100
126
  * [edpaget](https://github.com/edpaget)
data/TODO.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # TODO list
2
2
 
3
3
  * Implement tests
4
- * Allow to use with rails >= 2.3.0
5
- * Add more strategies like roo
4
+ * Add more strategies like rubyXL
6
5
 
@@ -21,10 +21,6 @@ module Rails
21
21
  end
22
22
 
23
23
  module RailsExcel
24
- BUILTIN_STRATEGIES = {
25
- :spreadsheet => RailsExcel::Strategies::Spreadsheet,
26
- :write_excel => RailsExcel::Strategies::WriteExcel
27
- } unless const_defined?(:BUILTIN_STRATEGIES)
28
24
 
29
25
  class << self
30
26
  module_eval do
@@ -38,9 +34,6 @@ module RailsExcel
38
34
 
39
35
  def configure(&block)
40
36
  @available_strategies = Hash.new
41
- BUILTIN_STRATEGIES.each do |k,v|
42
- add_strategy k, v.new
43
- end
44
37
  yield(self)
45
38
  ::ActionView::Base.send :include, RailsExcel::Delegation::View
46
39
  ::ActionController::Base.send :include,RailsExcel::Delegation::Controller
@@ -1,2 +1 @@
1
- require 'rails-excel/strategies/spreadsheet'
2
1
  require 'rails-excel/strategies/write_excel'
@@ -1,23 +1,23 @@
1
1
  require 'action_controller'
2
2
  require 'action_view'
3
3
  module RailsExcel
4
- class TemplateHandler
4
+ class TemplateHandler
5
5
 
6
- def self.call(template, *args)
7
- new.compile(template)
8
- end
6
+ def self.call(template, *args)
7
+ new.compile(template)
8
+ end
9
9
 
10
- def compile(template)
11
- %Q{
10
+ def compile(template)
11
+ %Q{
12
12
  io = StringIO.new
13
13
  RailsExcel.available_strategies[self.excel_strategy].compile(io) do |workbook|
14
- #{template.source}
14
+ #{template.source}
15
15
  end
16
16
  self.output_buffer = io.string
17
- }
18
- end
19
-
17
+ }
20
18
  end
19
+
21
20
  end
21
+ end
22
22
 
23
23
  ::Mime::Type.register "application/vnd.ms-excel", :xls
@@ -1,3 +1,3 @@
1
1
  module RailsExcel
2
- VERSION = "0.0.4"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -6,8 +6,8 @@ Gem::Specification.new do |s|
6
6
  s.name = "rails-excel"
7
7
  s.version = RailsExcel::VERSION
8
8
  s.authors = ["Ramihajamalala Hery"]
9
- s.email = ["hery@weborama.com"]
10
- s.homepage = ""
9
+ s.email = ["hery@rails-royce.org"]
10
+ s.homepage = "https://github.com/hallelujah/rails-excel"
11
11
  s.summary = %q{A rails gem to write excel}
12
12
  s.description = %q{Use different strategies to write excel : available are :spreadsheet and :writeexcel
13
13
  This implements rxls template in your rails view
@@ -19,8 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.add_development_dependency 'rspec', '~> 2.3.0'
20
20
  s.add_development_dependency 'rcov', '~> 0.9.9'
21
21
  s.add_development_dependency 'actionpack', '~> 2.3.0'
22
- s.add_dependency 'writeexcel', '>= 0.6.8'
23
- s.add_dependency 'spreadsheet', '>= 0.6.3.1'
24
22
 
25
23
  s.files = `git ls-files`.split("\n")
26
24
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
metadata CHANGED
@@ -4,11 +4,11 @@ version: !ruby/object:Gem::Version
4
4
  hash: 23
5
5
  prerelease: false
6
6
  segments:
7
+ - 1
7
8
  - 0
8
9
  - 0
9
- - 4
10
10
  segments_generated: true
11
- version: 0.0.4
11
+ version: 1.0.0
12
12
  platform: ruby
13
13
  authors:
14
14
  - Ramihajamalala Hery
@@ -87,44 +87,9 @@ dependencies:
87
87
  prerelease: false
88
88
  requirement: *id004
89
89
  type: :development
90
- - !ruby/object:Gem::Dependency
91
- name: writeexcel
92
- version_requirements: &id005 !ruby/object:Gem::Requirement
93
- none: false
94
- requirements:
95
- - - ">="
96
- - !ruby/object:Gem::Version
97
- hash: 23
98
- segments:
99
- - 0
100
- - 6
101
- - 8
102
- segments_generated: true
103
- version: 0.6.8
104
- prerelease: false
105
- requirement: *id005
106
- type: :runtime
107
- - !ruby/object:Gem::Dependency
108
- name: spreadsheet
109
- version_requirements: &id006 !ruby/object:Gem::Requirement
110
- none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- hash: 113
115
- segments:
116
- - 0
117
- - 6
118
- - 3
119
- - 1
120
- segments_generated: true
121
- version: 0.6.3.1
122
- prerelease: false
123
- requirement: *id006
124
- type: :runtime
125
90
  description: "Use different strategies to write excel : available are :spreadsheet and :writeexcel\n This implements rxls template in your rails view\n "
126
91
  email:
127
- - hery@weborama.com
92
+ - hery@rails-royce.org
128
93
  executables: []
129
94
 
130
95
  extensions: []
@@ -142,13 +107,11 @@ files:
142
107
  - lib/rails-excel.rb
143
108
  - lib/rails-excel/delegation.rb
144
109
  - lib/rails-excel/strategies.rb
145
- - lib/rails-excel/strategies/spreadsheet.rb
146
- - lib/rails-excel/strategies/write_excel.rb
147
110
  - lib/rails-excel/template_handler.rb
148
111
  - lib/rails-excel/version.rb
149
112
  - rails-excel.gemspec
150
113
  has_rdoc: true
151
- homepage: ""
114
+ homepage: https://github.com/hallelujah/rails-excel
152
115
  licenses: []
153
116
 
154
117
  post_install_message:
@@ -1,58 +0,0 @@
1
- require 'spreadsheet'
2
-
3
-
4
- module RailsExcel
5
- module Strategies
6
-
7
- class Spreadsheet
8
- def compile(io, &block)
9
- workbook = ::Spreadsheet::Workbook.new
10
- yield(workbook)
11
- workbook.write(io)
12
- end
13
- end
14
-
15
- end
16
-
17
- end
18
-
19
- # This extends colors for spreadsheet gem
20
- # See http://dmcritchie.mvps.org/excel/colors.htm#dpalette
21
-
22
- colors = %w{
23
- black brown olive_green dark_green dark_teal dark_blue indigo dark_gray
24
- dark_red orange dark__yellow green teal blue blue_gray gray
25
- red light_orange lime sea_green aqua light_blue violet light_gray
26
- pink gold yellow righ_green turquoise sky_blue plu lite_gray
27
- rose tan light_yellow light_green light_turquoise plae_blue lavender white
28
- periwinkle plum_plus ivory lite_turquoise dark_purple coral ocean_blue ice_blue
29
- dark_blue pink_plus yellow_plus turquoise violet dark_red teal_plus blue_plus
30
- }
31
-
32
- color_indexes = %w{
33
- 1 53 52 51 49 11 55 56
34
- 9 46 12 10 14 5 47 16
35
- 3 45 43 50 42 41 13 48
36
- 7 44 6 4 8 33 54 15
37
- 38 40 36 35 34 37 39 2
38
- 17 18 19 20 21 22 23 24
39
- 25 26 27 28 29 30 31 32
40
- }
41
-
42
- color_indexes.each_with_index do |c,i|
43
- # Do not override already defined colors
44
- color_num = c.to_i + 7
45
- Spreadsheet::Excel::Internals::COLOR_CODES[color_num] = colors[i].to_sym unless Spreadsheet::Excel::Internals::COLOR_CODES.key?(color_num)
46
- Spreadsheet::Excel::Internals::SEDOC_ROLOC[colors[i].to_sym] = color_num unless Spreadsheet::Excel::Internals::COLOR_CODES.key?(colors[i].to_sym)
47
- end
48
-
49
- # Add palette colors but not override existing colors
50
- ObjectSpace.each_object(Class) do |m|
51
- if m.ancestors.include?(Spreadsheet::Datatypes)
52
- m::module_eval do
53
- class << self
54
- COLORS.replace(COLORS | Spreadsheet::Excel::Internals::SEDOC_ROLOC.keys)
55
- end
56
- end
57
- end
58
- end
@@ -1,14 +0,0 @@
1
- require 'writeexcel'
2
- module RailsExcel
3
- module Strategies
4
-
5
- class WriteExcel
6
- def compile(io,&block)
7
- workbook = ::WriteExcel.new(io)
8
- yield(workbook)
9
- workbook.close
10
- end
11
- end
12
-
13
- end
14
- end