nesta 0.11.1 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (86) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/tests.yml +21 -0
  3. data/.gitmodules +0 -0
  4. data/CHANGES +44 -2
  5. data/Gemfile +1 -1
  6. data/Gemfile.lock +73 -55
  7. data/LICENSE +1 -1
  8. data/README.md +7 -14
  9. data/RELEASING.md +10 -9
  10. data/Rakefile +20 -3
  11. data/bin/nesta +1 -1
  12. data/config/deploy.rb.sample +1 -1
  13. data/lib/nesta/app.rb +4 -8
  14. data/lib/nesta/commands/demo/content.rb +28 -12
  15. data/lib/nesta/commands/edit.rb +2 -6
  16. data/lib/nesta/commands/new.rb +9 -11
  17. data/lib/nesta/commands/plugin/create.rb +7 -9
  18. data/lib/nesta/commands/template.rb +20 -0
  19. data/lib/nesta/commands/theme/create.rb +8 -8
  20. data/lib/nesta/commands/theme/enable.rb +3 -5
  21. data/lib/nesta/commands/theme/install.rb +12 -14
  22. data/lib/nesta/commands.rb +8 -0
  23. data/lib/nesta/config_file.rb +25 -0
  24. data/lib/nesta/helpers.rb +14 -0
  25. data/lib/nesta/models.rb +26 -22
  26. data/lib/nesta/navigation.rb +1 -1
  27. data/lib/nesta/system_command.rb +15 -0
  28. data/lib/nesta/version.rb +1 -1
  29. data/lib/nesta.rb +6 -1
  30. data/nesta.gemspec +11 -12
  31. data/templates/config/config.yml +1 -1
  32. data/{spec → test}/fixtures/nesta-plugin-test/Gemfile +0 -0
  33. data/{spec → test}/fixtures/nesta-plugin-test/Rakefile +0 -0
  34. data/{spec → test}/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb +0 -0
  35. data/{spec → test}/fixtures/nesta-plugin-test/lib/nesta-plugin-test/version.rb +0 -0
  36. data/{spec → test}/fixtures/nesta-plugin-test/lib/nesta-plugin-test.rb +0 -0
  37. data/{spec → test}/fixtures/nesta-plugin-test/nesta-plugin-test.gemspec +0 -0
  38. data/test/integration/atom_feed_test.rb +178 -0
  39. data/test/integration/commands/demo/content_test.rb +33 -0
  40. data/test/integration/commands/edit_test.rb +21 -0
  41. data/test/integration/commands/new_test.rb +91 -0
  42. data/test/integration/commands/plugin/create_test.rb +131 -0
  43. data/test/integration/commands/theme/create_test.rb +41 -0
  44. data/test/integration/commands/theme/enable_test.rb +28 -0
  45. data/test/integration/commands/theme/install_test.rb +66 -0
  46. data/test/integration/default_theme_test.rb +220 -0
  47. data/test/integration/overrides_test.rb +118 -0
  48. data/test/integration/route_handlers_test.rb +96 -0
  49. data/test/integration/sitemap_test.rb +85 -0
  50. data/test/integration_test_helper.rb +61 -0
  51. data/test/support/model_factory.rb +169 -0
  52. data/test/support/temporary_files.rb +33 -0
  53. data/test/support/test_configuration.rb +19 -0
  54. data/test/test_helper.rb +26 -0
  55. data/test/unit/config_test.rb +138 -0
  56. data/test/unit/file_model_test.rb +71 -0
  57. data/test/unit/menu_test.rb +82 -0
  58. data/test/unit/page_test.rb +571 -0
  59. data/test/unit/path_test.rb +41 -0
  60. data/test/unit/plugin_test.rb +47 -0
  61. data/test/unit/system_command_test.rb +20 -0
  62. data/views/master.sass +1 -1
  63. metadata +90 -89
  64. data/.hound.yml +0 -2
  65. data/.rspec +0 -1
  66. data/.travis.yml +0 -6
  67. data/lib/nesta/commands/command.rb +0 -58
  68. data/smoke-test.sh +0 -107
  69. data/spec/atom_spec.rb +0 -141
  70. data/spec/commands/demo/content_spec.rb +0 -65
  71. data/spec/commands/edit_spec.rb +0 -27
  72. data/spec/commands/new_spec.rb +0 -88
  73. data/spec/commands/plugin/create_spec.rb +0 -97
  74. data/spec/commands/system_spec.rb +0 -25
  75. data/spec/commands/theme/create_spec.rb +0 -41
  76. data/spec/commands/theme/enable_spec.rb +0 -44
  77. data/spec/commands/theme/install_spec.rb +0 -56
  78. data/spec/config_spec.rb +0 -127
  79. data/spec/model_factory.rb +0 -92
  80. data/spec/models_spec.rb +0 -700
  81. data/spec/overrides_spec.rb +0 -132
  82. data/spec/page_spec.rb +0 -560
  83. data/spec/path_spec.rb +0 -28
  84. data/spec/plugin_spec.rb +0 -51
  85. data/spec/sitemap_spec.rb +0 -105
  86. data/spec/spec_helper.rb +0 -114
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nesta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.1
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Graham Ashton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-26 00:00:00.000000000 Z
11
+ date: 2022-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: haml
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '3.1'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,6 +27,9 @@ dependencies:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '3.1'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: haml-contrib
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -42,16 +48,16 @@ dependencies:
42
48
  name: rack
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
- - - ">="
51
+ - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '1.3'
53
+ version: '2.0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
- - - ">="
58
+ - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '1.3'
60
+ version: '2.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: rdiscount
57
63
  requirement: !ruby/object:Gem::Requirement
