algernon 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/README.md +2 -1
- data/algernon.gemspec +6 -5
- data/database/.gitignore +3 -0
- data/lib/algernon.rb +2 -3
- data/lib/algernon/application.rb +3 -3
- data/lib/algernon/controller/base_controller.rb +8 -14
- data/lib/{utility/request_handler.rb → algernon/controller/dispatcher.rb} +3 -3
- data/lib/algernon/model/model.rb +4 -8
- data/lib/algernon/model/orm.rb +3 -3
- data/lib/algernon/routing/router.rb +1 -1
- data/lib/{utility → algernon/utility}/array_utils.rb +0 -0
- data/lib/{utility → algernon/utility}/method_override.rb +0 -0
- data/lib/{utility → algernon/utility}/string_utils.rb +0 -0
- data/lib/algernon/version.rb +1 -1
- metadata +35 -22
- data/.swp +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa688d0e655ff422bf0d0307bf7a1c35b671e08c
|
4
|
+
data.tar.gz: 697ab24702595edb02e1eb4ed79eeb38a310eef5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f693495432a2f534f3197a15c905bc0a72d6cdcf9511a7e91e164418fba20aa697a53574f4d8322c67b7acbfb9bd6b6b5f2ae2edee9f771fc1f409d3b7a8b57e
|
7
|
+
data.tar.gz: 0f5f27489f24e358c91cd2fd7e5f3ba862d87f0b8b1f9b181438de4f625f72d30451b811f05ca5dad1a4bd867a2c3b3fee24e2a89cc5be9ad57550bbaf5c588d
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
#Algernon
|
2
2
|
|
3
|
-
[](https://coveralls.io/github/andela-ydaniju/algernon?branch=master) [](https://travis-ci.org/andela-ydaniju/algernon) [](https://codeclimate.com/github/andela-ydaniju/algernon)
|
3
|
+
[](https://coveralls.io/github/andela-ydaniju/algernon?branch=master) [](https://travis-ci.org/andela-ydaniju/algernon) [](https://codeclimate.com/github/andela-ydaniju/algernon) [](https://badge.fury.io/rb/algernon)
|
4
4
|
|
5
5
|
Algernon is a Ruby MVC web framework.
|
6
6
|
|
@@ -229,6 +229,7 @@ The Algernon framework has a few dependencies. These are listed below, with link
|
|
229
229
|
|
230
230
|
* sqlite3 - https://github.com/sparklemotion/sqlite3-ruby
|
231
231
|
* erubis - https://rubygems.org/gems/erubis
|
232
|
+
* tilt - https://github.com/rtomayko/tilt
|
232
233
|
* bundler - https://github.com/bundler/bundler
|
233
234
|
* rake - https://github.com/ruby/rake
|
234
235
|
* rack - https://github.com/rack/rack
|
data/algernon.gemspec
CHANGED
@@ -34,11 +34,12 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency "rack-test", "~> 0.6"
|
35
35
|
spec.add_development_dependency "coveralls"
|
36
36
|
spec.add_development_dependency "capybara"
|
37
|
-
spec.
|
38
|
-
spec.
|
37
|
+
spec.add_development_dependency "poltergeist"
|
38
|
+
spec.add_development_dependency "pry"
|
39
39
|
|
40
40
|
spec.add_runtime_dependency "rack", "~> 1.6.4"
|
41
|
-
spec.add_runtime_dependency "erubis"
|
42
|
-
spec.add_runtime_dependency "
|
43
|
-
spec.add_runtime_dependency "
|
41
|
+
spec.add_runtime_dependency "erubis", "~> 2.7.0"
|
42
|
+
spec.add_runtime_dependency "tilt", "~> 2.0.2"
|
43
|
+
spec.add_runtime_dependency "sqlite3", "~> 1.3.11"
|
44
|
+
spec.add_runtime_dependency "activesupport", "~> 4.2.6"
|
44
45
|
end
|
data/database/.gitignore
ADDED
data/lib/algernon.rb
CHANGED
@@ -1,11 +1,10 @@
|
|
1
1
|
require "algernon/version"
|
2
2
|
require "algernon/dependencies"
|
3
|
-
require "utility/string_utils"
|
3
|
+
require "algernon/utility/string_utils"
|
4
4
|
require "algernon/routing/router"
|
5
5
|
require "algernon/routing/route"
|
6
6
|
require "algernon/routing/finder"
|
7
7
|
require "algernon/application"
|
8
8
|
require "algernon/controller/base_controller"
|
9
|
-
require "utility/array_utils"
|
9
|
+
require "algernon/utility/array_utils"
|
10
10
|
require "algernon/model/model"
|
11
|
-
require "pry"
|
data/lib/algernon/application.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require "rack"
|
2
|
-
require "
|
3
|
-
require "utility/method_override"
|
2
|
+
require "algernon/controller/dispatcher"
|
3
|
+
require "algernon/utility/method_override"
|
4
4
|
|
5
5
|
module Algernon
|
6
6
|
class Application
|
@@ -25,7 +25,7 @@ module Algernon
|
|
25
25
|
def respond_to_request
|
26
26
|
route = router.get_match(request.request_method, request.path_info)
|
27
27
|
if route
|
28
|
-
handler =
|
28
|
+
handler = Dispatcher.new(request, route)
|
29
29
|
handler.response
|
30
30
|
else
|
31
31
|
page_not_found
|
@@ -1,4 +1,4 @@
|
|
1
|
-
require "erubis"
|
1
|
+
require "tilt/erubis"
|
2
2
|
require "active_support/core_ext/hash/indifferent_access"
|
3
3
|
|
4
4
|
module Algernon
|
@@ -12,25 +12,19 @@ module Algernon
|
|
12
12
|
@response
|
13
13
|
end
|
14
14
|
|
15
|
-
def render(
|
15
|
+
def render(*args)
|
16
|
+
response_setter(render_template(*args))
|
17
|
+
end
|
18
|
+
|
19
|
+
def render_template(view_name, locals = {})
|
16
20
|
filename = File.join(APP_ROOT,
|
17
21
|
"app",
|
18
22
|
"views",
|
19
23
|
controller_for_views,
|
20
24
|
"#{view_name}.html.erb"
|
21
25
|
)
|
22
|
-
template =
|
23
|
-
|
24
|
-
res_body = Erubis::Eruby.new(template).result(parameters)
|
25
|
-
response_setter(res_body)
|
26
|
-
end
|
27
|
-
|
28
|
-
def process_view_variables(locals)
|
29
|
-
hash = {}
|
30
|
-
vars = instance_variables
|
31
|
-
vars.each { |name| hash[name] = instance_variable_get(name) }
|
32
|
-
|
33
|
-
hash.merge(locals)
|
26
|
+
template = Tilt::ErubisTemplate.new(filename)
|
27
|
+
template.render(self, locals)
|
34
28
|
end
|
35
29
|
|
36
30
|
def response_setter(body, status = 200, headers = {})
|
@@ -1,5 +1,5 @@
|
|
1
1
|
module Algernon
|
2
|
-
class
|
2
|
+
class Dispatcher
|
3
3
|
attr_reader :request, :route, :response
|
4
4
|
|
5
5
|
def initialize(request, route)
|
@@ -11,7 +11,7 @@ module Algernon
|
|
11
11
|
private
|
12
12
|
|
13
13
|
def process_request
|
14
|
-
params =
|
14
|
+
params = combine_parameters
|
15
15
|
|
16
16
|
request.instance_variable_set "@params", params
|
17
17
|
|
@@ -21,7 +21,7 @@ module Algernon
|
|
21
21
|
@response = controller_response(controller_class, route.action.to_sym)
|
22
22
|
end
|
23
23
|
|
24
|
-
def
|
24
|
+
def combine_parameters
|
25
25
|
route_url_params = route.get_url_parameters(request.path_info)
|
26
26
|
request.params.merge(route_url_params)
|
27
27
|
end
|
data/lib/algernon/model/model.rb
CHANGED
@@ -6,11 +6,7 @@ module Algernon
|
|
6
6
|
class Model
|
7
7
|
extend Algernon::TableMaker
|
8
8
|
extend Algernon::Orm
|
9
|
-
|
10
|
-
DB ||= SQLite3::Database.new(File.join("database", "data.sqlite"))
|
11
|
-
|
12
|
-
def initialize
|
13
|
-
end
|
9
|
+
DB = Orm::DB
|
14
10
|
|
15
11
|
def save
|
16
12
|
if id
|
@@ -46,7 +42,7 @@ module Algernon
|
|
46
42
|
end
|
47
43
|
|
48
44
|
def columns_except_id
|
49
|
-
self.class.
|
45
|
+
self.class.columns.without_id.with_value(self)
|
50
46
|
end
|
51
47
|
|
52
48
|
def values_placeholders
|
@@ -90,8 +86,8 @@ module Algernon
|
|
90
86
|
DB.execute(query)
|
91
87
|
end
|
92
88
|
|
93
|
-
def
|
94
|
-
@
|
89
|
+
def columns
|
90
|
+
@model_columns ||= fields.keys
|
95
91
|
end
|
96
92
|
end
|
97
93
|
|
data/lib/algernon/model/orm.rb
CHANGED
@@ -12,7 +12,7 @@ module Algernon
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def all
|
15
|
-
fields =
|
15
|
+
fields = columns.join(", ")
|
16
16
|
data = DB.execute("SELECT id, #{fields} FROM #{table_name}")
|
17
17
|
data.map! do |row|
|
18
18
|
row_to_model(row)
|
@@ -24,7 +24,7 @@ module Algernon
|
|
24
24
|
def row_to_model(row)
|
25
25
|
model = new
|
26
26
|
|
27
|
-
|
27
|
+
columns.each_with_index do |field, index|
|
28
28
|
model.send("#{field}=", row[index + 1]) if row
|
29
29
|
end
|
30
30
|
|
@@ -32,7 +32,7 @@ module Algernon
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def find(id)
|
35
|
-
fields =
|
35
|
+
fields = columns.join(", ")
|
36
36
|
row = DB.execute(
|
37
37
|
"SELECT id, #{fields} FROM #{table_name} WHERE id = ?",
|
38
38
|
id
|
File without changes
|
File without changes
|
File without changes
|
data/lib/algernon/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: algernon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- andela-ydaniju
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -101,7 +101,7 @@ dependencies:
|
|
101
101
|
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
|
-
type: :
|
104
|
+
type: :development
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
@@ -115,7 +115,7 @@ dependencies:
|
|
115
115
|
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
|
-
type: :
|
118
|
+
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
@@ -140,44 +140,58 @@ dependencies:
|
|
140
140
|
name: erubis
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version:
|
145
|
+
version: 2.7.0
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version:
|
152
|
+
version: 2.7.0
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: tilt
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 2.0.2
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 2.0.2
|
153
167
|
- !ruby/object:Gem::Dependency
|
154
168
|
name: sqlite3
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
|
-
- - "
|
171
|
+
- - "~>"
|
158
172
|
- !ruby/object:Gem::Version
|
159
|
-
version:
|
173
|
+
version: 1.3.11
|
160
174
|
type: :runtime
|
161
175
|
prerelease: false
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
163
177
|
requirements:
|
164
|
-
- - "
|
178
|
+
- - "~>"
|
165
179
|
- !ruby/object:Gem::Version
|
166
|
-
version:
|
180
|
+
version: 1.3.11
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
182
|
name: activesupport
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
|
-
- - "
|
185
|
+
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version:
|
187
|
+
version: 4.2.6
|
174
188
|
type: :runtime
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
|
-
- - "
|
192
|
+
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version:
|
194
|
+
version: 4.2.6
|
181
195
|
description: Algernon is a mini MVC framework built on Ruby.
|
182
196
|
email:
|
183
197
|
- yusuf.daniju@andela.com
|
@@ -190,7 +204,6 @@ files:
|
|
190
204
|
- ".hound.yml"
|
191
205
|
- ".rspec"
|
192
206
|
- ".rubocop.yml"
|
193
|
-
- ".swp"
|
194
207
|
- ".travis.yml"
|
195
208
|
- CODE_OF_CONDUCT.md
|
196
209
|
- Gemfile
|
@@ -200,10 +213,11 @@ files:
|
|
200
213
|
- algernon.gemspec
|
201
214
|
- bin/console
|
202
215
|
- bin/setup
|
203
|
-
- database
|
216
|
+
- database/.gitignore
|
204
217
|
- lib/algernon.rb
|
205
218
|
- lib/algernon/application.rb
|
206
219
|
- lib/algernon/controller/base_controller.rb
|
220
|
+
- lib/algernon/controller/dispatcher.rb
|
207
221
|
- lib/algernon/dependencies.rb
|
208
222
|
- lib/algernon/model/model.rb
|
209
223
|
- lib/algernon/model/orm.rb
|
@@ -211,11 +225,10 @@ files:
|
|
211
225
|
- lib/algernon/routing/finder.rb
|
212
226
|
- lib/algernon/routing/route.rb
|
213
227
|
- lib/algernon/routing/router.rb
|
228
|
+
- lib/algernon/utility/array_utils.rb
|
229
|
+
- lib/algernon/utility/method_override.rb
|
230
|
+
- lib/algernon/utility/string_utils.rb
|
214
231
|
- lib/algernon/version.rb
|
215
|
-
- lib/utility/array_utils.rb
|
216
|
-
- lib/utility/method_override.rb
|
217
|
-
- lib/utility/request_handler.rb
|
218
|
-
- lib/utility/string_utils.rb
|
219
232
|
homepage: https://github.com/andela-ydaniju/algernon.
|
220
233
|
licenses:
|
221
234
|
- MIT
|
data/.swp
DELETED
Binary file
|