nitro 0.19.0 → 0.20.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 +187 -0
- data/INSTALL +5 -0
- data/README +11 -5
- data/doc/AUTHORS +11 -1
- data/doc/RELEASES +217 -0
- data/doc/tutorial.txt +1 -2
- data/lib/nitro.rb +9 -6
- data/lib/nitro/adapter/webrick.rb +13 -2
- data/lib/nitro/builder/form.rb +11 -9
- data/lib/nitro/builder/rss.rb +2 -2
- data/lib/nitro/builder/xhtml.rb +15 -0
- data/lib/nitro/caching.rb +15 -10
- data/lib/nitro/conf.rb +0 -5
- data/lib/nitro/controller.rb +118 -81
- data/lib/nitro/cookie.rb +6 -6
- data/lib/nitro/dispatcher.rb +62 -18
- data/lib/nitro/element.rb +4 -1
- data/lib/nitro/element/java_script.rb +15 -0
- data/lib/nitro/localization.rb +3 -4
- data/lib/nitro/markup.rb +4 -4
- data/lib/nitro/mixin/debug.rb +30 -0
- data/lib/nitro/mixin/helper.rb +14 -0
- data/lib/nitro/mixin/javascript.rb +137 -0
- data/lib/nitro/{ui → mixin}/pager.rb +110 -82
- data/lib/nitro/render.rb +20 -8
- data/lib/nitro/request.rb +6 -0
- data/lib/nitro/routing.rb +6 -5
- data/lib/nitro/runner.rb +21 -9
- data/lib/nitro/server.rb +95 -0
- data/lib/nitro/service.rb +0 -1
- data/lib/nitro/session.rb +4 -5
- data/lib/nitro/shaders.rb +2 -2
- data/lib/nitro/template.rb +1 -1
- data/lib/nitro/testing/assertions.rb +2 -4
- data/lib/nitro/testing/context.rb +4 -6
- data/proto/public/js/behaviour.js +254 -0
- data/proto/public/js/controls.js +446 -0
- data/proto/public/js/dragdrop.js +537 -0
- data/proto/public/js/effects.js +612 -0
- data/proto/public/js/prototype.js +644 -370
- data/proto/public/settings.xhtml +64 -0
- data/test/nitro/adapter/tc_cgi.rb +2 -2
- data/test/nitro/builder/tc_rss.rb +1 -1
- data/test/nitro/mixin/tc_pager.rb +35 -0
- data/test/nitro/tc_controller.rb +1 -1
- data/test/nitro/tc_cookie.rb +14 -0
- data/test/nitro/tc_dispatcher.rb +11 -6
- data/test/nitro/tc_server.rb +35 -0
- metadata +20 -15
- data/lib/nitro/builder/atom.rb +0 -74
- data/lib/nitro/part.rb +0 -22
- data/lib/nitro/simple.rb +0 -11
- data/lib/nitro/ui/popup.rb +0 -41
- data/lib/nitro/ui/tabs.rb +0 -25
- data/lib/nitro/uri.rb +0 -193
- data/test/nitro/builder/tc_atom.rb +0 -24
- data/test/nitro/tc_uri.rb +0 -97
- data/test/nitro/ui/tc_pager.rb +0 -49
@@ -0,0 +1,64 @@
|
|
1
|
+
<html>
|
2
|
+
<head>
|
3
|
+
<title>Settings</title>
|
4
|
+
<style>
|
5
|
+
.path {
|
6
|
+
padding: 5px;
|
7
|
+
font-size: 140%;
|
8
|
+
background: #ddd;
|
9
|
+
}
|
10
|
+
.error {
|
11
|
+
padding: 5px;
|
12
|
+
padding-top: 15px;
|
13
|
+
font-size: 140%;
|
14
|
+
color: #f00;
|
15
|
+
}
|
16
|
+
.load {
|
17
|
+
padding: 5px;
|
18
|
+
color: #555;
|
19
|
+
}
|
20
|
+
.source {
|
21
|
+
border: 1px solid #ccc;
|
22
|
+
padding: 10px;
|
23
|
+
margin-top: 10px; margin-bottom: 10px;
|
24
|
+
}
|
25
|
+
h2 {
|
26
|
+
padding-left: 5px;
|
27
|
+
background: #eee;
|
28
|
+
}
|
29
|
+
table {
|
30
|
+
border-collapse: collapse;
|
31
|
+
width: 100%;
|
32
|
+
}
|
33
|
+
th {
|
34
|
+
border: 1px solid #ccc; padding: 5px; background: #ff0
|
35
|
+
}
|
36
|
+
td {
|
37
|
+
border: 1px solid #ccc; padding: 5px
|
38
|
+
}
|
39
|
+
</style>
|
40
|
+
</head>
|
41
|
+
<body>
|
42
|
+
<h1>Settings</h1>
|
43
|
+
|
44
|
+
<table width="100%">
|
45
|
+
<tr>
|
46
|
+
<th>Name</th>
|
47
|
+
<th>Value</th>
|
48
|
+
<th>Type</th>
|
49
|
+
<th>Description</th>
|
50
|
+
</tr>
|
51
|
+
<?r for s in Configuration.settings ?>
|
52
|
+
<tr>
|
53
|
+
<td>#{s.owner}.<strong>#{s.name}</strong></td>
|
54
|
+
<td>#{s.value.inspect}</td>
|
55
|
+
<td>#{s.type}</td>
|
56
|
+
<td>#{s.options[:doc]}</td>
|
57
|
+
</tr>
|
58
|
+
<?r end ?>
|
59
|
+
</table>
|
60
|
+
|
61
|
+
<br /><br />
|
62
|
+
Powered by <a href="http://www.nitrohq.com">Nitro</a> version #{Nitro::Version}
|
63
|
+
</body>
|
64
|
+
</html>
|
@@ -57,8 +57,8 @@ class TC_AdaptersCgi < Test::Unit::TestCase # :nodoc: all
|
|
57
57
|
ctx.response_headers = {
|
58
58
|
'Content-Type' => 'text/html'
|
59
59
|
}
|
60
|
-
|
61
|
-
res = "Status: 200 OK\r\nContent-Type: text/html\r\nSet-Cookie: nauthnauth=gmosx
|
60
|
+
|
61
|
+
res = "Status: 200 OK\r\nContent-Type: text/html\r\nSet-Cookie: nauthnauth=gmosx; Path=/\r\nSet-Cookie: nsidnsid=1233; Path=/\r\n\r\n"
|
62
62
|
assert_equal res, CgiUtils.response_headers(ctx)
|
63
63
|
end
|
64
64
|
=begin
|
@@ -0,0 +1,35 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..', '..', 'lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
require 'nitro/mixin/pager'
|
6
|
+
|
7
|
+
class TC_Pager < Test::Unit::TestCase # :nodoc: all
|
8
|
+
include Nitro
|
9
|
+
include Nitro::PagerMixin
|
10
|
+
|
11
|
+
class RequestMock < Hash
|
12
|
+
attr_accessor :query
|
13
|
+
|
14
|
+
def initialize
|
15
|
+
@query = {}
|
16
|
+
end
|
17
|
+
|
18
|
+
def get(k, default)
|
19
|
+
return self[k] || default
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def request
|
24
|
+
RequestMock.new
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_all
|
28
|
+
stuff = [1, 2, 3, 4, 5, 6, 7, 8, 9]
|
29
|
+
|
30
|
+
items, pager = paginate(stuff, :per_page => 2)
|
31
|
+
assert_equal 2, items.size
|
32
|
+
assert_equal 9, pager.total_count
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/test/nitro/tc_controller.rb
CHANGED
@@ -0,0 +1,14 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
require 'nitro/cookie'
|
6
|
+
|
7
|
+
class TC_Cookie < Test::Unit::TestCase # :nodoc: all
|
8
|
+
include Nitro
|
9
|
+
|
10
|
+
def test_init
|
11
|
+
c = Cookie.new('hello', 'world')
|
12
|
+
assert_equal '/', c.path
|
13
|
+
end
|
14
|
+
end
|
data/test/nitro/tc_dispatcher.rb
CHANGED
@@ -14,13 +14,13 @@ class TC_Dispatcher < Test::Unit::TestCase # :nodoc: all
|
|
14
14
|
|
15
15
|
def setup
|
16
16
|
@d = Dispatcher.new({
|
17
|
-
|
18
|
-
'blog' => BlogController
|
17
|
+
'/' => MainController,
|
18
|
+
'/blog' => BlogController
|
19
19
|
})
|
20
20
|
|
21
21
|
@dxml = Dispatcher.new({
|
22
|
-
|
23
|
-
'blog' => BlogController,
|
22
|
+
'/' => MainController,
|
23
|
+
'/blog' => BlogController,
|
24
24
|
# FIXME: this is a hack!
|
25
25
|
'xml:blog' => BlogController
|
26
26
|
})
|
@@ -32,7 +32,7 @@ class TC_Dispatcher < Test::Unit::TestCase # :nodoc: all
|
|
32
32
|
|
33
33
|
def test_initialize
|
34
34
|
d = Dispatcher.new(BlogController)
|
35
|
-
assert_equal BlogController, d.controllers[
|
35
|
+
assert_equal BlogController, d.controllers['/']
|
36
36
|
end
|
37
37
|
|
38
38
|
def test_dispatch
|
@@ -59,7 +59,11 @@ class TC_Dispatcher < Test::Unit::TestCase # :nodoc: all
|
|
59
59
|
klass, action = @d.dispatch('/')
|
60
60
|
assert_equal MainController, klass
|
61
61
|
assert_equal 'index_action', action
|
62
|
-
|
62
|
+
|
63
|
+
=begin
|
64
|
+
# gmosx: this functionality is deprecated. Use multiple
|
65
|
+
# controller to define multiple apis.
|
66
|
+
|
63
67
|
# multi-api dispatcher.
|
64
68
|
|
65
69
|
# no xml prefix, use xhtml api.
|
@@ -71,6 +75,7 @@ class TC_Dispatcher < Test::Unit::TestCase # :nodoc: all
|
|
71
75
|
klass, action = @dxml.dispatch('/xml:blog/list')
|
72
76
|
assert_equal BlogController, klass
|
73
77
|
assert_equal 'list_action', action
|
78
|
+
=end
|
74
79
|
end
|
75
80
|
|
76
81
|
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
require 'nitro/server'
|
6
|
+
|
7
|
+
class TC_Server < Test::Unit::TestCase # :nodoc: all
|
8
|
+
include Nitro
|
9
|
+
|
10
|
+
class RootController
|
11
|
+
end
|
12
|
+
|
13
|
+
class UsersController
|
14
|
+
end
|
15
|
+
|
16
|
+
class TestController
|
17
|
+
end
|
18
|
+
|
19
|
+
class DeepController
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_all
|
23
|
+
srv = Server.new('test')
|
24
|
+
|
25
|
+
srv.root = RootController
|
26
|
+
srv.root.users = UsersController
|
27
|
+
srv.root.test = TestController
|
28
|
+
srv.root.really.really.deep = DeepController
|
29
|
+
|
30
|
+
assert_equal RootController, srv.map['/']
|
31
|
+
assert_equal UsersController, srv.map['/users']
|
32
|
+
assert_equal TestController, srv.map['/test']
|
33
|
+
assert_equal DeepController, srv.map['/really/really/deep']
|
34
|
+
end
|
35
|
+
end
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.10
|
|
3
3
|
specification_version: 1
|
4
4
|
name: nitro
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
7
|
-
date: 2005-
|
6
|
+
version: 0.20.0
|
7
|
+
date: 2005-07-12
|
8
8
|
summary: Nitro Web Engine
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -67,12 +67,17 @@ files:
|
|
67
67
|
- proto/public/media
|
68
68
|
- proto/public/scaffold
|
69
69
|
- proto/public/js
|
70
|
+
- proto/public/settings.xhtml
|
70
71
|
- proto/public/index.xhtml
|
71
72
|
- proto/public/cgi.rb
|
72
73
|
- proto/public/error.xhtml
|
73
74
|
- proto/public/fcgi.rb
|
74
75
|
- proto/public/media/nitro.png
|
75
76
|
- proto/public/js/prototype.js
|
77
|
+
- proto/public/js/dragdrop.js
|
78
|
+
- proto/public/js/behaviour.js
|
79
|
+
- proto/public/js/controls.js
|
80
|
+
- proto/public/js/effects.js
|
76
81
|
- lib/nitro
|
77
82
|
- lib/nitro.rb
|
78
83
|
- lib/nitro/builder
|
@@ -81,7 +86,6 @@ files:
|
|
81
86
|
- lib/nitro/adapter
|
82
87
|
- lib/nitro/caching
|
83
88
|
- lib/nitro/element
|
84
|
-
- lib/nitro/ui
|
85
89
|
- lib/nitro/controller.rb
|
86
90
|
- lib/nitro/scaffold.rb
|
87
91
|
- lib/nitro/mail.rb
|
@@ -90,12 +94,10 @@ files:
|
|
90
94
|
- lib/nitro/conf.rb
|
91
95
|
- lib/nitro/localization.rb
|
92
96
|
- lib/nitro/request.rb
|
93
|
-
- lib/nitro/
|
97
|
+
- lib/nitro/mixin
|
94
98
|
- lib/nitro/caching.rb
|
95
99
|
- lib/nitro/markup.rb
|
96
|
-
- lib/nitro/uri.rb
|
97
100
|
- lib/nitro/output.rb
|
98
|
-
- lib/nitro/part.rb
|
99
101
|
- lib/nitro/buffering.rb
|
100
102
|
- lib/nitro/cookie.rb
|
101
103
|
- lib/nitro/testing.rb
|
@@ -112,12 +114,12 @@ files:
|
|
112
114
|
- lib/nitro/service.rb
|
113
115
|
- lib/nitro/service
|
114
116
|
- lib/nitro/flash.rb
|
117
|
+
- lib/nitro/server.rb
|
115
118
|
- lib/nitro/builder/xhtml.rb
|
116
119
|
- lib/nitro/builder/xml.rb
|
117
120
|
- lib/nitro/builder/form.rb
|
118
121
|
- lib/nitro/builder/rss.rb
|
119
122
|
- lib/nitro/builder/table.rb
|
120
|
-
- lib/nitro/builder/atom.rb
|
121
123
|
- lib/nitro/testing/assertions.rb
|
122
124
|
- lib/nitro/testing/context.rb
|
123
125
|
- lib/nitro/testing/testcase.rb
|
@@ -132,18 +134,20 @@ files:
|
|
132
134
|
- lib/nitro/caching/actions.rb
|
133
135
|
- lib/nitro/caching/output.rb
|
134
136
|
- lib/nitro/caching/fragments.rb
|
135
|
-
- lib/nitro/
|
136
|
-
- lib/nitro/
|
137
|
-
- lib/nitro/
|
137
|
+
- lib/nitro/element/java_script.rb
|
138
|
+
- lib/nitro/mixin/debug.rb
|
139
|
+
- lib/nitro/mixin/pager.rb
|
140
|
+
- lib/nitro/mixin/javascript.rb
|
141
|
+
- lib/nitro/mixin/helper.rb
|
138
142
|
- lib/nitro/service/xmlrpc.rb
|
139
143
|
- test/nitro
|
140
144
|
- test/public
|
141
145
|
- test/nitro/builder
|
146
|
+
- test/nitro/mixin
|
142
147
|
- test/nitro/ui
|
143
148
|
- test/nitro/adapter
|
144
149
|
- test/nitro/tc_localization.rb
|
145
150
|
- test/nitro/tc_template.rb
|
146
|
-
- test/nitro/tc_uri.rb
|
147
151
|
- test/nitro/tc_mail.rb
|
148
152
|
- test/nitro/tc_controller.rb
|
149
153
|
- test/nitro/tc_session.rb
|
@@ -152,12 +156,13 @@ files:
|
|
152
156
|
- test/nitro/tc_element.rb
|
153
157
|
- test/nitro/tc_caching.rb
|
154
158
|
- test/nitro/tc_flash.rb
|
159
|
+
- test/nitro/tc_server.rb
|
160
|
+
- test/nitro/tc_cookie.rb
|
155
161
|
- test/nitro/builder/tc_rss.rb
|
156
162
|
- test/nitro/builder/tc_table.rb
|
157
163
|
- test/nitro/builder/tc_xhtml.rb
|
158
164
|
- test/nitro/builder/tc_xml.rb
|
159
|
-
- test/nitro/
|
160
|
-
- test/nitro/ui/tc_pager.rb
|
165
|
+
- test/nitro/mixin/tc_pager.rb
|
161
166
|
- test/nitro/adapter/raw_post1.bin
|
162
167
|
- test/nitro/adapter/tc_cgi.rb
|
163
168
|
- test/nitro/adapter/tc_webrick.rb
|
@@ -194,7 +199,7 @@ dependencies:
|
|
194
199
|
-
|
195
200
|
- "="
|
196
201
|
- !ruby/object:Gem::Version
|
197
|
-
version: 0.
|
202
|
+
version: 0.20.0
|
198
203
|
version:
|
199
204
|
- !ruby/object:Gem::Dependency
|
200
205
|
name: og
|
@@ -204,7 +209,7 @@ dependencies:
|
|
204
209
|
-
|
205
210
|
- "="
|
206
211
|
- !ruby/object:Gem::Version
|
207
|
-
version: 0.
|
212
|
+
version: 0.20.0
|
208
213
|
version:
|
209
214
|
- !ruby/object:Gem::Dependency
|
210
215
|
name: facets
|
data/lib/nitro/builder/atom.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
# WARNING: unfinished code, do NOT use yet.
|
2
|
-
|
3
|
-
require 'nitro/builder/xml'
|
4
|
-
|
5
|
-
module Nitro
|
6
|
-
|
7
|
-
# Build Atom represenations of ruby object collections.
|
8
|
-
# Utilize duck typing to grab the attributes to render.
|
9
|
-
# Add this mixin to you classes to support Atom
|
10
|
-
# syndication.
|
11
|
-
|
12
|
-
module AtomBuilderMixin
|
13
|
-
include XmlBuilderMixin
|
14
|
-
|
15
|
-
# Build Atom syndication stream.
|
16
|
-
#
|
17
|
-
# === Options
|
18
|
-
#
|
19
|
-
# [+:description+]
|
20
|
-
# Description of the feed.
|
21
|
-
# [+:encoding+]
|
22
|
-
# Character encoding.
|
23
|
-
# [+:base+]
|
24
|
-
# Base url of the feed.
|
25
|
-
# [+:link+]
|
26
|
-
# Link of the Feed.
|
27
|
-
|
28
|
-
def build_atom(objects, options = {})
|
29
|
-
c = {
|
30
|
-
:description => 'Syndication',
|
31
|
-
:encoding => 'utf-8'
|
32
|
-
}.update(options)
|
33
|
-
|
34
|
-
c[:base] ||= c[:link]
|
35
|
-
|
36
|
-
raise "Option ':base' cannot be infered!" unless c[:base]
|
37
|
-
|
38
|
-
pi! :xml, :version => '1.0', :encoding => o[:encoding]
|
39
|
-
feed(:version => '0.3') do
|
40
|
-
for obj in objects
|
41
|
-
entry do
|
42
|
-
if obj.respond_to?(:author)
|
43
|
-
author { name(obj.author) }
|
44
|
-
end
|
45
|
-
|
46
|
-
issued obj.create_time.xmlschema
|
47
|
-
modified obj.update_time.xmlschema
|
48
|
-
title obj.title
|
49
|
-
|
50
|
-
if obj.respond_to?(:categories)
|
51
|
-
for category in categories
|
52
|
-
dc :subject => category.name
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
# Abstract class for the AtomBuilderMixin.
|
63
|
-
|
64
|
-
class AtomBuilder < String
|
65
|
-
include AtomBuilderMixin
|
66
|
-
|
67
|
-
class << self
|
68
|
-
def build(objects, options = {})
|
69
|
-
AtomBuilder.new.build_atom(objects, options)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
end
|
data/lib/nitro/part.rb
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
# WARNING: UNDER CONSTRUCTION, dont use yet!
|
2
|
-
|
3
|
-
require 'glue/attribute'
|
4
|
-
|
5
|
-
module Nitro
|
6
|
-
|
7
|
-
class Part
|
8
|
-
cattr_accessor :parts_root, '/home/gmosx/private/plasma/src'
|
9
|
-
end
|
10
|
-
|
11
|
-
end
|
12
|
-
|
13
|
-
module Kernel
|
14
|
-
|
15
|
-
def require_part(name)
|
16
|
-
# gmosx: RDoc complains about this, so lets use an
|
17
|
-
# eval, AAAAAAAARGH!
|
18
|
-
# require "#{N::Part.parts_root}/#{name}/mount"
|
19
|
-
eval %{ require '#{Nitro::Part.parts_root}/#{name}/mount' }
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|