@@ -81,117 +87,131 @@ dependencies:
81
87
  - !ruby/object:Gem::Version
82
88
  version: '4.2'
83
89
  - !ruby/object:Gem::Dependency
84
- name: sass
90
+ name: sassc
85
91
  requirement: !ruby/object:Gem::Requirement
86
92
  requirements:
87
93
  - - ">="
88
94
  - !ruby/object:Gem::Version
89
- version: '3.1'
95
+ version: '2.2'
90
96
  type: :runtime
91
97
  prerelease: false
92
98
  version_requirements: !ruby/object:Gem::Requirement
93
99
  requirements:
94
100
  - - ">="
95
101
  - !ruby/object:Gem::Version
96
- version: '3.1'
102
+ version: '2.2'
97
103
  - !ruby/object:Gem::Dependency
98
104
  name: sinatra
99
105
  requirement: !ruby/object:Gem::Requirement
100
106
  requirements:
101
107
  - - "~>"
102
108
  - !ruby/object:Gem::Version
103
- version: '1.4'
109
+ version: '2.0'
104
110
  type: :runtime
105
111
  prerelease: false
106
112
  version_requirements: !ruby/object:Gem::Requirement
107
113
  requirements:
108
114
  - - "~>"
109
115
  - !ruby/object:Gem::Version
110
- version: '1.4'
116
+ version: '2.0'
111
117
  - !ruby/object:Gem::Dependency
112
118
  name: tilt
113
119
  requirement: !ruby/object:Gem::Requirement
114
120
  requirements:
115
121
  - - "~>"
116
122
  - !ruby/object:Gem::Version
117
- version: '1.4'
123
+ version: '2.0'
118
124
  type: :runtime
119
125
  prerelease: false
120
126
  version_requirements: !ruby/object:Gem::Requirement
121
127
  requirements:
122
128
  - - "~>"
123
129
  - !ruby/object:Gem::Version
124
- version: '1.4'
130
+ version: '2.0'
125
131
  - !ruby/object:Gem::Dependency
126
132
  name: mr-sparkle
127
133
  requirement: !ruby/object:Gem::Requirement
128
134
  requirements:
129
135
  - - ">="
130
136
  - !ruby/object:Gem::Version
131
- version: 0.0.2
137
+ version: '0'
132
138
  type: :development
