oldskool 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/oldskool/router.rb +25 -21
- data/lib/oldskool/sinatra_app.rb +5 -3
- data/lib/oldskool/url_handler.rb +1 -3
- data/lib/oldskool/version.rb +1 -1
- data/views/layout.erb +1 -1
- metadata +15 -15
data/lib/oldskool/router.rb
CHANGED
@@ -11,38 +11,42 @@ module Oldskool
|
|
11
11
|
def route(params)
|
12
12
|
defaulting = false
|
13
13
|
|
14
|
+
k = ""
|
15
|
+
q = params[:q].strip
|
16
|
+
|
14
17
|
if params[:q] =~ /^(\w+?)(\s.+)*$/
|
15
18
|
k = $1
|
16
19
|
q = $2.strip rescue ""
|
17
|
-
|
18
|
-
handler = nil
|
20
|
+
end
|
19
21
|
|
20
|
-
|
21
|
-
|
22
|
+
default = nil
|
23
|
+
handler = nil
|
22
24
|
|
23
|
-
|
25
|
+
@config[:keywords].each do |keyword|
|
26
|
+
default = keyword if [keyword[:keywords]].flatten.include?(:default)
|
24
27
|
|
25
|
-
|
26
|
-
end
|
28
|
+
handler = keyword if [keyword[:keywords]].flatten.include?(k)
|
27
29
|
|
28
|
-
if
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
30
|
+
break if handler
|
31
|
+
end
|
32
|
+
|
33
|
+
if (!handler && default)
|
34
|
+
defaulting = true
|
35
|
+
handler = default
|
36
|
+
elsif !handler
|
37
|
+
return error("No handler for keyword #{k} found and no default handler specified")
|
38
|
+
end
|
34
39
|
|
35
|
-
|
40
|
+
handler_class = "%sHandler" % [handler[:type].to_s.capitalize]
|
36
41
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
else
|
41
|
-
Oldskool.const_get(handler_class).new(params, handler, @config).handle_request(k, q)
|
42
|
-
end
|
42
|
+
if Oldskool.constants.include?(handler_class)
|
43
|
+
if defaulting
|
44
|
+
Oldskool.const_get(handler_class).new(params, handler, @config).handle_request("", params[:q])
|
43
45
|
else
|
44
|
-
|
46
|
+
Oldskool.const_get(handler_class).new(params, handler, @config).handle_request(k, q)
|
45
47
|
end
|
48
|
+
else
|
49
|
+
return error("Do not know how to handle type %s keywords" % [ handler[:type] ])
|
46
50
|
end
|
47
51
|
end
|
48
52
|
end
|
data/lib/oldskool/sinatra_app.rb
CHANGED
@@ -43,9 +43,11 @@ module Oldskool
|
|
43
43
|
if params[:q]
|
44
44
|
@result = @router.route(params)
|
45
45
|
|
46
|
-
|
47
|
-
|
48
|
-
|
46
|
+
if @result
|
47
|
+
@sidemenu = @result.delete(:sidemenu)
|
48
|
+
@topmenu = @result.delete(:topmenu)
|
49
|
+
@error = @result.delete(:error)
|
50
|
+
end
|
49
51
|
|
50
52
|
case (template = @result[:template])
|
51
53
|
when :redirect
|
data/lib/oldskool/url_handler.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
module Oldskool
|
2
2
|
class UrlHandler
|
3
|
-
include Rack::Utils
|
4
|
-
|
5
3
|
def initialize(params, keyword, config)
|
6
4
|
@params = params
|
7
5
|
@keyword = keyword
|
@@ -10,7 +8,7 @@ module Oldskool
|
|
10
8
|
end
|
11
9
|
|
12
10
|
def handle_request(keyword, query)
|
13
|
-
url = @keyword[:url].gsub(/%Q%/,
|
11
|
+
url = @keyword[:url].gsub(/%Q%/, URI.escape(query))
|
14
12
|
|
15
13
|
{:template => :redirect, :url => url}
|
16
14
|
end
|
data/lib/oldskool/version.rb
CHANGED
data/views/layout.erb
CHANGED
@@ -17,7 +17,7 @@
|
|
17
17
|
<% end %>
|
18
18
|
</ul>
|
19
19
|
<% end %>
|
20
|
-
<form action="/do" method="get" class="pull-right"><input name="q" type="text" placeholder="#" /></form>
|
20
|
+
<form action="/do" method="get" class="pull-right"><input name="q" type="text" placeholder="#" value="<%= params[:q] == nil ? "" : h(params[:q]) %>"/></form>
|
21
21
|
</div>
|
22
22
|
</div>
|
23
23
|
</div>
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oldskool
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- R.I.Pienaar
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-19 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -69,27 +69,27 @@ extensions: []
|
|
69
69
|
extra_rdoc_files: []
|
70
70
|
|
71
71
|
files:
|
72
|
-
- lib/oldskool
|
72
|
+
- lib/oldskool.rb
|
73
73
|
- lib/oldskool/error_handler.rb
|
74
|
-
- lib/oldskool/url_handler.rb
|
75
74
|
- lib/oldskool/version.rb
|
76
75
|
- lib/oldskool/sinatra_app.rb
|
77
|
-
- lib/oldskool.rb
|
76
|
+
- lib/oldskool/url_handler.rb
|
77
|
+
- lib/oldskool/router.rb
|
78
|
+
- views/do.erb
|
78
79
|
- views/layout.erb
|
79
80
|
- views/index.erb
|
80
81
|
- views/opensearch_xml.erb
|
81
|
-
-
|
82
|
+
- public/favicon.ico
|
82
83
|
- public/js/less-1.1.3.min.js
|
83
|
-
- public/lib/forms.less
|
84
|
-
- public/lib/scaffolding.less
|
85
|
-
- public/lib/bootstrap.less
|
86
|
-
- public/lib/tables.less
|
87
84
|
- public/lib/patterns.less
|
88
|
-
- public/lib/
|
89
|
-
- public/lib/mixins.less
|
85
|
+
- public/lib/bootstrap.less
|
90
86
|
- public/lib/variables.less
|
87
|
+
- public/lib/mixins.less
|
91
88
|
- public/lib/type.less
|
92
|
-
- public/
|
89
|
+
- public/lib/forms.less
|
90
|
+
- public/lib/tables.less
|
91
|
+
- public/lib/scaffolding.less
|
92
|
+
- public/lib/reset.less
|
93
93
|
- config/oldskool.yaml.dist
|
94
94
|
- config.ru
|
95
95
|
- Gemfile
|