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 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