133
139
  prerelease: false
134
140
  version_requirements: !ruby/object:Gem::Requirement
135
141
  requirements:
136
142
  - - ">="
137
143
  - !ruby/object:Gem::Version
138
- version: 0.0.2
144
+ version: '0'
139
145
  - !ruby/object:Gem::Dependency
140
- name: rack-test
146
+ name: byebug
141
147
  requirement: !ruby/object:Gem::Requirement
142
148
  requirements:
143
- - - '='
149
+ - - ">="
144
150
  - !ruby/object:Gem::Version
145
- version: 0.6.1
151
+ version: '0'
146
152
  type: :development
147
153
  prerelease: false
148
154
  version_requirements: !ruby/object:Gem::Requirement
149
155
  requirements:
150
- - - '='
156
+ - - ">="
151
157
  - !ruby/object:Gem::Version
152
- version: 0.6.1
158
+ version: '0'
153
159
  - !ruby/object:Gem::Dependency
154
- name: rspec
160
+ name: capybara
155
161
  requirement: !ruby/object:Gem::Requirement
156
162
  requirements:
157
163
  - - "~>"
158
164
  - !ruby/object:Gem::Version
159
- version: 2.14.0
165
+ version: '2.0'
160
166
  type: :development
161
167
  prerelease: false
162
168
  version_requirements: !ruby/object:Gem::Requirement
163
169
  requirements:
164
170
  - - "~>"
165
171
  - !ruby/object:Gem::Version
166
- version: 2.14.0
172
+ version: '2.0'
167
173
  - !ruby/object:Gem::Dependency
168
- name: test-unit
174
+ name: minitest
169
175
  requirement: !ruby/object:Gem::Requirement
170
176
  requirements:
171
- - - '='
177
+ - - "~>"
172
178
  - !ruby/object:Gem::Version
173
- version: 1.2.3
179
+ version: '5.0'
174
180
  type: :development
175
181
  prerelease: false
176
182
  version_requirements: !ruby/object:Gem::Requirement
177
183
  requirements:
178
- - - '='
184
+ - - "~>"
179
185
  - !ruby/object:Gem::Version
180
- version: 1.2.3
186
+ version: '5.0'
181
187
  - !ruby/object:Gem::Dependency
182
- name: webrat
188
+ name: minitest-reporters
183
189
  requirement: !ruby/object:Gem::Requirement
184
190
  requirements:
185
- - - "~>"
191
+ - - ">="
186
192
  - !ruby/object:Gem::Version
187
- version: 0.7.3
193
+ version: '0'
188
194
  type: :development
189
195
  prerelease: false
190
196
  version_requirements: !ruby/object:Gem::Requirement
191
197
  requirements:
192
- - - "~>"
198
+ - - ">="
199
+ - !ruby/object:Gem::Version
200
+ version: '0'
201
+ - !ruby/object:Gem::Dependency
202
+ name: rake
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - ">="
206
+ - !ruby/object:Gem::Version
207
+ version: '0'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - ">="
193
213
  - !ruby/object:Gem::Version
194
- version: 0.7.3
214
+ version: '0'
195
215
  description: |
196
216
  Nesta is a lightweight Content Management System, written in Ruby using
197
217
  the Sinatra web framework. Nesta has the simplicity of a static site
@@ -211,10 +231,9 @@ executables:
211
231
  extensions: []
212
232
  extra_rdoc_files: []
213
233
  files:
234
+ - ".github/workflows/tests.yml"
214
235
  - ".gitignore"
215
- - ".hound.yml"
216
- - ".rspec"
217
- - ".travis.yml"
236
+ - ".gitmodules"
218
237
  - CHANGES
219
238
  - Gemfile
220
239
  - Gemfile.lock
@@ -229,18 +248,19 @@ files:
229
248
  - lib/nesta.rb
230
249
  - lib/nesta/app.rb
231
250
  - lib/nesta/commands.rb
232
- - lib/nesta/commands/command.rb
233
251
  - lib/nesta/commands/demo.rb
