algernon 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2fbc850ffd9b51fb9ff4b62e9d76e994f10138ba
4
- data.tar.gz: 8deabc2abc86f49371db3af3114bc0b25539d1e9
3
+ metadata.gz: aa688d0e655ff422bf0d0307bf7a1c35b671e08c
4
+ data.tar.gz: 697ab24702595edb02e1eb4ed79eeb38a310eef5
5
5
  SHA512:
6
- metadata.gz: c087fdddef2a72607b181d05b69575aa62deca236693f72cb23d9323a56b09f6cba949c99338db45bf8a447fb34c33514b845fbae9265b05eb659f76c28a1e52
7
- data.tar.gz: be56d536db6ef22d62fa96f515349b183bcd3a18a25e5bec0c1ef1a06312a8a32b4fc3640f01f40519ebda47bc7e49d58de54d1181889ed1ac1a090a3e57b9fd
6
+ metadata.gz: f693495432a2f534f3197a15c905bc0a72d6cdcf9511a7e91e164418fba20aa697a53574f4d8322c67b7acbfb9bd6b6b5f2ae2edee9f771fc1f409d3b7a8b57e
7
+ data.tar.gz: 0f5f27489f24e358c91cd2fd7e5f3ba862d87f0b8b1f9b181438de4f625f72d30451b811f05ca5dad1a4bd867a2c3b3fee24e2a89cc5be9ad57550bbaf5c588d
data/.gitignore CHANGED
@@ -9,4 +9,5 @@
9
9
  /tmp/
10
10
  algernon-0.1.0.gem
11
11
  notes
12
- /database/data.sqlite
12
+ /database/data.sqlite
13
+ .swp
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  #Algernon
2
2
 
3
- [![Coverage Status](https://coveralls.io/repos/github/andela-ydaniju/algernon/badge.svg?branch=master)](https://coveralls.io/github/andela-ydaniju/algernon?branch=master) [![Build Status](https://travis-ci.org/andela-ydaniju/algernon.svg?branch=master)](https://travis-ci.org/andela-ydaniju/algernon) [![Code Climate](https://codeclimate.com/github/andela-ydaniju/algernon/badges/gpa.svg)](https://codeclimate.com/github/andela-ydaniju/algernon)
3
+ [![Coverage Status](https://coveralls.io/repos/github/andela-ydaniju/algernon/badge.svg?branch=master)](https://coveralls.io/github/andela-ydaniju/algernon?branch=master) [![Build Status](https://travis-ci.org/andela-ydaniju/algernon.svg?branch=master)](https://travis-ci.org/andela-ydaniju/algernon) [![Code Climate](https://codeclimate.com/github/andela-ydaniju/algernon/badges/gpa.svg)](https://codeclimate.com/github/andela-ydaniju/algernon) [![Gem Version](https://badge.fury.io/rb/algernon.svg)](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
@@ -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.add_runtime_dependency "poltergeist"
38
- spec.add_runtime_dependency "pry"
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 "sqlite3"
43
- spec.add_runtime_dependency "activesupport"
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
@@ -0,0 +1,3 @@
1
+ *
2
+ !.gitignore
3
+
@@ -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"
@@ -1,6 +1,6 @@
1
1
  require "rack"
2
- require "utility/request_handler"
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 = RequestHandler.new(request, route)
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(view_name, locals = {})
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 = File.read(filename)
23
- parameters = process_view_variables(locals)
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 RequestHandler
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 = collage_parameters
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 collage_parameters
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
@@ -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.columns_array.without_id.with_value(self)
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 columns_array
94
- @columns_array ||= fields.keys
89
+ def columns
90
+ @model_columns ||= fields.keys
95
91
  end
96
92
  end
97
93
 
@@ -12,7 +12,7 @@ module Algernon
12
12
  end
13
13
 
14
14
  def all
15
- fields = columns_array.join(", ")
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
- columns_array.each_with_index do |field, index|
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 = columns_array.join(", ")
35
+ fields = columns.join(", ")
36
36
  row = DB.execute(
37
37
  "SELECT id, #{fields} FROM #{table_name} WHERE id = ?",
38
38
  id
@@ -21,7 +21,7 @@ module Algernon
21
21
  end
22
22
 
23
23
  def has_routes?
24
- true unless routes.empty?
24
+ routes.any?
25
25
  end
26
26
 
27
27
  def get_match(http_verb, path)
@@ -1,3 +1,3 @@
1
1
  module Algernon
2
- VERSION = "0.1.0".freeze
2
+ VERSION = "0.1.1".freeze
3
3
  end
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.0
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-16 00:00:00.000000000 Z
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: :runtime
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: :runtime
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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: '0'
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/data.sqlite
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