ramaze 2012.12.08b → 2012.12.08

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/README.md CHANGED
@@ -104,6 +104,7 @@ table of contents isn't rendered. You can find all these files in the ``guide/``
104
104
  directory.
105
105
 
106
106
  * {file:general/installation Installation}
107
+ * {file:general/upgrading Upgrading}
107
108
  * {file:general/principles Principles}
108
109
  * {file:general/special_thanks Special Thanks}
109
110
  * {file:general/contributing Contributing To Ramaze}
@@ -2,7 +2,7 @@ Following persons have contributed to ramaze.
2
2
  (Sorted by number of submitted patches, then alphabetically)
3
3
 
4
4
  2740 Michael Fellinger <m.fellinger@gmail.com>
5
- 231 Yorick Peterse <yorickpeterse@gmail.com>
5
+ 238 Yorick Peterse <yorickpeterse@gmail.com>
6
6
  216 Aman Gupta <aman@ramaze.net>
7
7
  89 Jonathan Buch <jonathan.buch@gmail.com>
8
8
  77 Pistos <gitsomegrace.5.pistos@geoshell.com>
@@ -1,3 +1,52 @@
1
+ [679c415 | Sat Dec 08 18:16:36 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
2
+
3
+ * Added a note about upgrading.
4
+
5
+ [ci skip]
6
+
7
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
8
+
9
+ [6191bdf | Sat Dec 08 17:35:15 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
10
+
11
+ * Disable syslog tests on jruby.
12
+
13
+ The Syslog tests can not be executed on jruby due to the use of Process.fork.
14
+
15
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
16
+
17
+ [5be0d61 | Sat Dec 08 17:27:21 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
18
+
19
+ * Enable syslog and disable localmemcache for jruby.
20
+
21
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
22
+
23
+ [d8fdd3d | Sat Dec 08 17:16:47 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
24
+
25
+ * Don't install C extensions for jruby.
26
+
27
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
28
+
29
+ [8c271b7 | Sat Dec 08 17:08:22 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
30
+
31
+ * Replaced hpricot with Nokogiri.
32
+
33
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
34
+
35
+ [c35a729 | Sat Dec 08 01:21:43 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
36
+
37
+ * Don't install localmemcache for jruby.
38
+
39
+ Localmemcache is a C extension and these don't work reliably on Jruby. C
40
+ extension support is also disabled on Travis CI.
41
+
42
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
43
+
44
+ [aad4e3e | Fri Dec 07 23:28:01 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
45
+
46
+ * Release 2012.12.08b
47
+
48
+ Signed-off-by: Yorick Peterse <yorickpeterse@gmail.com>
49
+
1
50
  [d94938b | Fri Dec 07 23:27:39 UTC 2012] Yorick Peterse <yorickpeterse@gmail.com>
2
51
 
3
52
  * Switch back to dates for versions.
@@ -0,0 +1,85 @@
1
+ # @title Upgrading
2
+ # Upgrading
3
+
4
+ Ramaze strives to be backwards compatible between each release. However, some
5
+ releases may contain changes that are *not* backwards compatible. This document
6
+ describes the steps required to upgrade between these releases.
7
+
8
+ ## Upgrading to Ramaze 2012.12.08
9
+
10
+ Ramaze 2012.12.08 is **not** backwards compatible with previous releases due
11
+ to changes made in Innate 2012.12.
12
+
13
+ ### Middleware
14
+
15
+ In previous versions one could add Rack middleware using `Ramaze.middleware!`.
16
+ This method has been renamed to `Ramaze.middleware` (without the `!`) and its
17
+ use has been changed. Instead of calling `run Ramaze.middleware` one now has to
18
+ use `run Ramaze.core`.
19
+
20
+ An example of the old way of defining middleware:
21
+
22
+ Ramaze.middleware! :dev do |m|
23
+ m.use Rack::Lint
24
+ m.run Ramaze.middleware
25
+ end
26
+
27
+ The new way of defining middleware:
28
+
29
+ Ramaze.middleware :dev do
30
+ use Rack::Lint
31
+ run Ramaze.core
32
+ end
33
+
34
+ ### Commands
35
+
36
+ Various executable commands such as `ramaze start` and `ramaze console` have
37
+ been removed in favour of the use of Rake tasks. For existing projects that do
38
+ not have these Rake tasks you'll have to import them manually, new projects
39
+ will have these tasks automatically. These tasks are located [here][rake
40
+ tasks].
41
+
42
+ These commands were removed as they contained a lot of old and rotting code
43
+ without any tests. Some of them, such as `ramaze start` weren't very useful
44
+ either as most people will use the commands for their webservers (e.g. Thin)
45
+ instead. The use of Rake tasks also makes it possible for people to customize
46
+ these to their liking.
47
+
48
+ ### Snippets
49
+
50
+ Ramaze ships with various snippets that extend various core Ruby classes. In
51
+ Ramaze 2012.12.08 a lot of these snippets have been removed. A list of all the
52
+ removed snippets can be found [here][removed snippets].
53
+
54
+ ### Loggers
55
+
56
+ The following logging classes are no longer available:
57
+
58
+ * Ramaze::Logger::Growl
59
+ * Ramaze::Logger::Analogger
60
+ * Ramaze::Logger::Knotify
61
+ * Ramaze::Logger::Xosd
62
+
63
+ ### Helpers
64
+
65
+ The following helpers have been removed:
66
+
67
+ * Ramaze::Helper::Disqus
68
+ * Ramaze::Helper::Ultraviolet
69
+
70
+ ### Core classes
71
+
72
+ The following core classes have been removed:
73
+
74
+ * Ramaze::AppGraph
75
+ * Ramaze::Plugin
76
+ * Ramaze::MiddlewareCompiler (alias of Innate::MiddlewareCompiler)
77
+
78
+ ### Prototypes
79
+
80
+ The prototype generated by `ramaze create` has been changed. It contains a set
81
+ of Rake tasks, a README, a Gemfile and some other small changes compared to the
82
+ previous prototype. Existing projects are not affected.
83
+
84
+ [rake tasks]: https://github.com/Ramaze/ramaze/blob/master/lib/proto/task/ramaze.rake
85
+ [removed snippets]: https://github.com/Ramaze/ramaze/commit/7e966dcdec50d490eb828f7673f101b1a6b087b3
@@ -1,3 +1,3 @@
1
1
  module Ramaze
2
- VERSION = '2012.12.08b'
2
+ VERSION = '2012.12.08'
3
3
  end
@@ -27,29 +27,34 @@ Gem::Specification.new do |s|
27
27
  s.add_development_dependency 'erubis'
28
28
  s.add_development_dependency 'ezamar'
29
29
  s.add_development_dependency 'haml'
30
- s.add_development_dependency 'hpricot'
31
30
  s.add_development_dependency 'liquid'
32
31
  s.add_development_dependency 'locale'
33
32
  s.add_development_dependency 'maruku'
34
33
  s.add_development_dependency 'mustache'
35
34
  s.add_development_dependency 'rack-contrib'
36
35
  s.add_development_dependency 'rack-test'
37
- s.add_development_dependency 'rdiscount'
38
36
  s.add_development_dependency 'redis'
39
37
  s.add_development_dependency 'sass'
40
38
  s.add_development_dependency 'sequel'
41
39
  s.add_development_dependency 'slim'
42
40
  s.add_development_dependency 'slippers'
43
- s.add_development_dependency 'sqlite3'
44
41
  s.add_development_dependency 'tagz'
45
42
  s.add_development_dependency 'tenjin'
46
43
  s.add_development_dependency 'yard'
47
- s.add_development_dependency 'localmemcache'
48
44
 
49
45
  if RUBY_VERSION.to_f >= 1.9
50
46
  s.add_development_dependency 'lokar'
51
47
  end
52
48
 
49
+ # C extensions don't work reliably on jruby and Travis CI doesn't have them
50
+ # enabled.
51
+ if !RUBY_DESCRIPTION.include?('jruby')
52
+ s.add_development_dependency 'localmemcache'
53
+ s.add_development_dependency 'nokogiri'
54
+ s.add_development_dependency 'rdiscount'
55
+ s.add_development_dependency 'sqlite3'
56
+ end
57
+
53
58
  # Nagoro doesn't seem to work on Rbx
54
59
  if !RUBY_DESCRIPTION.include?('rubinius')
55
60
  s.add_development_dependency 'nagoro'
@@ -2,6 +2,8 @@
2
2
  # All files in this distribution are subject to the terms of the MIT license.
3
3
 
4
4
  require File.expand_path('../../../../spec/helper', __FILE__)
5
+
6
+ spec_require 'sqlite3'
5
7
  spec_require 'sequel'
6
8
 
7
9
  DB = Sequel.sqlite(':memory:')
@@ -3,7 +3,7 @@
3
3
 
4
4
  require File.expand_path('../../../../spec/helper', __FILE__)
5
5
 
6
- spec_require 'hpricot'
6
+ spec_require 'nokogiri'
7
7
 
8
8
  Ramaze.middleware(:spec) do
9
9
  run Rack::ETag.new(
@@ -38,23 +38,25 @@ describe 'Directory listing' do
38
38
 
39
39
  def check(url, title, list)
40
40
  got = get(url)
41
- got.status.should == 200
41
+
42
+ got.status.should == 200
42
43
  got['Content-Type'].should == 'text/html; charset=utf-8'
43
44
 
44
- doc = Hpricot(got.body)
45
+ doc = Nokogiri::HTML(got.body)
46
+
45
47
  doc.at(:title).inner_text.should == title
46
48
 
47
- (doc/'td.name/a').map{|a| [a[:href], a.inner_text] }.should == list
49
+ doc.css('td.name a').map{|a| [a[:href], a.inner_text] }.should == list
48
50
  end
49
51
 
50
52
  should 'dry serve root directory' do
51
- files = [
52
- ["../", "Parent Directory"],
53
- ["/favicon.ico", "favicon.ico"],
54
- ["/file+name.txt", "file name.txt"],
55
- ["/test/", "test/"],
56
- ["/test_download.css", "test_download.css"]
57
- ]
53
+ files = [
54
+ ["../", "Parent Directory"],
55
+ ["/favicon.ico", "favicon.ico"],
56
+ ["/file+name.txt", "file name.txt"],
57
+ ["/test/", "test/"],
58
+ ["/test_download.css", "test_download.css"]
59
+ ]
58
60
 
59
61
  check '/', '/', files
60
62
  end
@@ -66,6 +68,7 @@ describe 'Directory listing' do
66
68
  ["/test/five.txt", "five.txt"],
67
69
  ["/test/six.txt", "six.txt"]
68
70
  ]
71
+
69
72
  check '/test', '/test', files
70
73
  end
71
74
 
@@ -2,7 +2,8 @@
2
2
  # All files in this distribution are subject to the terms of the MIT license.
3
3
 
4
4
  require File.expand_path('../../../../spec/helper', __FILE__)
5
- spec_require 'hpricot'
5
+
6
+ spec_require 'nokogiri'
6
7
 
7
8
  class SpecHelperPaginateArray < Ramaze::Controller
8
9
  map '/array'
@@ -38,8 +39,9 @@ describe Ramaze::Helper::Paginate do
38
39
  behaves_like :rack_test
39
40
 
40
41
  it 'shows navigation for page 1' do
41
- doc = Hpricot(get("/array/navigation").body)
42
- (doc/:a).map{|a| [a.inner_text, a[:href]] }.
42
+ doc = Nokogiri::HTML(get("/array/navigation").body)
43
+
44
+ doc.css('a').map{|a| [a.inner_text, a[:href]] }.
43
45
  should == [
44
46
  ['1', '/array/navigation?pager=1'],
45
47
  ['2', '/array/navigation?pager=2'],
@@ -49,8 +51,9 @@ describe Ramaze::Helper::Paginate do
49
51
  end
50
52
 
51
53
  it 'shows navigation for page 2' do
52
- doc = Hpricot(get("/array/navigation?pager=2").body)
53
- (doc/:a).map{|a| [a.inner_text, a[:href]] }.
54
+ doc = Nokogiri::HTML(get("/array/navigation?pager=2").body)
55
+
56
+ doc.css('a').map{|a| [a.inner_text, a[:href]] }.
54
57
  should == [
55
58
  ['<<', '/array/navigation?pager=1'],
56
59
  ['<', '/array/navigation?pager=1'],
@@ -62,8 +65,8 @@ describe Ramaze::Helper::Paginate do
62
65
  end
63
66
 
64
67
  it 'shows navigation for page 3' do
65
- doc = Hpricot(get("/array/navigation?pager=3").body)
66
- (doc/:a).map{|a| [a.inner_text, a[:href]] }.
68
+ doc = Nokogiri::HTML(get("/array/navigation?pager=3").body)
69
+ doc.css('a').map{|a| [a.inner_text, a[:href]] }.
67
70
  should == [
68
71
  ['<<', '/array/navigation?pager=1'],
69
72
  ['<', '/array/navigation?pager=2'],
@@ -78,7 +81,7 @@ describe Ramaze::Helper::Paginate do
78
81
  end
79
82
 
80
83
  it 'sets default css elements on page 1' do
81
- doc = Hpricot(get('/array/navigation').body)
84
+ doc = Nokogiri::HTML(get('/array/navigation').body)
82
85
  # Paginator outputs spans for disabled elements
83
86
  # Since we're on the first page, the first two
84
87
  # elements are spans, then a's
@@ -109,7 +112,7 @@ describe Ramaze::Helper::Paginate do
109
112
  end
110
113
 
111
114
  it 'sets default css elements on page 2' do
112
- doc = Hpricot(get('/array/navigation?pager=2').body)
115
+ doc = Nokogiri::HTML(get('/array/navigation?pager=2').body)
113
116
  # Paginator outputs spans for disabled elements
114
117
  # Since we're on the second page, none are disabled
115
118
  # Note that this is only valid for the second page since
@@ -140,7 +143,7 @@ describe Ramaze::Helper::Paginate do
140
143
  end
141
144
 
142
145
  it 'sets default css elements on page 3' do
143
- doc = Hpricot(get('/array/navigation?pager=3').body)
146
+ doc = Nokogiri::HTML(get('/array/navigation?pager=3').body)
144
147
  # Paginator outputs spans for disabled elements
145
148
  # Since we're on the last page, last and next will be disabled
146
149
  # Note that this is only valid for the third page
@@ -173,7 +176,7 @@ describe Ramaze::Helper::Paginate do
173
176
  end
174
177
 
175
178
  it 'sets our custom css elements for page 1' do
176
- doc = Hpricot(get('/array/custom_navigation').body)
179
+ doc = Nokogiri::HTML(get('/array/custom_navigation').body)
177
180
  # Paginator outputs spans for disabled elements
178
181
  # Since we're on the first page, the first two
179
182
  # elements are spans, then a's
@@ -209,7 +212,7 @@ describe Ramaze::Helper::Paginate do
209
212
  end
210
213
 
211
214
  it 'sets our custom css elements on page 2' do
212
- doc = Hpricot(get('/array/custom_navigation?pager=2').body)
215
+ doc = Nokogiri::HTML(get('/array/custom_navigation?pager=2').body)
213
216
  # Paginator outputs spans for disabled elements
214
217
  # Since we're on the second page, none are disabled
215
218
  # Note that this is only valid for the second page since
@@ -240,7 +243,7 @@ describe Ramaze::Helper::Paginate do
240
243
  end
241
244
 
242
245
  it 'sets our custom css elements on page 3' do
243
- doc = Hpricot(get('/array/custom_navigation?pager=3').body)
246
+ doc = Nokogiri::HTML(get('/array/custom_navigation?pager=3').body)
244
247
  # Paginator outputs spans for disabled elements
245
248
  # Since we're on the last page, last and next will be disabled
246
249
  # Note that this is only valid for the third page
@@ -4,9 +4,9 @@
4
4
 
5
5
  require File.expand_path('../../../../spec/helper', __FILE__)
6
6
 
7
- spec_precondition 'Syslog should be supported' do
7
+ spec_precondition 'Process.fork should be supported' do
8
8
  if RUBY_DESCRIPTION.include?('jruby')
9
- should.flunk 'Forking/Syslog is not supported'
9
+ should.flunk 'These tests use Process.fork which does not work on jruby'
10
10
  end
11
11
  end
12
12
 
@@ -14,70 +14,73 @@ require 'ramaze/log/syslog'
14
14
 
15
15
  describe 'Syslog' do
16
16
 
17
- # close the syslog, if it was open for some reason before we
18
- # start a test.
19
- before do
20
- if ( Syslog.opened? )
21
- ::Syslog.close
22
- end
23
- end
17
+ # close the syslog, if it was open for some reason before we
18
+ # start a test.
19
+ before do
20
+ Syslog.close if Syslog.opened?
21
+ end
22
+
23
+ it 'should default initialize correctly' do
24
+ syslog = Ramaze::Logger::Syslog.new
25
+ ::Syslog.opened?.should == true
26
+ ::Syslog.ident.should == $0
27
+ ::Syslog.options.should == ( ::Syslog::LOG_PID | ::Syslog::LOG_CONS )
28
+ ::Syslog.facility.should == ::Syslog::LOG_USER
29
+ end
30
+
31
+ it 'should handle non default initialization' do
32
+ syslog = Ramaze::Logger::Syslog.new( 'ramaze_syslog_test',
33
+ ::Syslog::LOG_NDELAY | ::Syslog::LOG_NOWAIT,
34
+ ::Syslog::LOG_DAEMON )
35
+ ::Syslog.opened?.should == true
36
+ ::Syslog.ident.should == 'ramaze_syslog_test'
37
+ ::Syslog.options.should == ( ::Syslog::LOG_NDELAY | ::Syslog::LOG_NOWAIT )
38
+ ::Syslog.facility.should == ::Syslog::LOG_DAEMON
39
+ end
24
40
 
25
- it 'should default initialize correctly' do
26
- syslog = Ramaze::Logger::Syslog.new
27
- ::Syslog.opened?.should == true
28
- ::Syslog.ident.should == $0
29
- ::Syslog.options.should == ( ::Syslog::LOG_PID | ::Syslog::LOG_CONS )
30
- ::Syslog.facility.should == ::Syslog::LOG_USER
31
- end
41
+ # We test the actual logging using a trick found in te test code of the
42
+ # syslog module. We create a pipe, fork a child, reroute the childs
43
+ # stderr to the pipe. Then we open the logging using LOG_PERROR, so all
44
+ # log messages are written to stderror. In the parent we read the messages
45
+ # from the pipe and compare them to what we expected.
46
+ def test_log_msg( type, priority, msg )
47
+ logpipe = IO::pipe
48
+ child = fork {
49
+ logpipe[0].close
50
+ STDERR.reopen(logpipe[1])
51
+ syslog = Ramaze::Logger::Syslog.new( 'ramaze_syslog_test',
52
+ ::Syslog::LOG_PID | ::Syslog::LOG_NDELAY | ::Syslog::LOG_PERROR,
53
+ ::Syslog::LOG_USER )
54
+ syslog.send priority, msg
55
+ Process.exit!( 0 )
56
+ }
57
+ logpipe[1].close
58
+ Process.waitpid(child)
32
59
 
33
- it 'should handle non default initialization' do
34
- syslog = Ramaze::Logger::Syslog.new( 'ramaze_syslog_test',
35
- ::Syslog::LOG_NDELAY | ::Syslog::LOG_NOWAIT,
36
- ::Syslog::LOG_DAEMON )
37
- ::Syslog.opened?.should == true
38
- ::Syslog.ident.should == 'ramaze_syslog_test'
39
- ::Syslog.options.should == ( ::Syslog::LOG_NDELAY | ::Syslog::LOG_NOWAIT )
40
- ::Syslog.facility.should == ::Syslog::LOG_DAEMON
41
- end
60
+ logpipe[0].gets.should == "ramaze_syslog_test[#{child}]: #{msg}\n"
61
+ end
42
62
 
43
- # We test the actual logging using a trick found in te test code of the
44
- # syslog module. We create a pipe, fork a child, reroute the childs
45
- # stderr to the pipe. Then we open the logging using LOG_PERROR, so all
46
- # log messages are written to stderror. In the parent we read the messages
47
- # from the pipe and compare them to what we expected.
48
- def test_log_msg( type, priority, msg )
49
- logpipe = IO::pipe
50
- child = fork {
51
- logpipe[0].close
52
- STDERR.reopen(logpipe[1])
53
- syslog = Ramaze::Logger::Syslog.new( 'ramaze_syslog_test',
54
- ::Syslog::LOG_PID | ::Syslog::LOG_NDELAY | ::Syslog::LOG_PERROR,
55
- ::Syslog::LOG_USER )
56
- syslog.send priority, msg
57
- Process.exit!( 0 )
58
- }
59
- logpipe[1].close
60
- Process.waitpid(child)
63
+ it 'should handle debug' do
64
+ test_log_msg :direct, :debug, "Hello Debug World"
65
+ end
61
66
 
62
- logpipe[0].gets.should == "ramaze_syslog_test[#{child}]: #{msg}\n"
63
- end
67
+ it 'should handle dev' do
68
+ test_log_msg :direct, :dev, "Hello Dev World"
69
+ end
64
70
 
65
- it 'should handle debug' do
66
- test_log_msg :direct, :debug, "Hello Debug World"
67
- end
68
- it 'should handle dev' do
69
- test_log_msg :direct, :dev, "Hello Dev World"
70
- end
71
- it 'should handle info' do
72
- test_log_msg :direct, :info, 'Hello Info World!'
73
- end
74
- it 'should handle warn' do
75
- test_log_msg :direct, :warn, 'Hello Warn World!'
76
- end
77
- it 'should handle error' do
78
- test_log_msg :direct, :error, 'Hello Error World!'
79
- end
80
- it 'should escape % sequences' do
81
- test_log_msg :direct, :info, "Hello Cruel |évil| 戈 REAL %s World"
82
- end
71
+ it 'should handle info' do
72
+ test_log_msg :direct, :info, 'Hello Info World!'
73
+ end
74
+
75
+ it 'should handle warn' do
76
+ test_log_msg :direct, :warn, 'Hello Warn World!'
77
+ end
78
+
79
+ it 'should handle error' do
80
+ test_log_msg :direct, :error, 'Hello Error World!'
81
+ end
82
+
83
+ it 'should escape % sequences' do
84
+ test_log_msg :direct, :info, "Hello Cruel |évil| 戈 REAL %s World"
85
+ end
83
86
  end
@@ -1,4 +1,6 @@
1
1
  require File.expand_path('../../../../spec/helper', __FILE__)
2
+
3
+ spec_require 'localmemcache'
2
4
  spec_require 'sequel'
3
5
 
4
6
  class SpecSession < Ramaze::Controller
@@ -1,4 +1,6 @@
1
1
  require File.expand_path('../../../../spec/helper', __FILE__)
2
+
3
+ spec_require 'sqlite3'
2
4
  spec_require 'sequel'
3
5
 
4
6
  class SpecSession < Ramaze::Controller
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ramaze
3
3
  version: !ruby/object:Gem::Version
4
- version: 2012.12.08b
5
- prerelease: 10
4
+ version: 2012.12.08
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Michael 'manveru' Fellinger
@@ -157,7 +157,7 @@ dependencies:
157
157
  - !ruby/object:Gem::Version
158
158
  version: '0'
159
159
  - !ruby/object:Gem::Dependency
160
- name: hpricot
160
+ name: liquid
161
161
  requirement: !ruby/object:Gem::Requirement
162
162
  none: false
163
163
  requirements:
@@ -173,7 +173,7 @@ dependencies:
173
173
  - !ruby/object:Gem::Version
174
174
  version: '0'
175
175
  - !ruby/object:Gem::Dependency
176
- name: liquid
176
+ name: locale
177
177
  requirement: !ruby/object:Gem::Requirement
178
178
  none: false
179
179
  requirements:
@@ -189,7 +189,7 @@ dependencies:
189
189
  - !ruby/object:Gem::Version
190
190
  version: '0'
191
191
  - !ruby/object:Gem::Dependency
192
- name: locale
192
+ name: maruku
193
193
  requirement: !ruby/object:Gem::Requirement
194
194
  none: false
195
195
  requirements:
@@ -205,7 +205,7 @@ dependencies:
205
205
  - !ruby/object:Gem::Version
206
206
  version: '0'
207
207
  - !ruby/object:Gem::Dependency
208
- name: maruku
208
+ name: mustache
209
209
  requirement: !ruby/object:Gem::Requirement
210
210
  none: false
211
211
  requirements:
@@ -221,7 +221,7 @@ dependencies:
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
223
  - !ruby/object:Gem::Dependency
224
- name: mustache
224
+ name: rack-contrib
225
225
  requirement: !ruby/object:Gem::Requirement
226
226
  none: false
227
227
  requirements:
@@ -237,7 +237,7 @@ dependencies:
237
237
  - !ruby/object:Gem::Version
238
238
  version: '0'
239
239
  - !ruby/object:Gem::Dependency
240
- name: rack-contrib
240
+ name: rack-test
241
241
  requirement: !ruby/object:Gem::Requirement
242
242
  none: false
243
243
  requirements:
@@ -253,7 +253,7 @@ dependencies:
253
253
  - !ruby/object:Gem::Version
254
254
  version: '0'
255
255
  - !ruby/object:Gem::Dependency
256
- name: rack-test
256
+ name: redis
257
257
  requirement: !ruby/object:Gem::Requirement
258
258
  none: false
259
259
  requirements:
@@ -269,7 +269,7 @@ dependencies:
269
269
  - !ruby/object:Gem::Version
270
270
  version: '0'
271
271
  - !ruby/object:Gem::Dependency
272
- name: rdiscount
272
+ name: sass
273
273
  requirement: !ruby/object:Gem::Requirement
274
274
  none: false
275
275
  requirements:
@@ -285,7 +285,7 @@ dependencies:
285
285
  - !ruby/object:Gem::Version
286
286
  version: '0'
287
287
  - !ruby/object:Gem::Dependency
288
- name: redis
288
+ name: sequel
289
289
  requirement: !ruby/object:Gem::Requirement
290
290
  none: false
291
291
  requirements:
@@ -301,7 +301,7 @@ dependencies:
301
301
  - !ruby/object:Gem::Version
302
302
  version: '0'
303
303
  - !ruby/object:Gem::Dependency
304
- name: sass
304
+ name: slim
305
305
  requirement: !ruby/object:Gem::Requirement
306
306
  none: false
307
307
  requirements:
@@ -317,7 +317,7 @@ dependencies:
317
317
  - !ruby/object:Gem::Version
318
318
  version: '0'
319
319
  - !ruby/object:Gem::Dependency
320
- name: sequel
320
+ name: slippers
321
321
  requirement: !ruby/object:Gem::Requirement
322
322
  none: false
323
323
  requirements:
@@ -333,7 +333,7 @@ dependencies:
333
333
  - !ruby/object:Gem::Version
334
334
  version: '0'
335
335
  - !ruby/object:Gem::Dependency
336
- name: slim
336
+ name: tagz
337
337
  requirement: !ruby/object:Gem::Requirement
338
338
  none: false
339
339
  requirements:
@@ -349,7 +349,7 @@ dependencies:
349
349
  - !ruby/object:Gem::Version
350
350
  version: '0'
351
351
  - !ruby/object:Gem::Dependency
352
- name: slippers
352
+ name: tenjin
353
353
  requirement: !ruby/object:Gem::Requirement
354
354
  none: false
355
355
  requirements:
@@ -365,7 +365,7 @@ dependencies:
365
365
  - !ruby/object:Gem::Version
366
366
  version: '0'
367
367
  - !ruby/object:Gem::Dependency
368
- name: sqlite3
368
+ name: yard
369
369
  requirement: !ruby/object:Gem::Requirement
370
370
  none: false
371
371
  requirements:
@@ -381,7 +381,7 @@ dependencies:
381
381
  - !ruby/object:Gem::Version
382
382
  version: '0'
383
383
  - !ruby/object:Gem::Dependency
384
- name: tagz
384
+ name: lokar
385
385
  requirement: !ruby/object:Gem::Requirement
386
386
  none: false
387
387
  requirements:
@@ -397,7 +397,7 @@ dependencies:
397
397
  - !ruby/object:Gem::Version
398
398
  version: '0'
399
399
  - !ruby/object:Gem::Dependency
400
- name: tenjin
400
+ name: localmemcache
401
401
  requirement: !ruby/object:Gem::Requirement
402
402
  none: false
403
403
  requirements:
@@ -413,7 +413,7 @@ dependencies:
413
413
  - !ruby/object:Gem::Version
414
414
  version: '0'
415
415
  - !ruby/object:Gem::Dependency
416
- name: yard
416
+ name: nokogiri
417
417
  requirement: !ruby/object:Gem::Requirement
418
418
  none: false
419
419
  requirements:
@@ -429,7 +429,7 @@ dependencies:
429
429
  - !ruby/object:Gem::Version
430
430
  version: '0'
431
431
  - !ruby/object:Gem::Dependency
432
- name: localmemcache
432
+ name: rdiscount
433
433
  requirement: !ruby/object:Gem::Requirement
434
434
  none: false
435
435
  requirements:
@@ -445,7 +445,7 @@ dependencies:
445
445
  - !ruby/object:Gem::Version
446
446
  version: '0'
447
447
  - !ruby/object:Gem::Dependency
448
- name: lokar
448
+ name: sqlite3
449
449
  requirement: !ruby/object:Gem::Requirement
450
450
  none: false
451
451
  requirements:
@@ -647,6 +647,7 @@ files:
647
647
  - guide/general/sessions.md
648
648
  - guide/general/special_thanks.md
649
649
  - guide/general/testing.md
650
+ - guide/general/upgrading.md
650
651
  - guide/general/views.md
651
652
  - lib/proto/Gemfile
652
653
  - lib/proto/README.md