234
252
  - lib/nesta/commands/demo/content.rb
235
253
  - lib/nesta/commands/edit.rb
236
254
  - lib/nesta/commands/new.rb
237
255
  - lib/nesta/commands/plugin.rb
238
256
  - lib/nesta/commands/plugin/create.rb
257
+ - lib/nesta/commands/template.rb
239
258
  - lib/nesta/commands/theme.rb
240
259
  - lib/nesta/commands/theme/create.rb
241
260
  - lib/nesta/commands/theme/enable.rb
242
261
  - lib/nesta/commands/theme/install.rb
243
262
  - lib/nesta/config.rb
263
+ - lib/nesta/config_file.rb
244
264
  - lib/nesta/env.rb
245
265
  - lib/nesta/helpers.rb
246
266
  - lib/nesta/models.rb
@@ -248,34 +268,10 @@ files:
248
268
  - lib/nesta/overrides.rb
249
269
  - lib/nesta/path.rb
250
270
  - lib/nesta/plugin.rb
271
+ - lib/nesta/system_command.rb
251
272
  - lib/nesta/version.rb
252
273
  - nesta.gemspec
253
274
  - scripts/import-from-mephisto
254
- - smoke-test.sh
255
- - spec/atom_spec.rb
256
- - spec/commands/demo/content_spec.rb
257
- - spec/commands/edit_spec.rb
258
- - spec/commands/new_spec.rb
259
- - spec/commands/plugin/create_spec.rb
260
- - spec/commands/system_spec.rb
261
- - spec/commands/theme/create_spec.rb
262
- - spec/commands/theme/enable_spec.rb
263
- - spec/commands/theme/install_spec.rb
264
- - spec/config_spec.rb
265
- - spec/fixtures/nesta-plugin-test/Gemfile
266
- - spec/fixtures/nesta-plugin-test/Rakefile
267
- - spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test.rb
268
- - spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb
269
- - spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/version.rb
270
- - spec/fixtures/nesta-plugin-test/nesta-plugin-test.gemspec
271
- - spec/model_factory.rb
272
- - spec/models_spec.rb
273
- - spec/overrides_spec.rb
274
- - spec/page_spec.rb
275
- - spec/path_spec.rb
276
- - spec/plugin_spec.rb
277
- - spec/sitemap_spec.rb
278
- - spec/spec_helper.rb
279
275
  - templates/Gemfile
280
276
  - templates/Rakefile
281
277
  - templates/config.ru
@@ -295,6 +291,36 @@ files:
295
291
  - templates/themes/views/layout.haml
296
292
  - templates/themes/views/master.sass
297
293
  - templates/themes/views/page.haml
294
+ - test/fixtures/nesta-plugin-test/Gemfile
295
+ - test/fixtures/nesta-plugin-test/Rakefile
296
+ - test/fixtures/nesta-plugin-test/lib/nesta-plugin-test.rb
297
+ - test/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb
298
+ - test/fixtures/nesta-plugin-test/lib/nesta-plugin-test/version.rb
299
+ - test/fixtures/nesta-plugin-test/nesta-plugin-test.gemspec
300
+ - test/integration/atom_feed_test.rb
301
+ - test/integration/commands/demo/content_test.rb
302
+ - test/integration/commands/edit_test.rb
303
+ - test/integration/commands/new_test.rb
304
+ - test/integration/commands/plugin/create_test.rb
305
+ - test/integration/commands/theme/create_test.rb
306
+ - test/integration/commands/theme/enable_test.rb
307
+ - test/integration/commands/theme/install_test.rb
308
+ - test/integration/default_theme_test.rb
309
+ - test/integration/overrides_test.rb
310
+ - test/integration/route_handlers_test.rb
311
+ - test/integration/sitemap_test.rb
312
+ - test/integration_test_helper.rb
313
+ - test/support/model_factory.rb
314
+ - test/support/temporary_files.rb
315
+ - test/support/test_configuration.rb
316
+ - test/test_helper.rb
317
+ - test/unit/config_test.rb
318
+ - test/unit/file_model_test.rb
319
+ - test/unit/menu_test.rb
320
+ - test/unit/page_test.rb
321
+ - test/unit/path_test.rb
322
+ - test/unit/plugin_test.rb
323
+ - test/unit/system_command_test.rb
298
324
  - views/analytics.haml
