workbook_rails 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +11 -7
- data/Gemfile.lock +206 -168
- data/README.md +24 -30
- data/Rakefile +5 -2
- data/lib/workbook_rails/action_controller.rb +5 -8
- data/lib/workbook_rails/engine.rb +8 -8
- data/lib/workbook_rails/template_handler.rb +5 -4
- data/lib/workbook_rails/version.rb +1 -1
- data/spec/dummy/app/assets/config/manifest.js +3 -0
- data/spec/dummy/app/controllers/home_controller.rb +0 -4
- data/spec/dummy/app/controllers/users_controller.rb +1 -1
- data/spec/dummy/app/mailers/notifier.rb +2 -2
- data/spec/dummy/config/routes.rb +0 -1
- data/spec/dummy/db/migrate/20120717192452_create_users.rb +1 -1
- data/spec/dummy/db/migrate/20121206210955_create_likes.rb +1 -1
- data/spec/dummy/db/schema.rb +19 -21
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +24 -0
- data/spec/dummy/log/test.log +15872 -7276
- data/spec/spec_helper.rb +9 -2
- data/spec/template_handler_spec.rb +2 -2
- data/spec/{test_3.2.sh → test_6.0.sh} +1 -1
- data/spec/{test_4.0.sh → test_7.0.sh} +1 -1
- data/spec/{test_4.1.sh → test_7.1.sh} +1 -1
- data/spec/workbook_mailer_spec.rb +1 -1
- data/spec/workbook_renderer_spec.rb +16 -10
- data/spec/workbook_request_spec.rb +35 -45
- metadata +31 -140
- /data/spec/{test_4.2.sh → test_6.1.sh} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: b2ed8560abd5c51b7febd1b20a2caf617154baab4c6762cd7ad8c82b5a8829ff
|
4
|
+
data.tar.gz: 142494faaba8f5d90f5dabfe29979886b8f3895c369ce64665d826136208dd37
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 312c0a2649e8ae267befd09115049fafe9cbc7a814e6ded8d0c714330181d8f58750347cf7b28ec2a67eaf9c3cd1d02a179a9aad288192e332594b9376d0b7f6
|
7
|
+
data.tar.gz: 754201337d2ac1bdf444b650f4db6910043ff011e47cee89cb0e1047812ebc44a06f7bab9b969eb63f2d7ac31ba2ad2c1138c7c52a250e0ed0489a40bd82f8d2
|
data/Gemfile
CHANGED
@@ -1,21 +1,25 @@
|
|
1
|
-
source "
|
1
|
+
source "https://rubygems.org"
|
2
2
|
|
3
3
|
# Declare your gem's dependencies in axlsx_rails.gemspec.
|
4
4
|
# Bundler will treat runtime dependencies like base dependencies, and
|
5
5
|
# development dependencies will be added by default to the :development group.
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
gem 'rails', "~>
|
9
|
-
gem 'responders', '~>
|
10
|
-
|
11
|
-
# jquery-rails is used by the dummy application
|
12
|
-
gem "jquery-rails"
|
8
|
+
gem 'rails', "~> 6.1.0"
|
9
|
+
gem 'responders', '~> 3.0'
|
13
10
|
|
14
11
|
# Declare any dependencies that are still in development here instead of in
|
15
12
|
# your gemspec. These might include edge Rails or gems from your path or
|
16
13
|
# Git. Remember to move these dependencies to your gemspec before releasing
|
17
14
|
# your gem to rubygems.org.
|
18
|
-
gem 'capybara', '~> 2.1'
|
19
15
|
|
20
16
|
# To use debugger
|
21
17
|
# gem 'pry-debugger'
|
18
|
+
group :test do
|
19
|
+
gem 'capybara', '~> 2.1'
|
20
|
+
gem 'simplecov', require: false
|
21
|
+
gem 'codeclimate-test-reporter', require: false
|
22
|
+
gem "rspec-rails"
|
23
|
+
gem "sqlite3"
|
24
|
+
gem "coveralls"
|
25
|
+
end
|
data/Gemfile.lock
CHANGED
@@ -1,188 +1,229 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
workbook_rails (0.
|
4
|
+
workbook_rails (0.2.0)
|
5
5
|
actionpack (>= 3.2)
|
6
6
|
workbook (>= 0.4.10)
|
7
7
|
|
8
8
|
GEM
|
9
|
-
remote:
|
9
|
+
remote: https://rubygems.org/
|
10
10
|
specs:
|
11
|
-
|
12
|
-
actionpack (=
|
13
|
-
|
14
|
-
|
11
|
+
actioncable (6.1.7.7)
|
12
|
+
actionpack (= 6.1.7.7)
|
13
|
+
activesupport (= 6.1.7.7)
|
14
|
+
nio4r (~> 2.0)
|
15
|
+
websocket-driver (>= 0.6.1)
|
16
|
+
actionmailbox (6.1.7.7)
|
17
|
+
actionpack (= 6.1.7.7)
|
18
|
+
activejob (= 6.1.7.7)
|
19
|
+
activerecord (= 6.1.7.7)
|
20
|
+
activestorage (= 6.1.7.7)
|
21
|
+
activesupport (= 6.1.7.7)
|
22
|
+
mail (>= 2.7.1)
|
23
|
+
actionmailer (6.1.7.7)
|
24
|
+
actionpack (= 6.1.7.7)
|
25
|
+
actionview (= 6.1.7.7)
|
26
|
+
activejob (= 6.1.7.7)
|
27
|
+
activesupport (= 6.1.7.7)
|
15
28
|
mail (~> 2.5, >= 2.5.4)
|
16
|
-
rails-dom-testing (~>
|
17
|
-
actionpack (
|
18
|
-
actionview (=
|
19
|
-
activesupport (=
|
20
|
-
rack (~>
|
21
|
-
rack-test (
|
22
|
-
rails-dom-testing (~>
|
23
|
-
rails-html-sanitizer (~> 1.0, >= 1.0
|
24
|
-
|
25
|
-
|
29
|
+
rails-dom-testing (~> 2.0)
|
30
|
+
actionpack (6.1.7.7)
|
31
|
+
actionview (= 6.1.7.7)
|
32
|
+
activesupport (= 6.1.7.7)
|
33
|
+
rack (~> 2.0, >= 2.0.9)
|
34
|
+
rack-test (>= 0.6.3)
|
35
|
+
rails-dom-testing (~> 2.0)
|
36
|
+
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
37
|
+
actiontext (6.1.7.7)
|
38
|
+
actionpack (= 6.1.7.7)
|
39
|
+
activerecord (= 6.1.7.7)
|
40
|
+
activestorage (= 6.1.7.7)
|
41
|
+
activesupport (= 6.1.7.7)
|
42
|
+
nokogiri (>= 1.8.5)
|
43
|
+
actionview (6.1.7.7)
|
44
|
+
activesupport (= 6.1.7.7)
|
26
45
|
builder (~> 3.1)
|
27
|
-
|
28
|
-
rails-dom-testing (~>
|
29
|
-
rails-html-sanitizer (~> 1.
|
30
|
-
activejob (
|
31
|
-
activesupport (=
|
32
|
-
globalid (>= 0.3.
|
33
|
-
activemodel (
|
34
|
-
activesupport (=
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
46
|
+
erubi (~> 1.4)
|
47
|
+
rails-dom-testing (~> 2.0)
|
48
|
+
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
49
|
+
activejob (6.1.7.7)
|
50
|
+
activesupport (= 6.1.7.7)
|
51
|
+
globalid (>= 0.3.6)
|
52
|
+
activemodel (6.1.7.7)
|
53
|
+
activesupport (= 6.1.7.7)
|
54
|
+
activerecord (6.1.7.7)
|
55
|
+
activemodel (= 6.1.7.7)
|
56
|
+
activesupport (= 6.1.7.7)
|
57
|
+
activestorage (6.1.7.7)
|
58
|
+
actionpack (= 6.1.7.7)
|
59
|
+
activejob (= 6.1.7.7)
|
60
|
+
activerecord (= 6.1.7.7)
|
61
|
+
activesupport (= 6.1.7.7)
|
62
|
+
marcel (~> 1.0)
|
63
|
+
mini_mime (>= 1.1.0)
|
64
|
+
activesupport (6.1.7.7)
|
65
|
+
concurrent-ruby (~> 1.0, >= 1.0.2)
|
66
|
+
i18n (>= 1.6, < 2)
|
67
|
+
minitest (>= 5.1)
|
68
|
+
tzinfo (~> 2.0)
|
69
|
+
zeitwerk (~> 2.3)
|
70
|
+
addressable (2.8.6)
|
71
|
+
public_suffix (>= 2.0.2, < 6.0)
|
72
|
+
axlsx (3.0.0.pre)
|
73
|
+
htmlentities (~> 4.3, >= 4.3.4)
|
74
|
+
mimemagic (~> 0.3)
|
75
|
+
nokogiri (~> 1.8, >= 1.8.2)
|
76
|
+
rubyzip (~> 1.2, >= 1.2.1)
|
77
|
+
bigdecimal (3.1.8)
|
78
|
+
builder (3.2.4)
|
79
|
+
capybara (2.18.0)
|
54
80
|
addressable
|
55
|
-
|
81
|
+
mini_mime (>= 0.1.3)
|
56
82
|
nokogiri (>= 1.3.3)
|
57
83
|
rack (>= 1.0.0)
|
58
84
|
rack-test (>= 0.5.4)
|
59
|
-
xpath (
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
85
|
+
xpath (>= 2.0, < 4.0)
|
86
|
+
codeclimate-test-reporter (1.0.7)
|
87
|
+
simplecov
|
88
|
+
concurrent-ruby (1.2.3)
|
89
|
+
coveralls (0.8.23)
|
90
|
+
json (>= 1.8, < 3)
|
91
|
+
simplecov (~> 0.16.1)
|
65
92
|
term-ansicolor (~> 1.3)
|
66
|
-
thor (
|
67
|
-
tins (~> 1.6
|
68
|
-
|
93
|
+
thor (>= 0.19.4, < 2.0)
|
94
|
+
tins (~> 1.6)
|
95
|
+
crass (1.0.6)
|
96
|
+
date (3.3.4)
|
97
|
+
diff-lcs (1.5.1)
|
69
98
|
docile (1.1.5)
|
70
|
-
|
71
|
-
globalid (
|
72
|
-
activesupport (>=
|
73
|
-
growl (1.0.3)
|
99
|
+
erubi (1.12.0)
|
100
|
+
globalid (1.2.1)
|
101
|
+
activesupport (>= 6.1)
|
74
102
|
htmlentities (4.3.4)
|
75
|
-
i18n (
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
mini_portile2 (2.0.0)
|
90
|
-
minitest (5.8.4)
|
91
|
-
nokogiri (1.6.7.2)
|
92
|
-
mini_portile2 (~> 2.0.0.rc2)
|
93
|
-
pry (0.10.3)
|
94
|
-
coderay (~> 1.1.0)
|
95
|
-
method_source (~> 0.8.1)
|
96
|
-
slop (~> 3.4)
|
97
|
-
pry-nav (0.2.4)
|
98
|
-
pry (>= 0.9.10, < 0.11.0)
|
99
|
-
rack (1.6.4)
|
100
|
-
rack-test (0.6.3)
|
101
|
-
rack (>= 1.0)
|
102
|
-
rails (4.2.6)
|
103
|
-
actionmailer (= 4.2.6)
|
104
|
-
actionpack (= 4.2.6)
|
105
|
-
actionview (= 4.2.6)
|
106
|
-
activejob (= 4.2.6)
|
107
|
-
activemodel (= 4.2.6)
|
108
|
-
activerecord (= 4.2.6)
|
109
|
-
activesupport (= 4.2.6)
|
110
|
-
bundler (>= 1.3.0, < 2.0)
|
111
|
-
railties (= 4.2.6)
|
112
|
-
sprockets-rails
|
113
|
-
rails-deprecated_sanitizer (1.0.3)
|
114
|
-
activesupport (>= 4.2.0.alpha)
|
115
|
-
rails-dom-testing (1.0.7)
|
116
|
-
activesupport (>= 4.2.0.beta, < 5.0)
|
117
|
-
nokogiri (~> 1.6.0)
|
118
|
-
rails-deprecated_sanitizer (>= 1.0.1)
|
119
|
-
rails-html-sanitizer (1.0.3)
|
120
|
-
loofah (~> 2.0)
|
121
|
-
railties (4.2.6)
|
122
|
-
actionpack (= 4.2.6)
|
123
|
-
activesupport (= 4.2.6)
|
124
|
-
rake (>= 0.8.7)
|
125
|
-
thor (>= 0.18.1, < 2.0)
|
126
|
-
rake (10.5.0)
|
127
|
-
rb-fsevent (0.9.7)
|
128
|
-
rchardet (1.6.1)
|
129
|
-
responders (2.1.2)
|
130
|
-
railties (>= 4.2.0, < 5.1)
|
131
|
-
roo (2.3.2)
|
103
|
+
i18n (1.14.5)
|
104
|
+
concurrent-ruby (~> 1.0)
|
105
|
+
json (2.7.2)
|
106
|
+
loofah (2.22.0)
|
107
|
+
crass (~> 1.0.2)
|
108
|
+
nokogiri (>= 1.12.0)
|
109
|
+
mail (2.8.1)
|
110
|
+
mini_mime (>= 0.1.1)
|
111
|
+
net-imap
|
112
|
+
net-pop
|
113
|
+
net-smtp
|
114
|
+
marcel (1.0.4)
|
115
|
+
method_source (1.1.0)
|
116
|
+
mimemagic (0.4.3)
|
132
117
|
nokogiri (~> 1)
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
118
|
+
rake
|
119
|
+
mini_mime (1.1.5)
|
120
|
+
mini_portile2 (2.8.6)
|
121
|
+
minitest (5.23.1)
|
122
|
+
net-imap (0.3.7)
|
123
|
+
date
|
124
|
+
net-protocol
|
125
|
+
net-pop (0.1.2)
|
126
|
+
net-protocol
|
127
|
+
net-protocol (0.2.2)
|
128
|
+
timeout
|
129
|
+
net-smtp (0.5.0)
|
130
|
+
net-protocol
|
131
|
+
nio4r (2.7.3)
|
132
|
+
nokogiri (1.16.5)
|
133
|
+
mini_portile2 (~> 2.8.2)
|
134
|
+
racc (~> 1.4)
|
135
|
+
public_suffix (5.0.5)
|
136
|
+
racc (1.8.0)
|
137
|
+
rack (2.2.9)
|
138
|
+
rack-test (2.1.0)
|
139
|
+
rack (>= 1.3)
|
140
|
+
rails (6.1.7.7)
|
141
|
+
actioncable (= 6.1.7.7)
|
142
|
+
actionmailbox (= 6.1.7.7)
|
143
|
+
actionmailer (= 6.1.7.7)
|
144
|
+
actionpack (= 6.1.7.7)
|
145
|
+
actiontext (= 6.1.7.7)
|
146
|
+
actionview (= 6.1.7.7)
|
147
|
+
activejob (= 6.1.7.7)
|
148
|
+
activemodel (= 6.1.7.7)
|
149
|
+
activerecord (= 6.1.7.7)
|
150
|
+
activestorage (= 6.1.7.7)
|
151
|
+
activesupport (= 6.1.7.7)
|
152
|
+
bundler (>= 1.15.0)
|
153
|
+
railties (= 6.1.7.7)
|
154
|
+
sprockets-rails (>= 2.0.0)
|
155
|
+
rails-dom-testing (2.2.0)
|
156
|
+
activesupport (>= 5.0.0)
|
157
|
+
minitest
|
158
|
+
nokogiri (>= 1.6)
|
159
|
+
rails-html-sanitizer (1.5.0)
|
160
|
+
loofah (~> 2.19, >= 2.19.1)
|
161
|
+
railties (6.1.7.7)
|
162
|
+
actionpack (= 6.1.7.7)
|
163
|
+
activesupport (= 6.1.7.7)
|
164
|
+
method_source
|
165
|
+
rake (>= 12.2)
|
166
|
+
thor (~> 1.0)
|
167
|
+
rake (13.2.1)
|
168
|
+
rchardet (1.8.0)
|
169
|
+
responders (3.1.1)
|
170
|
+
actionpack (>= 5.2)
|
171
|
+
railties (>= 5.2)
|
172
|
+
rspec-core (3.13.0)
|
173
|
+
rspec-support (~> 3.13.0)
|
174
|
+
rspec-expectations (3.13.0)
|
137
175
|
diff-lcs (>= 1.2.0, < 2.0)
|
138
|
-
rspec-support (~> 3.
|
139
|
-
rspec-mocks (3.
|
176
|
+
rspec-support (~> 3.13.0)
|
177
|
+
rspec-mocks (3.13.1)
|
140
178
|
diff-lcs (>= 1.2.0, < 2.0)
|
141
|
-
rspec-support (~> 3.
|
142
|
-
rspec-rails (
|
143
|
-
actionpack (>=
|
144
|
-
activesupport (>=
|
145
|
-
railties (>=
|
146
|
-
rspec-core (~> 3.
|
147
|
-
rspec-expectations (~> 3.
|
148
|
-
rspec-mocks (~> 3.
|
149
|
-
rspec-support (~> 3.
|
150
|
-
rspec-support (3.
|
151
|
-
ruby-ole (1.2.
|
152
|
-
rubyzip (1.
|
153
|
-
simplecov (0.
|
154
|
-
docile (~> 1.1
|
155
|
-
json (
|
179
|
+
rspec-support (~> 3.13.0)
|
180
|
+
rspec-rails (6.1.2)
|
181
|
+
actionpack (>= 6.1)
|
182
|
+
activesupport (>= 6.1)
|
183
|
+
railties (>= 6.1)
|
184
|
+
rspec-core (~> 3.13)
|
185
|
+
rspec-expectations (~> 3.13)
|
186
|
+
rspec-mocks (~> 3.13)
|
187
|
+
rspec-support (~> 3.13)
|
188
|
+
rspec-support (3.13.1)
|
189
|
+
ruby-ole (1.2.13.1)
|
190
|
+
rubyzip (1.3.0)
|
191
|
+
simplecov (0.16.1)
|
192
|
+
docile (~> 1.1)
|
193
|
+
json (>= 1.8, < 3)
|
156
194
|
simplecov-html (~> 0.10.0)
|
157
|
-
simplecov-html (0.10.
|
158
|
-
|
159
|
-
|
160
|
-
ruby-ole
|
161
|
-
sprockets (
|
195
|
+
simplecov-html (0.10.2)
|
196
|
+
spreadsheet (1.3.1)
|
197
|
+
bigdecimal
|
198
|
+
ruby-ole
|
199
|
+
sprockets (4.2.1)
|
162
200
|
concurrent-ruby (~> 1.0)
|
163
|
-
rack (
|
164
|
-
sprockets-rails (3.
|
165
|
-
actionpack (>=
|
166
|
-
activesupport (>=
|
201
|
+
rack (>= 2.2.4, < 4)
|
202
|
+
sprockets-rails (3.4.2)
|
203
|
+
actionpack (>= 5.2)
|
204
|
+
activesupport (>= 5.2)
|
167
205
|
sprockets (>= 3.0.0)
|
168
|
-
sqlite3 (1.
|
169
|
-
|
206
|
+
sqlite3 (1.6.9)
|
207
|
+
mini_portile2 (~> 2.8.0)
|
208
|
+
term-ansicolor (1.6.0)
|
170
209
|
tins (~> 1.0)
|
171
|
-
thor (
|
172
|
-
|
173
|
-
tins (1.
|
174
|
-
tzinfo (
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
210
|
+
thor (1.3.1)
|
211
|
+
timeout (0.4.1)
|
212
|
+
tins (1.16.3)
|
213
|
+
tzinfo (2.0.6)
|
214
|
+
concurrent-ruby (~> 1.0)
|
215
|
+
websocket-driver (0.7.6)
|
216
|
+
websocket-extensions (>= 0.1.0)
|
217
|
+
websocket-extensions (0.1.5)
|
218
|
+
workbook (0.8.1)
|
219
|
+
axlsx (~> 3.0.0.pre)
|
220
|
+
json (~> 2.1)
|
221
|
+
nokogiri (~> 1.8)
|
181
222
|
rchardet (~> 1.3)
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
223
|
+
spreadsheet (~> 1.1)
|
224
|
+
xpath (3.2.0)
|
225
|
+
nokogiri (~> 1.8)
|
226
|
+
zeitwerk (2.6.14)
|
186
227
|
|
187
228
|
PLATFORMS
|
188
229
|
ruby
|
@@ -190,18 +231,15 @@ PLATFORMS
|
|
190
231
|
DEPENDENCIES
|
191
232
|
bundler
|
192
233
|
capybara (~> 2.1)
|
234
|
+
codeclimate-test-reporter
|
193
235
|
coveralls
|
194
|
-
|
195
|
-
jquery-rails
|
196
|
-
pry
|
197
|
-
pry-nav
|
198
|
-
rails (~> 4.2.0)
|
236
|
+
rails (~> 6.1.0)
|
199
237
|
rake
|
200
|
-
|
201
|
-
responders (~> 2.0)
|
238
|
+
responders (~> 3.0)
|
202
239
|
rspec-rails
|
240
|
+
simplecov
|
203
241
|
sqlite3
|
204
242
|
workbook_rails!
|
205
243
|
|
206
244
|
BUNDLED WITH
|
207
|
-
|
245
|
+
2.4.22
|
data/README.md
CHANGED
@@ -3,13 +3,13 @@ Workbook-Rails — Workbook templates for Rails views
|
|
3
3
|
|
4
4
|
[![Gem
|
5
5
|
Version](https://badge.fury.io/rb/workbook_rails.svg)](http://badge.fury.io/rb/workbook_rails)
|
6
|
-
[![Build Status](https://
|
7
|
-
[![
|
8
|
-
[![Coverage
|
9
|
-
|
6
|
+
[![Build Status](https://github.com/scambra/workbook_rails/actions/workflows/ruby.yml/badge.svg)](https://github.com/scambra/workbook_rails/actions/workflows/ruby.yml)
|
7
|
+
[![Maintainability](https://api.codeclimate.com/v1/badges/99cc4757969d308f258c/maintainability)](https://codeclimate.com/github/scambra/workbook_rails/maintainability)
|
8
|
+
[![Coverage Status](https://coveralls.io/repos/github/scambra/workbook_rails/badge.svg?branch=master)](https://coveralls.io/github/scambra/workbook_rails?branch=master)
|
9
|
+
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
|
10
10
|
|
11
11
|
|
12
|
-
##Installation
|
12
|
+
## Installation
|
13
13
|
|
14
14
|
In your Gemfile:
|
15
15
|
|
@@ -17,21 +17,21 @@ In your Gemfile:
|
|
17
17
|
gem 'workbook_rails'
|
18
18
|
```
|
19
19
|
|
20
|
-
##Requirements
|
20
|
+
## Requirements
|
21
21
|
|
22
|
-
* Rails
|
22
|
+
* Rails 6.0 to 7.1 (tested)
|
23
23
|
* **Workbook 0.4.16 requires Axlsx 2.0.1, which requires rubyzip 1.0.0**
|
24
24
|
* You must use `render_to_string` to render a mail attachment.
|
25
25
|
|
26
|
-
##FYI
|
26
|
+
## FYI
|
27
27
|
|
28
28
|
* This gem depends on [Workbook](https://github.com/murb/workbook). See [README](https://github.com/murb/workbook) or [rdoc](http://www.rubydoc.info/github/murb/workbook) for usage.
|
29
29
|
|
30
|
-
##Usage
|
30
|
+
## Usage
|
31
31
|
|
32
32
|
Workbook-Rails provides a renderer and a template handler. It adds the `:xlsx` and `:xls` formats and parses `.wb` templates. This lets you take all the [Workbook](https://github.com/murb/workbook) code out of your controller or model and place it inside the template, where view code belongs!
|
33
33
|
|
34
|
-
###Controller
|
34
|
+
### Controller
|
35
35
|
|
36
36
|
To use Workbook-Rails set your instance variables in your controller and configure the response if needed:
|
37
37
|
|
@@ -46,7 +46,7 @@ class ButtonController < ApplicationController
|
|
46
46
|
end
|
47
47
|
```
|
48
48
|
|
49
|
-
###Template
|
49
|
+
### Template
|
50
50
|
|
51
51
|
Create the template with the `.xlsx.wb` extension (`action_name.xlsx.wb` for example.) [**Watch out for typos!**](#troubleshooting) In the template, use workbook variable to create your spreadsheet:
|
52
52
|
|
@@ -63,7 +63,7 @@ Remember, like in `erb` templates, view helpers are available to use the `.wb` t
|
|
63
63
|
|
64
64
|
That's it. Call your action and your spreadsheet will be delivered.
|
65
65
|
|
66
|
-
###Rendering Options
|
66
|
+
### Rendering Options
|
67
67
|
|
68
68
|
You can call render in any of the following ways:
|
69
69
|
|
@@ -78,7 +78,7 @@ render xlsx: 'buttons'
|
|
78
78
|
render xlsx: 'latest_buttons', template: 'featured/latest'
|
79
79
|
```
|
80
80
|
|
81
|
-
###Multi-format Templates
|
81
|
+
### Multi-format Templates
|
82
82
|
|
83
83
|
You can create a template with `.wb` extension, without format, and use for generating different spreadsheets formats, such as xls and xlsx, using respond_to and format param.
|
84
84
|
|
@@ -91,7 +91,7 @@ respond_to do |format|
|
|
91
91
|
end
|
92
92
|
```
|
93
93
|
|
94
|
-
###Disposition
|
94
|
+
### Disposition
|
95
95
|
|
96
96
|
To specify a disposition (such as `inline` so the spreadsheet is opened inside the browser), use the `disposition` option:
|
97
97
|
|
@@ -101,7 +101,7 @@ render xlsx: "buttons", disposition: 'inline'
|
|
101
101
|
|
102
102
|
If `render xlsx:` is called, the disposition defaults to `attachment`.
|
103
103
|
|
104
|
-
###File name
|
104
|
+
### File name
|
105
105
|
|
106
106
|
If Rails calls Workbook through default channels (because you use `format.xlsx {}` for example) you must set the filename using the response header:
|
107
107
|
|
@@ -120,13 +120,7 @@ render xlsx: 'buttons'
|
|
120
120
|
render xlsx: 'latest_buttons', template: 'featured/latest'
|
121
121
|
```
|
122
122
|
|
123
|
-
|
124
|
-
|
125
|
-
```ruby
|
126
|
-
render xlsx: "action_or_template", filename: "my_new_filename.xlsx"
|
127
|
-
```
|
128
|
-
|
129
|
-
###Partials
|
123
|
+
### Partials
|
130
124
|
|
131
125
|
Partials work as expected:
|
132
126
|
|
@@ -143,7 +137,7 @@ sheet.name = "Cover Sheet"
|
|
143
137
|
sheet.table.push ['Cover', 'Sheet']
|
144
138
|
```
|
145
139
|
|
146
|
-
###Mailers
|
140
|
+
### Mailers
|
147
141
|
|
148
142
|
To use an xlsx template to render a mail attachment, use the following syntax:
|
149
143
|
|
@@ -160,16 +154,16 @@ end
|
|
160
154
|
* If the route specifies or suggests the `:xlsx` format you do not need to specify `formats` or `handlers`.
|
161
155
|
* If the template (`users/export`) can refer to only one file (the xlsx.axlsx template), you do not need to specify `handlers`, provided the `formats` includes `:xlsx`.
|
162
156
|
|
163
|
-
###Scripts
|
157
|
+
### Scripts
|
164
158
|
|
165
159
|
To generate a template within a script, you need to instantiate an ActionView context. Here are two gists showing how to perform this:
|
166
160
|
|
167
161
|
* [Using rails runner](https://gist.github.com/straydogstudio/323139591f2cc5d48fbc)
|
168
162
|
* [Without rails runner](https://gist.github.com/straydogstudio/dceb775ead81470cea70)
|
169
163
|
|
170
|
-
##Troubleshooting
|
164
|
+
## Troubleshooting
|
171
165
|
|
172
|
-
###Mispellings
|
166
|
+
### Mispellings
|
173
167
|
|
174
168
|
**It is easy to get the spelling wrong in the extension name, the format.xlsx statement, or in a render call.** Here are some possibilities:
|
175
169
|
|
@@ -198,19 +192,19 @@ If the request format matches you should be able to call:
|
|
198
192
|
|
199
193
|
This is a breaking change if you have the old syntax!
|
200
194
|
|
201
|
-
###What to do
|
195
|
+
### What to do
|
202
196
|
|
203
197
|
If you are having problems, try to isolate the issue. Use the console or a script to make sure your data is good. Then create the spreadsheet line by line without Workbook-Rails to see if you are having Workbook problems. If you can manually create the spreadsheet, create an issue and we will work it out.
|
204
198
|
|
205
|
-
##Dependencies
|
199
|
+
## Dependencies
|
206
200
|
|
207
201
|
- [Rails](https://github.com/rails/rails)
|
208
202
|
- [Workbook](https://github.com/murb/workbook)
|
209
203
|
|
210
|
-
##Authors
|
204
|
+
## Authors
|
211
205
|
|
212
206
|
* [Sergio Cambra](https://github.com/scambra)
|
213
207
|
|
214
|
-
##Thanks
|
208
|
+
## Thanks
|
215
209
|
|
216
210
|
Many thanks to [straydogstudio](https://github.com/straydogstudio) for [axlsx_rails](https://github.com/straydogstudio/axlsx_rails), which this gem is based in.
|
data/Rakefile
CHANGED
@@ -20,8 +20,11 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
20
20
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
23
|
+
begin
|
24
|
+
require "rspec/core/rake_task"
|
25
|
+
RSpec::Core::RakeTask.new('spec')
|
26
|
+
rescue LoadError
|
27
|
+
end
|
25
28
|
|
26
29
|
task :default => :spec
|
27
30
|
|
@@ -21,22 +21,19 @@ WorkbookRails::FORMATS.each do |format|
|
|
21
21
|
|
22
22
|
# disposition / filename
|
23
23
|
disposition = options.delete(:disposition) || 'attachment'
|
24
|
-
if file_name = options.delete(:filename)
|
24
|
+
if (file_name = options.delete(:filename))
|
25
25
|
file_name += ".#{format}" unless file_name =~ /\.#{format}$/
|
26
26
|
else
|
27
27
|
file_name = "#{filename.gsub(/^.*\//,'')}.#{format}"
|
28
28
|
end
|
29
29
|
|
30
|
-
options = options.merge(:
|
31
|
-
send_data render_to_string(options), :
|
30
|
+
options = options.merge(layout: false)
|
31
|
+
send_data render_to_string(options), filename: file_name, type: Mime[format], disposition: disposition
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
35
35
|
# For respond_to default
|
36
|
-
|
37
|
-
ActionController::Responder
|
38
|
-
rescue
|
39
|
-
else
|
36
|
+
if ActionController.const_defined? 'Responder'
|
40
37
|
class ActionController::Responder
|
41
38
|
WorkbookRails::FORMATS.each do |format|
|
42
39
|
define_method "to_#{format}" do
|
@@ -48,4 +45,4 @@ else
|
|
48
45
|
end
|
49
46
|
end
|
50
47
|
end
|
51
|
-
end
|
48
|
+
end
|