nitro 0.20.0 → 0.21.0
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/CHANGELOG +752 -543
- data/INSTALL +38 -38
- data/README +264 -225
- data/Rakefile +48 -49
- data/bin/nitro +3 -3
- data/bin/nitrogen +6 -6
- data/doc/AUTHORS +10 -10
- data/doc/CHANGELOG.1 +1939 -1939
- data/doc/CHANGELOG.2 +954 -954
- data/doc/LICENSE +3 -3
- data/doc/MIGRATION +28 -0
- data/doc/RELEASES +814 -643
- data/doc/config.txt +5 -5
- data/install.rb +7 -17
- data/lib/nitro.rb +38 -9
- data/lib/nitro/adapter/cgi.rb +311 -312
- data/lib/nitro/adapter/fastcgi.rb +18 -25
- data/lib/nitro/adapter/webrick.rb +128 -137
- data/lib/nitro/adapter/wee.rb +51 -0
- data/lib/nitro/caching.rb +20 -20
- data/lib/nitro/caching/actions.rb +43 -43
- data/lib/nitro/caching/fragments.rb +46 -46
- data/lib/nitro/caching/invalidation.rb +11 -11
- data/lib/nitro/caching/output.rb +65 -65
- data/lib/nitro/caching/stores.rb +67 -67
- data/lib/nitro/compiler.rb +262 -0
- data/lib/nitro/compiler/elements.rb +0 -0
- data/lib/nitro/compiler/errors.rb +65 -0
- data/lib/nitro/compiler/localization.rb +25 -0
- data/lib/nitro/compiler/markup.rb +19 -0
- data/lib/nitro/compiler/shaders.rb +206 -0
- data/lib/nitro/compiler/squeeze.rb +20 -0
- data/lib/nitro/compiler/xslt.rb +61 -0
- data/lib/nitro/context.rb +87 -88
- data/lib/nitro/controller.rb +151 -158
- data/lib/nitro/cookie.rb +34 -34
- data/lib/nitro/dispatcher.rb +195 -186
- data/lib/nitro/element.rb +132 -126
- data/lib/nitro/element/java_script.rb +6 -6
- data/lib/nitro/flash.rb +66 -66
- data/lib/nitro/mail.rb +192 -192
- data/lib/nitro/mixin/buffer.rb +66 -0
- data/lib/nitro/mixin/debug.rb +16 -16
- data/lib/nitro/mixin/form.rb +88 -0
- data/lib/nitro/mixin/helper.rb +2 -2
- data/lib/nitro/mixin/javascript.rb +108 -108
- data/lib/nitro/mixin/markup.rb +144 -0
- data/lib/nitro/mixin/pager.rb +202 -202
- data/lib/nitro/mixin/rss.rb +67 -0
- data/lib/nitro/mixin/table.rb +63 -0
- data/lib/nitro/mixin/xhtml.rb +75 -0
- data/lib/nitro/mixin/xml.rb +124 -0
- data/lib/nitro/render.rb +183 -359
- data/lib/nitro/request.rb +140 -140
- data/lib/nitro/response.rb +27 -27
- data/lib/nitro/routing.rb +21 -21
- data/lib/nitro/scaffold.rb +124 -118
- data/lib/nitro/server.rb +117 -80
- data/lib/nitro/server/runner.rb +341 -0
- data/lib/nitro/service.rb +12 -12
- data/lib/nitro/service/xmlrpc.rb +22 -22
- data/lib/nitro/session.rb +122 -120
- data/lib/nitro/session/drb.rb +9 -9
- data/lib/nitro/session/drbserver.rb +34 -34
- data/lib/nitro/template.rb +171 -155
- data/lib/nitro/testing/assertions.rb +90 -90
- data/lib/nitro/testing/context.rb +16 -16
- data/lib/nitro/testing/testcase.rb +34 -34
- data/proto/conf/lhttpd.conf +9 -9
- data/proto/public/error.xhtml +75 -75
- data/proto/public/index.xhtml +18 -18
- data/proto/public/js/behaviour.js +65 -65
- data/proto/public/js/controls.js +1 -1
- data/proto/public/js/prototype.js +3 -3
- data/proto/public/settings.xhtml +61 -61
- data/proto/run.rb +1 -5
- data/test/nitro/adapter/raw_post1.bin +0 -0
- data/test/nitro/adapter/tc_cgi.rb +57 -57
- data/test/nitro/adapter/tc_webrick.rb +4 -4
- data/test/nitro/mixin/tc_pager.rb +25 -25
- data/test/nitro/mixin/tc_rss.rb +24 -0
- data/test/nitro/mixin/tc_table.rb +31 -0
- data/test/nitro/mixin/tc_xhtml.rb +13 -0
- data/test/nitro/tc_caching.rb +10 -10
- data/test/nitro/tc_context.rb +8 -8
- data/test/nitro/tc_controller.rb +48 -48
- data/test/nitro/tc_cookie.rb +6 -6
- data/test/nitro/tc_dispatcher.rb +64 -64
- data/test/nitro/tc_element.rb +27 -27
- data/test/nitro/tc_flash.rb +31 -31
- data/test/nitro/tc_mail.rb +63 -63
- data/test/nitro/tc_server.rb +26 -26
- data/test/nitro/tc_session.rb +9 -9
- data/test/nitro/tc_template.rb +19 -19
- data/test/public/blog/list.xhtml +1 -1
- metadata +31 -37
- data/lib/nitro/buffering.rb +0 -45
- data/lib/nitro/builder/form.rb +0 -104
- data/lib/nitro/builder/rss.rb +0 -104
- data/lib/nitro/builder/table.rb +0 -80
- data/lib/nitro/builder/xhtml.rb +0 -132
- data/lib/nitro/builder/xml.rb +0 -131
- data/lib/nitro/conf.rb +0 -36
- data/lib/nitro/environment.rb +0 -21
- data/lib/nitro/errors.rb +0 -69
- data/lib/nitro/localization.rb +0 -153
- data/lib/nitro/markup.rb +0 -147
- data/lib/nitro/output.rb +0 -24
- data/lib/nitro/runner.rb +0 -348
- data/lib/nitro/shaders.rb +0 -206
- data/test/nitro/builder/tc_rss.rb +0 -23
- data/test/nitro/builder/tc_table.rb +0 -30
- data/test/nitro/builder/tc_xhtml.rb +0 -39
- data/test/nitro/builder/tc_xml.rb +0 -56
- data/test/nitro/tc_localization.rb +0 -49
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
|
2
|
-
|
|
3
|
-
require 'test/unit'
|
|
4
|
-
require 'nitro/builder/rss'
|
|
5
|
-
|
|
6
|
-
class TC_BuildersRss < Test::Unit::TestCase # :nodoc: all
|
|
7
|
-
include Nitro
|
|
8
|
-
|
|
9
|
-
Blog = Struct.new(:title, :body, :to_href)
|
|
10
|
-
|
|
11
|
-
def test_render
|
|
12
|
-
blogs = []
|
|
13
|
-
blogs << Blog.new('Hello1', 'World1', 'uri1');
|
|
14
|
-
blogs << Blog.new('Hello2', 'World2', 'uri2');
|
|
15
|
-
blogs << Blog.new('Hello3', 'World3', 'uri3');
|
|
16
|
-
|
|
17
|
-
rss = RssBuilder.build(blogs, :link => 'http://www.navel.gr')
|
|
18
|
-
|
|
19
|
-
assert_match %r{<link>http://www.navel.gr/uri1</link>}, rss
|
|
20
|
-
assert_match %r{<link>http://www.navel.gr/uri2</link>}, rss
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
end
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
|
2
|
-
|
|
3
|
-
require 'test/unit'
|
|
4
|
-
require 'nitro/builder/table'
|
|
5
|
-
|
|
6
|
-
class TC_BuildersTable < Test::Unit::TestCase # :nodoc: all
|
|
7
|
-
include Nitro
|
|
8
|
-
|
|
9
|
-
User = Struct.new(:name, :password, :email)
|
|
10
|
-
|
|
11
|
-
def setup
|
|
12
|
-
@headers = %w{Name Password Email}
|
|
13
|
-
@users = [
|
|
14
|
-
User.new('gmosx', 'huh?', 'gm@nowhere.com'),
|
|
15
|
-
User.new('renos', 'nah', 'renos@nowhere.com'),
|
|
16
|
-
User.new('stella', 'hoh', 'stella@love.com')
|
|
17
|
-
]
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def teardown
|
|
21
|
-
@users = nil
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def test_table
|
|
25
|
-
values = @users.collect { |u| [u.name, u.password, u.email] }
|
|
26
|
-
table = TableBuilder.build(:id => 'test', :headers => @headers, :values => values)
|
|
27
|
-
res = %|<table id="test"><tr><th>Name</th><th>Password</th><th>Email</th></tr><tr><td>gmosx</td><td>huh?</td><td>gm@nowhere.com</td></tr><tr><td>renos</td><td>nah</td><td>renos@nowhere.com</td></tr><tr><td>stella</td><td>hoh</td><td>stella@love.com</td></tr></table>|
|
|
28
|
-
assert_equal res, table
|
|
29
|
-
end
|
|
30
|
-
end
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
|
2
|
-
|
|
3
|
-
require 'test/unit'
|
|
4
|
-
require 'nitro/builder/xhtml'
|
|
5
|
-
|
|
6
|
-
class TC_BuildersXhtml < Test::Unit::TestCase # :nodoc: all
|
|
7
|
-
include Nitro
|
|
8
|
-
|
|
9
|
-
def test_options
|
|
10
|
-
x = XhtmlString.new
|
|
11
|
-
options = ['Male', 'Female']
|
|
12
|
-
x.select(:name => 'sex') do
|
|
13
|
-
x.options(options, 1)
|
|
14
|
-
end
|
|
15
|
-
res = '<select name="sex"><option value="0">Male</option>' +
|
|
16
|
-
'<option value="1" selected="1">Female</option></select>'
|
|
17
|
-
assert_equal res, x
|
|
18
|
-
|
|
19
|
-
x = XhtmlString.new
|
|
20
|
-
options = ['Male', 'Female']
|
|
21
|
-
x.select('-- Select sex --', :name => 'sex') do
|
|
22
|
-
x.options(options, 1)
|
|
23
|
-
end
|
|
24
|
-
res = '<select name="sex"><option>-- Select sex --</option>' +
|
|
25
|
-
'<option value="0">Male</option>' +
|
|
26
|
-
'<option value="1" selected="1">Female</option></select>'
|
|
27
|
-
assert_equal res, x
|
|
28
|
-
|
|
29
|
-
x = XhtmlString.new
|
|
30
|
-
options = {'Male' => 'm', 'Female' => 'f'}
|
|
31
|
-
x.select(:name => 'sex') do
|
|
32
|
-
x.options(options, 'm')
|
|
33
|
-
end
|
|
34
|
-
res = '<select name="sex"><option value="m" selected="1">Male</option>' +
|
|
35
|
-
'<option value="f">Female</option></select>'
|
|
36
|
-
assert_equal res, x
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
|
2
|
-
|
|
3
|
-
require 'test/unit'
|
|
4
|
-
require 'nitro/builder/xml'
|
|
5
|
-
|
|
6
|
-
class TC_BuildersXml < Test::Unit::TestCase # :nodoc: all
|
|
7
|
-
include Nitro
|
|
8
|
-
|
|
9
|
-
def test_string
|
|
10
|
-
x = XmlString.new
|
|
11
|
-
|
|
12
|
-
x.start_tag!('html').
|
|
13
|
-
start_tag!('title').text!('hello').end_tag!('title').
|
|
14
|
-
end_tag!('html')
|
|
15
|
-
|
|
16
|
-
assert_equal '<html><title>hello</title></html>', x
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def test_missing
|
|
20
|
-
x = XmlString.new
|
|
21
|
-
x.b('This is bold')
|
|
22
|
-
assert_equal '<b>This is bold</b>', x
|
|
23
|
-
|
|
24
|
-
x = XmlString.new
|
|
25
|
-
x.a('Navel', :href => 'http://www.navel.gr')
|
|
26
|
-
assert_equal '<a href="http://www.navel.gr">Navel</a>', x
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
x = XmlString.new
|
|
30
|
-
x.b {
|
|
31
|
-
x.i 'Hello', :class =>'new'
|
|
32
|
-
x.p 'Paragraph'
|
|
33
|
-
}
|
|
34
|
-
assert_equal '<b><i class="new">Hello</i><p>Paragraph</p></b>', x
|
|
35
|
-
|
|
36
|
-
x = XmlString.new
|
|
37
|
-
x.hr
|
|
38
|
-
assert_equal '<hr />', x
|
|
39
|
-
|
|
40
|
-
x = XmlString.new
|
|
41
|
-
x.hr(:style => 'height: 1px')
|
|
42
|
-
assert_equal '<hr style="height: 1px" />', x
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def test_xml_builder
|
|
46
|
-
buffer = ''
|
|
47
|
-
x = XmlBuilder.new(buffer)
|
|
48
|
-
|
|
49
|
-
x.start_tag!('html').
|
|
50
|
-
start_tag!('title').text!('hello').end_tag!('title').
|
|
51
|
-
end_tag!('html')
|
|
52
|
-
|
|
53
|
-
assert_equal '<html><title>hello</title></html>', buffer
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
|
2
|
-
|
|
3
|
-
require 'test/unit'
|
|
4
|
-
require 'ostruct'
|
|
5
|
-
|
|
6
|
-
require 'nitro/localization'
|
|
7
|
-
|
|
8
|
-
class TestCaseLocalization < Test::Unit::TestCase # :nodoc: all
|
|
9
|
-
include Nitro
|
|
10
|
-
|
|
11
|
-
def setup
|
|
12
|
-
locale_en = {
|
|
13
|
-
'See you' => 'See you',
|
|
14
|
-
:long_paragraph => 'The best new books, up to 30% reduced price',
|
|
15
|
-
:price => 'Price: %d %s',
|
|
16
|
-
:proc_price => proc { |value, cur| "Price: #{value} #{cur}" }
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
locale_de = {
|
|
20
|
-
'See you' => 'Auf wieder sehen',
|
|
21
|
-
:long_paragraph => 'Die besten neuer buecher, bis zu 30% reduziert',
|
|
22
|
-
:price => 'Preis: %d %s',
|
|
23
|
-
:proc_price => proc { |value, cur| "Preis: #{value} #{cur}" }
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
Localization.add(
|
|
27
|
-
:en => locale_en,
|
|
28
|
-
:de => locale_de
|
|
29
|
-
)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def test_all
|
|
33
|
-
lc = Localization.get
|
|
34
|
-
assert_equal 'See you', lc['See you']
|
|
35
|
-
assert_equal 'The best new books, up to 30% reduced price', lc[:long_paragraph]
|
|
36
|
-
|
|
37
|
-
lc = Localization.get(:en)
|
|
38
|
-
assert_equal 'See you', lc['See you']
|
|
39
|
-
assert_equal 'The best new books, up to 30% reduced price', lc[:long_paragraph]
|
|
40
|
-
assert_equal 'Price: 100 euro', lc[:price, 100, 'euro']
|
|
41
|
-
assert_equal 'Price: 100 euro', lc[:proc_price, 100, 'euro']
|
|
42
|
-
|
|
43
|
-
lc = Localization.get(:de)
|
|
44
|
-
assert_equal 'Auf wieder sehen', lc['See you']
|
|
45
|
-
assert_equal 'Die besten neuer buecher, bis zu 30% reduziert', lc[:long_paragraph]
|
|
46
|
-
assert_equal 'Preis: 100 euro', lc.translate(:price, 100, 'euro')
|
|
47
|
-
assert_equal 'Preis: 100 euro', lc[:proc_price, 100, 'euro']
|
|
48
|
-
end
|
|
49
|
-
end
|