299
325
  - views/atom.haml
300
326
  - views/categories.haml
@@ -332,33 +358,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
332
358
  - !ruby/object:Gem::Version
333
359
  version: '0'
334
360
  requirements: []
335
- rubyforge_project: nesta
336
- rubygems_version: 2.4.5
361
+ rubygems_version: 3.3.7
337
362
  signing_key:
338
363
  specification_version: 4
339
364
  summary: Ruby CMS, written in Sinatra
340
- test_files:
341
- - spec/atom_spec.rb
342
- - spec/commands/demo/content_spec.rb
343
- - spec/commands/edit_spec.rb
344
- - spec/commands/new_spec.rb
345
- - spec/commands/plugin/create_spec.rb
346
- - spec/commands/system_spec.rb
347
- - spec/commands/theme/create_spec.rb
348
- - spec/commands/theme/enable_spec.rb
349
- - spec/commands/theme/install_spec.rb
350
- - spec/config_spec.rb
351
- - spec/fixtures/nesta-plugin-test/Gemfile
352
- - spec/fixtures/nesta-plugin-test/Rakefile
353
- - spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test.rb
354
- - spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb
355
- - spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/version.rb
356
- - spec/fixtures/nesta-plugin-test/nesta-plugin-test.gemspec
357
- - spec/model_factory.rb
358
- - spec/models_spec.rb
359
- - spec/overrides_spec.rb
360
- - spec/page_spec.rb
361
- - spec/path_spec.rb
362
- - spec/plugin_spec.rb
363
- - spec/sitemap_spec.rb
364
- - spec/spec_helper.rb
365
+ test_files: []
data/.hound.yml DELETED
@@ -1,2 +0,0 @@
1
- ruby:
2
- enabled: true
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --color
data/.travis.yml DELETED
@@ -1,6 +0,0 @@
1
- language: ruby
2
- rvm:
3
- - 1.9.3
4
- - 2.0.0
5
- - 2.1.5
6
- - 2.2.1
@@ -1,58 +0,0 @@
1
- module Nesta
2
- module Commands
3
- class UsageError < RuntimeError; end
4
-
5
- module Command
6
- def run_process(*args)
7
- system(*args)
8
- if ! $?.success?
9
- message = if $?.exitstatus == 127
10
- "#{args[0]} not found"
11
- else
12
- "'#{args.join(' ')}' failed with status #{$?.exitstatus}"
13
- end
14
- $stderr.puts "Error: #{message}"
15
- exit 1
16
- end
17
- end
18
-
19
- def fail(message)
20
- $stderr.puts "Error: #{message}"
21
- exit 1
22
- end
23
-
24
- def template_root
25
- File.expand_path('../../../templates', File.dirname(__FILE__))
26
- end
27
-
28
- def copy_template(src, dest)
29
- FileUtils.mkdir_p(File.dirname(dest))
30
- template = ERB.new(File.read(File.join(template_root, src)), nil, "-")
31
- File.open(dest, 'w') { |file| file.puts template.result(binding) }
32
- end
33
-
34
- def copy_templates(templates)
35
- templates.each { |src, dest| copy_template(src, dest) }
36
- end
37
-
38
- def update_config_yaml(pattern, replacement)
39
- configured = false
40
- File.open(Nesta::Config.yaml_path, 'r+') do |file|
41
- output = ''
42
- file.each_line do |line|
43
- if configured
44
- output << line
45
- else
46
- output << line.sub(pattern, replacement)
47
- configured = true if line =~ pattern
48
- end
49
- end
50
- output << "#{replacement}\n" unless configured
51
- file.pos = 0
52
- file.print(output)
53
- file.truncate(file.pos)
54
- end
55
- end
56
- end
57
- end
58
- end
data/smoke-test.sh DELETED
@@ -1,107 +0,0 @@
1
- #!/bin/sh
2
-
3
- # This script just makes it easy to test that Nesta can install a new
4
- # site, launch it, and that it runs properly on supported versions of
5
- # Ruby.
6
- #
7
- # It assumes you've got the relevant versions of Ruby installed locally
8
- # via chruby.
9
-
10
-
11
- source /usr/local/opt/chruby/share/chruby/chruby.sh
12
-
13
- RUBIES="ruby-2.0.0-p598 ruby-2.1.5 ruby-2.2.1"
14
-
15
-
16
- ## Functions
17
-
18
- log()
19
- {
20
- cat <<-EOF
21
-
22
- ###############################################################################
23
- ##
24
- ## $1
25
- ##
26
- ###############################################################################
27
-
28
- EOF
29
- }
30
-
31
- nesta_version()
32
- {
33
- grep VERSION lib/nesta/version.rb | sed -e 's/ //g' | cut -f 2 -d "'"
34
- }
35
-
36
- gem_file()
37
- {
38
- echo "nesta-$(nesta_version).gem"
39
- }
40
-
41
- run_with_ruby()
42
- {
43
- chruby-exec $RUBY_VERSION -- $@
44
- }
45
-
46
- get_ruby()
47
- {
48
- # Why not just use RUBY_VERSION? Because tmux can prevent child
49
- # processes from changing the local version if the RBENV_VERSION
50
- # variable is set in another session. If we don't notice we'll think
51
- # we've been testing Nesta under multiple versions, but in fact
52
- # we'll just have been testing it under the same copy of Ruby every
53
- # time.
54
- run_with_ruby ruby --version | cut -f 2 -d ' '
55
- }
56
-
57
- run_tests()
58
- {
59
- run_with_ruby bundle install
60
- run_with_ruby bundle exec rake spec
61
- }
62
-
63
- build_and_install()
64
- {
65
- echo rm -f pkg/$(gem_file)
66
- run_with_ruby bundle exec rake install
67
- }
68
-
69
- site_folder()
70
- {
71
- echo "test-site-${RUBY_VERSION}"
72
- }
73
-
74
- create_and_test_new_site()
75
- {
76
- run_with_ruby bundle exec nesta new $(site_folder)
77
- cd $(site_folder)
78
- run_with_ruby bundle install
79
- run_with_ruby bundle exec nesta demo:content
80
-
81
- log "Starting server in $(site_folder)"
82
- set +e
83
- run_with_ruby bundle exec mr-sparkle
84
- set -e
85
-
86
- cd - >/dev/null
87
- rm -rf $(site_folder)
88
- }
89
-
90
-
91
- ## Main program
92
-
93
- set -e
94
- [ "$DEBUG" ] && set -x
95
-
96
- for RUBY_VERSION in $RUBIES; do
97
- log "Rebuilding nesta gem with Ruby $(get_ruby)"
98
-
99
- run_tests
100
- build_and_install
101
- create_and_test_new_site
102
-
103
- read -p "Was Ruby ${RUBY_VERSION} okay? Press return to continue..."
104
- done
105
-
106
- rm -f .ruby-version
107
- log "Reset Ruby version to $(get_ruby)"
data/spec/atom_spec.rb DELETED
@@ -1,141 +0,0 @@
1
- require File.expand_path('spec_helper', File.dirname(__FILE__))
2
- require File.expand_path('model_factory', File.dirname(__FILE__))
3
-
4
- describe "atom feed" do
5
- include ModelFactory
6
- include RequestSpecHelper
7
-
8
- before(:each) do
9
- stub_configuration
10
- stub_config_key("author", {
11
- "name" => "Fred Bloggs",
12
- "uri" => "http://fredbloggs.com",
13
- "email" => "fred@fredbloggs.com"
14
- })
15
- get "/articles.xml"
16
- end
17
-
18
- after(:each) do
19
- remove_temp_directory
20
- end
21
-
22
- it "should render successfully" do
23
- last_response.should be_ok
24
- end
25
-
26
- it "should use Atom's XML namespace" do
27
- assert_xpath("//feed[@xmlns='http://www.w3.org/2005/Atom']")
28
- end
29
-
30
- it "should have an ID element" do
31
- assert_selector("id:contains('tag:example.org,2009:/')")
32
- end
33
-
34
- it "should have an alternate link element" do
35
- assert_xpath("//feed/link[@rel='alternate'][@href='http://example.org/']")
36
- end
37
-
38
- it "should have a self link element" do
39
- assert_xpath(
40
- "//feed/link[@rel='self'][@href='http://example.org/articles.xml']")
41
- end
42
-
43
- it "should have title and subtitle" do
44
- assert_xpath("//feed/title[@type='text']", content: "My blog")
45
- assert_xpath("//feed/subtitle[@type='text']", content: "about stuff")
46
- end
47
-
48
- it "should include the author details" do
49
- assert_xpath("//feed/author/name", content: "Fred Bloggs")
50
- assert_xpath("//feed/author/uri", content: "http://fredbloggs.com")
51
- assert_xpath("//feed/author/email", content: "fred@fredbloggs.com")
52
- end
53
-
54
- describe "for article" do
55
- before(:each) do
56
- @heading = "Heading"
57
- @articles = []
58
- @category = create_category
59
- 11.times do |i|
60
- @articles << create_article(
61
- heading: "Article #{i + 1}",
62
- path: "article-#{i + 1}",
63
- metadata: {
64
- "categories" => @category.path,
65
- "date" => "#{i + 1} January 2009"
66
- },
67
- content: "Blah blah\n\n## #{@heading}\n\n[link](/foo)"
68
- )
69
- end
70
- @article = @articles.last
71
- get "/articles.xml"
72
- end
73
-
74
- it "should set title" do
75
- assert_xpath("//entry/title", content: "Article 11")
76
- end
77
-
78
- it "should link to the HTML version" do
79
- url = "http://example.org/#{@article.path}"
80
- assert_xpath(
81
- "//entry/link[@href='#{url}'][@rel='alternate'][@type='text/html']")
82
- end
83
-
84
- it "should define unique ID" do
85
- assert_xpath(
86
- "//entry/id",
87
- content: "tag:example.org,2009-01-11:#{@article.abspath}"
88
- )
89
- end
90
-
91
- it "should specify date published" do
92
- assert_xpath("//entry/published", content: "2009-01-11T00:00:00+00:00")
93
- end
94
-
95
- it "should specify article categories" do
96
- assert_xpath("//category[@term='#{@category.permalink}']")
97
- end
98
-
99
- it "should have article content" do
100
- assert_xpath "//entry/content[@type='html']" do |a|
101
- a.should contain "<h2>#{@heading}</h2>"
102
- end
103
- end
104
-
105
- it "should include hostname in URLs" do
106
- assert_xpath("//entry/content") do |c|
107
- c.should contain 'http://example.org/foo'
108
- end
109
- end
110
-
111
- it "should not include article heading in content" do
112
- body.should_not have_selector("summary:contains('#{@article.heading}')")
113
- end
114
-
115
- it "should list the latest 10 articles" do
116
- assert_selector("entry", count: 10)
117
- end
118
- end
119
-
120
- describe "page with no date" do
121
- before(:each) do
122
- create_category(path: "no-date")
123
- get "/articles.xml"
124
- end
125
-
126
- it "should not appear in feed" do
127
- body.should_not have_selector("entry id:contains('no-date')")
128
- end
129
- end
130
-
131
- describe "article with atom ID" do
132
- it "should use pre-defined ID" do
133
- create_article(metadata: {
134
- "date" => "1 January 2009",
135
- "atom id" => "use-this-id"
136
- })
137
- get "/articles.xml"
138
- assert_xpath("//entry/id", content: "use-this-id")
139
- end
140
- end
141
- end