rad_core 0.0.29 → 0.0.30
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/lib/rad/_support/require.rb +0 -4
- data/lib/rad/gems.rb +6 -8
- data/lib/rad/router/_router.rb +1 -1
- data/lib/rad/spec/http_controller.rb +5 -12
- data/lib/rad/spec/xhtml.rb +2 -0
- data/readme.md +10 -1
- data/spec/router/router_spec.rb +4 -3
- data/spec/web/spec_helper_spec.rb +1 -1
- metadata +26 -103
data/lib/rad/_support/require.rb
CHANGED
@@ -31,8 +31,6 @@ require 'micon/rad'
|
|
31
31
|
|
32
32
|
require 'rad/_support/class_loader'
|
33
33
|
|
34
|
-
require 'dictionary'
|
35
|
-
|
36
34
|
require 'thread'
|
37
35
|
require 'time'
|
38
36
|
require 'uri'
|
@@ -48,8 +46,6 @@ require 'rad/_support/addressable'
|
|
48
46
|
#
|
49
47
|
require 'rad/_support/hacks_and_fixes'
|
50
48
|
|
51
|
-
autoload :Nokogiri, 'nokogiri'
|
52
|
-
|
53
49
|
[
|
54
50
|
'module',
|
55
51
|
'callbacks',
|
data/lib/rad/gems.rb
CHANGED
@@ -1,21 +1,19 @@
|
|
1
1
|
# core gems dependencies
|
2
|
-
gem 'i18n', '0.5.0'
|
3
|
-
gem 'polyglot', '0.3.1'
|
4
|
-
gem 'treetop', '1.4.9'
|
5
|
-
gem 'mime-types', '1.16'
|
2
|
+
# gem 'i18n', '0.5.0'
|
3
|
+
# gem 'polyglot', '0.3.1'
|
4
|
+
# gem 'treetop', '1.4.9'
|
5
|
+
# gem 'mime-types', '1.16'
|
6
6
|
|
7
7
|
# core gems
|
8
8
|
gem 'activesupport', '3.0.7'
|
9
|
-
gem 'builder', '2.1.2'
|
9
|
+
# gem 'builder', '2.1.2'
|
10
10
|
|
11
11
|
gem 'haml', '3.0.25'
|
12
12
|
gem 'tilt', '1.2.1'
|
13
13
|
|
14
14
|
gem 'json', '1.4.6'
|
15
15
|
gem 'addressable', '2.2.2'
|
16
|
-
gem 'nokogiri', '1.4.4'
|
17
|
-
|
18
|
-
gem 'dictionary', '1.0.0'
|
16
|
+
# gem 'nokogiri', '1.4.4'
|
19
17
|
|
20
18
|
gem 'rack', '1.3.0'
|
21
19
|
gem 'thin', '1.2.7'
|
data/lib/rad/router/_router.rb
CHANGED
@@ -56,8 +56,7 @@ rspec do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
protected
|
59
|
-
def parse_wcall_arguments *args
|
60
|
-
|
59
|
+
def parse_wcall_arguments *args
|
61
60
|
# parsing params
|
62
61
|
params = args.extract_options!
|
63
62
|
first = args.first
|
@@ -66,16 +65,10 @@ rspec do
|
|
66
65
|
if args.size == 1 and first.is_a?(String) and first =~ /^\/|^http:/
|
67
66
|
uri = Uri.parse first
|
68
67
|
workspace_variables[:path] = uri.path
|
69
|
-
workspace_variables[:params] = uri.query_values
|
70
68
|
workspace_variables[:env] = Rad::Http::Request.stub_environment(first)
|
71
|
-
|
72
|
-
#
|
73
|
-
|
74
|
-
# uri = Uri.parse first
|
75
|
-
# workspace_variables[:path] = uri.path
|
76
|
-
# workspace_variables[:params] = uri.query_values
|
77
|
-
# workspace_variables[:env] = Rad::Http::Request.stub_environment(first)
|
78
|
-
# end
|
69
|
+
|
70
|
+
# some params may be defined in :url ans some in :params, merging both
|
71
|
+
params = uri.query_values.merge params if uri.query_values
|
79
72
|
elsif (first.is_a?(String) or first.is_a?(Symbol)) and args.size <= 2
|
80
73
|
workspace_variables[:path] = '/'
|
81
74
|
workspace_variables[:class] = wcall_options[:controller] || raise("not defined wcall controller (use set_wcall controller: SomeController)!")
|
@@ -89,7 +82,7 @@ rspec do
|
|
89
82
|
else
|
90
83
|
raise "Invalid input!"
|
91
84
|
end
|
92
|
-
|
85
|
+
|
93
86
|
# preparing environment
|
94
87
|
workspace_variables[:env] ||= {}
|
95
88
|
workspace_variables[:env].reverse_merge! Rad::Http::Request.stub_environment
|
data/lib/rad/spec/xhtml.rb
CHANGED
data/readme.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Rad - Ruby Web Framework
|
2
2
|
|
3
|
-
Simple and highly customizable Web Framework encouraging to build an app as a set of
|
3
|
+
Simple and highly customizable Web Framework encouraging to build an app as a set of cooperating components instead of monolith.
|
4
4
|
With an architecture heavily inspired by Rails, Spring IoC, JBoss Seam and JEE (but without config burden).
|
5
5
|
|
6
6
|
You can start instantly using one of predefined profiles, or take a total control over all aspects of environment and completelly modify it according to Your goals (everything is a component, if You don't like the router, controller or views - throw it out and introduce Your own).
|
@@ -20,6 +20,7 @@ Here's the classic **sample blog app** [rad-sample.heroku.com](http://rad-sample
|
|
20
20
|
- Simple things should be simple (simple API, instant start with minimal config)
|
21
21
|
- Complete control if You need it, it's designed to be open and customizable
|
22
22
|
- Agile/Extreme development should be easy (specs, iterative development, fast prototyping)
|
23
|
+
- Be small (and it's small, actually it's nothing more than a thin integration layer over a lot's of other gems)
|
23
24
|
|
24
25
|
## Some thecnical thoughts and ideas:
|
25
26
|
|
@@ -29,7 +30,15 @@ Here's the classic **sample blog app** [rad-sample.heroku.com](http://rad-sample
|
|
29
30
|
- I also tried to comply to KISS principle - always fighting complex stuff, seeking for not needed API or code that can be eliminated or delegated to external library.
|
30
31
|
- I tried to reuse existing good stuff as much as possible, for example - web tier looks kinda like Rails (so, You don't have to learn much of new stuff and API) but the behaviour of it is slightly (or sometimes significally) different.
|
31
32
|
|
33
|
+
## It's small
|
34
|
+
|
35
|
+
I would like to mention it one more time - Rad is not a super-specialized framework like Sinatra, it's the universal and full-featured Web Framework, but it's size is small, really small!
|
36
|
+
Take a look at [code statistics](http://ruby-lang.info/blog/simple-approach-to-measure-the-agility-and-complexi-4mu), find there the 'rad_core' word and compare it's size with others, actually it's even smaller, because the half of code belongs to specs.
|
37
|
+
|
38
|
+
I believe **small code size is very important**, it means that the project is easy to understand, easy to refactor and customize and it's agile (by agility I mean high speed of reaction and adoption to changing world environment and requirements).
|
39
|
+
|
32
40
|
## Why did I make another Rails?
|
41
|
+
|
33
42
|
There are many things that I like in Rails:
|
34
43
|
|
35
44
|
- high productivity
|
data/spec/router/router_spec.rb
CHANGED
@@ -25,9 +25,10 @@ describe "Router Basic" do
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it "encode_method" do
|
28
|
-
lambda{@router.encode_method :
|
29
|
-
@router.routers.
|
30
|
-
|
28
|
+
lambda{@router.encode_method :some_method, false}.should raise_error(/route method/)
|
29
|
+
first_router_in_chain = @router.routers.to_a[0][1]
|
30
|
+
first_router_in_chain.should_receive(:encode_method).and_return([BlogsController, :show])
|
31
|
+
@router.encode_method(:some_method, false).should == [BlogsController, :show]
|
31
32
|
end
|
32
33
|
|
33
34
|
it "decode" do
|
@@ -52,7 +52,7 @@ describe "spec helper" do
|
|
52
52
|
describe "routes" do
|
53
53
|
before do
|
54
54
|
router = rad[:router]
|
55
|
-
router.routers
|
55
|
+
router.routers[:restful_router] = Rad::Router::RestfulRouter.new
|
56
56
|
router.routers[:restful_router].add :planes, class_name: 'Planes'
|
57
57
|
end
|
58
58
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rad_core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.30
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,56 +10,12 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-07-
|
13
|
+
date: 2011-07-30 00:00:00 +04:00
|
14
14
|
default_executable:
|
15
15
|
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
17
|
-
name: i18n
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
|
-
requirements:
|
21
|
-
- - "="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.5.0
|
24
|
-
type: :runtime
|
25
|
-
prerelease: false
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: polyglot
|
29
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
30
|
-
none: false
|
31
|
-
requirements:
|
32
|
-
- - "="
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: 0.3.1
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: treetop
|
40
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - "="
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: 1.4.9
|
46
|
-
type: :runtime
|
47
|
-
prerelease: false
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: mime-types
|
51
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
52
|
-
none: false
|
53
|
-
requirements:
|
54
|
-
- - "="
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version: "1.16"
|
57
|
-
type: :runtime
|
58
|
-
prerelease: false
|
59
|
-
version_requirements: *id004
|
60
16
|
- !ruby/object:Gem::Dependency
|
61
17
|
name: activesupport
|
62
|
-
requirement: &
|
18
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
63
19
|
none: false
|
64
20
|
requirements:
|
65
21
|
- - "="
|
@@ -67,21 +23,10 @@ dependencies:
|
|
67
23
|
version: 3.0.7
|
68
24
|
type: :runtime
|
69
25
|
prerelease: false
|
70
|
-
version_requirements: *
|
71
|
-
- !ruby/object:Gem::Dependency
|
72
|
-
name: builder
|
73
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
|
-
requirements:
|
76
|
-
- - "="
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
version: 2.1.2
|
79
|
-
type: :runtime
|
80
|
-
prerelease: false
|
81
|
-
version_requirements: *id006
|
26
|
+
version_requirements: *id001
|
82
27
|
- !ruby/object:Gem::Dependency
|
83
28
|
name: haml
|
84
|
-
requirement: &
|
29
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
85
30
|
none: false
|
86
31
|
requirements:
|
87
32
|
- - "="
|
@@ -89,10 +34,10 @@ dependencies:
|
|
89
34
|
version: 3.0.25
|
90
35
|
type: :runtime
|
91
36
|
prerelease: false
|
92
|
-
version_requirements: *
|
37
|
+
version_requirements: *id002
|
93
38
|
- !ruby/object:Gem::Dependency
|
94
39
|
name: tilt
|
95
|
-
requirement: &
|
40
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
96
41
|
none: false
|
97
42
|
requirements:
|
98
43
|
- - "="
|
@@ -100,10 +45,10 @@ dependencies:
|
|
100
45
|
version: 1.2.1
|
101
46
|
type: :runtime
|
102
47
|
prerelease: false
|
103
|
-
version_requirements: *
|
48
|
+
version_requirements: *id003
|
104
49
|
- !ruby/object:Gem::Dependency
|
105
50
|
name: json
|
106
|
-
requirement: &
|
51
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
107
52
|
none: false
|
108
53
|
requirements:
|
109
54
|
- - "="
|
@@ -111,10 +56,10 @@ dependencies:
|
|
111
56
|
version: 1.4.6
|
112
57
|
type: :runtime
|
113
58
|
prerelease: false
|
114
|
-
version_requirements: *
|
59
|
+
version_requirements: *id004
|
115
60
|
- !ruby/object:Gem::Dependency
|
116
61
|
name: addressable
|
117
|
-
requirement: &
|
62
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
118
63
|
none: false
|
119
64
|
requirements:
|
120
65
|
- - "="
|
@@ -122,32 +67,10 @@ dependencies:
|
|
122
67
|
version: 2.2.2
|
123
68
|
type: :runtime
|
124
69
|
prerelease: false
|
125
|
-
version_requirements: *
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: nokogiri
|
128
|
-
requirement: &id011 !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
|
-
requirements:
|
131
|
-
- - "="
|
132
|
-
- !ruby/object:Gem::Version
|
133
|
-
version: 1.4.4
|
134
|
-
type: :runtime
|
135
|
-
prerelease: false
|
136
|
-
version_requirements: *id011
|
137
|
-
- !ruby/object:Gem::Dependency
|
138
|
-
name: dictionary
|
139
|
-
requirement: &id012 !ruby/object:Gem::Requirement
|
140
|
-
none: false
|
141
|
-
requirements:
|
142
|
-
- - "="
|
143
|
-
- !ruby/object:Gem::Version
|
144
|
-
version: 1.0.0
|
145
|
-
type: :runtime
|
146
|
-
prerelease: false
|
147
|
-
version_requirements: *id012
|
70
|
+
version_requirements: *id005
|
148
71
|
- !ruby/object:Gem::Dependency
|
149
72
|
name: rack
|
150
|
-
requirement: &
|
73
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
151
74
|
none: false
|
152
75
|
requirements:
|
153
76
|
- - "="
|
@@ -155,10 +78,10 @@ dependencies:
|
|
155
78
|
version: 1.3.0
|
156
79
|
type: :runtime
|
157
80
|
prerelease: false
|
158
|
-
version_requirements: *
|
81
|
+
version_requirements: *id006
|
159
82
|
- !ruby/object:Gem::Dependency
|
160
83
|
name: thin
|
161
|
-
requirement: &
|
84
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
162
85
|
none: false
|
163
86
|
requirements:
|
164
87
|
- - "="
|
@@ -166,10 +89,10 @@ dependencies:
|
|
166
89
|
version: 1.2.7
|
167
90
|
type: :runtime
|
168
91
|
prerelease: false
|
169
|
-
version_requirements: *
|
92
|
+
version_requirements: *id007
|
170
93
|
- !ruby/object:Gem::Dependency
|
171
94
|
name: mail
|
172
|
-
requirement: &
|
95
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
173
96
|
none: false
|
174
97
|
requirements:
|
175
98
|
- - "="
|
@@ -177,10 +100,10 @@ dependencies:
|
|
177
100
|
version: 2.2.14
|
178
101
|
type: :runtime
|
179
102
|
prerelease: false
|
180
|
-
version_requirements: *
|
103
|
+
version_requirements: *id008
|
181
104
|
- !ruby/object:Gem::Dependency
|
182
105
|
name: ruby_ext
|
183
|
-
requirement: &
|
106
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
184
107
|
none: false
|
185
108
|
requirements:
|
186
109
|
- - ">="
|
@@ -188,10 +111,10 @@ dependencies:
|
|
188
111
|
version: "0"
|
189
112
|
type: :runtime
|
190
113
|
prerelease: false
|
191
|
-
version_requirements: *
|
114
|
+
version_requirements: *id009
|
192
115
|
- !ruby/object:Gem::Dependency
|
193
116
|
name: vfs
|
194
|
-
requirement: &
|
117
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
195
118
|
none: false
|
196
119
|
requirements:
|
197
120
|
- - ">="
|
@@ -199,10 +122,10 @@ dependencies:
|
|
199
122
|
version: "0"
|
200
123
|
type: :runtime
|
201
124
|
prerelease: false
|
202
|
-
version_requirements: *
|
125
|
+
version_requirements: *id010
|
203
126
|
- !ruby/object:Gem::Dependency
|
204
127
|
name: micon
|
205
|
-
requirement: &
|
128
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
206
129
|
none: false
|
207
130
|
requirements:
|
208
131
|
- - ">="
|
@@ -210,10 +133,10 @@ dependencies:
|
|
210
133
|
version: "0"
|
211
134
|
type: :runtime
|
212
135
|
prerelease: false
|
213
|
-
version_requirements: *
|
136
|
+
version_requirements: *id011
|
214
137
|
- !ruby/object:Gem::Dependency
|
215
138
|
name: class_loader
|
216
|
-
requirement: &
|
139
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
217
140
|
none: false
|
218
141
|
requirements:
|
219
142
|
- - ">="
|
@@ -221,7 +144,7 @@ dependencies:
|
|
221
144
|
version: "0"
|
222
145
|
type: :runtime
|
223
146
|
prerelease: false
|
224
|
-
version_requirements: *
|
147
|
+
version_requirements: *id012
|
225
148
|
description:
|
226
149
|
email:
|
227
150
|
executables:
|