spire 0.4.6 → 0.4.7

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/Gemfile CHANGED
@@ -1,13 +1,13 @@
1
+ source 'https://rubygems.org'
1
2
  gem "rack", ">= 1.3.0"
2
- gem "rack-rewrite", ">= 1.2.1"
3
3
  gem "haml", ">= 3.1.0"
4
4
  gem "erubis", ">= 2.7.0"
5
5
 
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "bundler", "~> 1.0.0"
10
- gem "jeweler", "~> 1.6.4"
11
- gem "rcov", ">= 0"
9
+ gem "bundler", ">= 1.0.0"
10
+ gem "jeweler", ">= 1.6.4"
11
+ gem "simplecov", ">= 0.6.0"
12
12
  end
13
13
 
data/Gemfile.lock CHANGED
@@ -1,4 +1,5 @@
1
1
  GEM
2
+ remote: https://rubygems.org/
2
3
  specs:
3
4
  erubis (2.7.0)
4
5
  git (1.2.5)
@@ -7,19 +8,21 @@ GEM
7
8
  bundler (~> 1.0)
8
9
  git (>= 1.2.5)
9
10
  rake
11
+ multi_json (1.3.6)
10
12
  rack (1.3.5)
11
- rack-rewrite (1.2.1)
12
13
  rake (0.9.2.2)
13
- rcov (0.9.11)
14
+ simplecov (0.6.4)
15
+ multi_json (~> 1.0)
16
+ simplecov-html (~> 0.5.3)
17
+ simplecov-html (0.5.3)
14
18
 
15
19
  PLATFORMS
16
20
  ruby
17
21
 
18
22
  DEPENDENCIES
19
- bundler (~> 1.0.0)
23
+ bundler (>= 1.0.0)
20
24
  erubis (>= 2.7.0)
21
25
  haml (>= 3.1.0)
22
- jeweler (~> 1.6.4)
26
+ jeweler (>= 1.6.4)
23
27
  rack (>= 1.3.0)
24
- rack-rewrite (>= 1.2.1)
25
- rcov
28
+ simplecov (>= 0.6.0)
data/Rakefile CHANGED
@@ -32,16 +32,6 @@ Rake::TestTask.new(:test) do |test|
32
32
  test.verbose = true
33
33
  end
34
34
 
35
- require 'rcov/rcovtask'
36
- Rcov::RcovTask.new do |test|
37
- test.libs << 'test'
38
- test.pattern = 'test/**/test_*.rb'
39
- test.verbose = true
40
- test.rcov_opts << '--exclude "gems/*"'
41
- end
42
-
43
- task :default => :test
44
-
45
35
  require 'rake/rdoctask'
46
36
  Rake::RDocTask.new do |rdoc|
47
37
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.6
1
+ 0.4.7
@@ -1,63 +1,50 @@
1
1
  require 'spire/http'
2
+ require 'spire/resource/buffer'
2
3
 
3
4
  module Spire
5
+
4
6
  class MainController
7
+ attr_accessor :buffer
8
+
9
+ def initialize
10
+ @buffer = Buffer.new
11
+ end
12
+
13
+ def get_buffer
14
+ @buffer.data
15
+ end
5
16
 
6
17
  def render(opts={})
7
- data = {}
18
+ instance_vars = {}
8
19
  instance_variables.each do |var|
9
- data[var] = instance_variable_get(var)
20
+ instance_vars[var] = instance_variable_get(var)
10
21
  end
11
22
 
12
23
  if opts[:text]
13
- return opts[:text]
14
- end
15
-
16
- if opts[:file]
17
- contents = Public.new :file => "test.html", :render => true
18
- file = contents.extension_check
19
- return file
24
+ @buffer.append(opts[:text])
20
25
  end
21
-
22
- if opts[:view].is_a? Array
23
- @storage = ""
24
- opts[:view].each do |file|
25
- file_path = File.join($base_path, 'views', file)
26
- return 404 unless File.exists?(file_path)
27
- contents = IO.read(file_path)
28
- extension = File.extname(file_path)
29
26
 
30
- case extension
31
- when '.haml'
32
- require 'haml'
33
- @storage = @storage + Haml::Engine.new(contents).render(Object.new)
34
- when '.rhtml'
35
- require 'erubis'
36
- eruby = Erubis::Eruby.new(contents)
37
- @storage = @storage + eruby.result(data)
38
- else
39
- @storage = @storage + contents
40
- end
27
+ if opts[:view]
28
+ file_path = File.join($base_path, 'views', opts[:view])
29
+ return 404 unless File.exists?(file_path)
30
+ contents = IO.read(file_path)
31
+ extension = File.extname(file_path)
32
+
33
+ case extension
34
+ when '.haml'
35
+ require 'haml'
36
+ insert = Haml::Engine.new(contents).render(Object.new, instance_vars)
37
+ when '.rhtml'
38
+ require 'erubis'
39
+ eruby = Erubis::Eruby.new(contents)
40
+ insert = eruby.result(instance_vars)
41
+ else
42
+ return false
41
43
  end
42
- return @storage
44
+ @buffer.append(insert)
43
45
  end
44
-
45
- file_path = File.join($base_path, 'views', opts[:view])
46
- return 404 unless File.exists?(file_path)
47
- contents = IO.read(file_path)
48
- extension = File.extname(file_path)
49
46
 
50
- case extension
51
- when '.haml'
52
- require 'haml'
53
- Haml::Engine.new(contents).render(Object.new)
54
- when '.rhtml'
55
- require 'erubis'
56
- eruby = Erubis::Eruby.new(contents)
57
- eruby.result(data)
58
- else
59
- contents
60
- end
47
+ return nil
61
48
  end
62
49
 
63
50
  end
data/lib/spire/error.rb CHANGED
@@ -34,7 +34,7 @@ module Spire
34
34
  end
35
35
 
36
36
  def return_404
37
- @return = Response.new(self.style_error("404 - Page not found"), 'text/html;', 404)
37
+ @return = Response.new(self.style_error("404 - File not found"), 'text/html;', 404)
38
38
  end
39
39
 
40
40
  def return_444
data/lib/spire/http.rb CHANGED
@@ -7,12 +7,6 @@ module Spire
7
7
  @headers = {'Content-Type' => content_type}
8
8
  @status_code = status
9
9
  end
10
-
11
- def manual_response(content, headers, status)
12
- @content = content
13
- @headers = headers
14
- @status_code = status
15
- end
16
10
 
17
11
  def to_rack
18
12
  [status_code, headers, [content]]
data/lib/spire/public.rb CHANGED
@@ -4,13 +4,11 @@ module Spire
4
4
  class Public
5
5
  def initialize(opts={:render=>true})
6
6
  @opts = opts
7
- mime = Mime.new
8
- @mime_types = mime.return_mimes
9
7
  end
10
8
 
11
9
  def extension_check
12
10
  file_extension = File.extname(@opts[:file])
13
- @mime_types.each do |ext, type|
11
+ Mime.return_mimes.each do |ext, type|
14
12
  if file_extension == ext
15
13
  @content_type = type
16
14
  end
@@ -22,6 +20,17 @@ module Spire
22
20
  return [false, @content_type]
23
21
  end
24
22
  end
23
+
24
+ def self.return_file(file)
25
+ result = Public.new :file => file, :render => true
26
+ file = result.extension_check
27
+ puts file
28
+ if file == 404
29
+ return Error.new :status => 404, :message => "404 // File not found"
30
+ else
31
+ return Response.new(file[:file], file[:content_type], 200)
32
+ end
33
+ end
25
34
 
26
35
  def create_response
27
36
  path = File.expand_path(__FILE__)
@@ -0,0 +1,13 @@
1
+ module Spire
2
+ class Buffer
3
+ attr_accessor :data
4
+
5
+ def initialize
6
+ @data = String.new
7
+ end
8
+
9
+ def append(insert)
10
+ @data = @data + insert
11
+ end
12
+ end
13
+ end
@@ -1,7 +1,7 @@
1
1
  module Spire
2
2
  class Mime
3
- def return_mimes
4
- return @mime_types = {
3
+ def self.return_mimes
4
+ return {
5
5
  ".html" => "text/html",
6
6
  ".text" => "text/plain",
7
7
  ".js" => "text/javascript",
data/lib/spire/router.rb CHANGED
@@ -15,8 +15,8 @@ module Spire
15
15
  @app["controller"] = nil
16
16
 
17
17
  if @request["controller"] == "favicon.ico"
18
- self.return_file("favicon.ico")
19
- @request["controller"] = nil
18
+ favicon = Public.return_file("favicon.ico")
19
+ return favicon
20
20
  end
21
21
 
22
22
  if @request["controller"] == nil
@@ -37,43 +37,27 @@ module Spire
37
37
  end
38
38
  end
39
39
 
40
- unless @app["controller"]
41
- return Error.new :message => "404 // Route not found in system/routes.rb", :status => 404
40
+ if !@app["controller"]
41
+ return Error.new :message => "Route not found in system/routes.rb", :status => 404
42
42
  end
43
43
 
44
44
  return self.run
45
45
  end
46
46
 
47
- def return_file(file)
48
- result = Public.new :file => file, :render => true
49
- file = result.extension_check
50
-
51
- if file == 404
52
- return Error.new :status => 404, :message => "404 // File not found"
53
- else
54
- return Response.new(file[:file], file[:content_type], 200)
55
- end
56
- end
57
-
58
47
  def run
59
48
  require "#{$base_path}/controllers/#{@app["controller"]}Controller"
60
49
  @class = Kernel.const_get(@app["controller"]).new()
61
50
 
62
51
  result = @class.method(@app["action"]).call
52
+ buffer = @class.get_buffer
63
53
 
64
- if result.is_a? Hash
65
- if result[:file]
66
- return Response.new(result[:file], result[:content_type], 200)
67
- end
54
+ if !buffer || !result
55
+ return Error.new :message => "No method/Response from method. See #{@app["controller"]}##{@app["action"]} and check for a response", :status => 404
68
56
  end
69
-
57
+
70
58
  content_type = "text/html;"
71
59
  status = 200
72
-
73
- if result == 404 or result == nil
74
- return Error.new :message => "404 // No method/Response from method. See #{@app["controller"]}##{@app["action"]} and check for a response", :status => 404
75
- end
76
-
60
+
77
61
  if @class.instance_variable_get(:@status)
78
62
  status = @class.instance_variable_get(:@status)
79
63
  end
@@ -81,8 +65,12 @@ module Spire
81
65
  if @class.instance_variable_get(:@content_type)
82
66
  content_type = @class.instance_variable_get(:content_type)
83
67
  end
84
-
85
- return Response.new(result, content_type, status)
68
+
69
+ if result
70
+ buffer = buffer + result
71
+ end
72
+
73
+ return Response.new(buffer, content_type, status)
86
74
  end
87
75
 
88
76
  def call(env)
data/spire.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "spire"
8
- s.version = "0.4.6"
8
+ s.version = "0.4.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Scott Nicol"]
12
- s.date = "2011-11-15"
12
+ s.date = "2012-08-08"
13
13
  s.description = "Light rack-based framework with controllers, HAML/ERB views, router & error handler"
14
14
  s.email = "scott@scottnicol.co.uk"
15
15
  s.executables = ["spire"]
@@ -28,6 +28,7 @@ Gem::Specification.new do |s|
28
28
  "lib/spire/error.rb",
29
29
  "lib/spire/http.rb",
30
30
  "lib/spire/public.rb",
31
+ "lib/spire/resource/buffer.rb",
31
32
  "lib/spire/resource/mime.rb",
32
33
  "lib/spire/router.rb",
33
34
  "spire.gemspec"
@@ -35,7 +36,7 @@ Gem::Specification.new do |s|
35
36
  s.homepage = "http://github.com/snicol/spire"
36
37
  s.licenses = ["MIT"]
37
38
  s.require_paths = ["lib"]
38
- s.rubygems_version = "1.8.10"
39
+ s.rubygems_version = "1.8.24"
39
40
  s.summary = "A light controller-only rack framework with a dash of views"
40
41
 
41
42
  if s.respond_to? :specification_version then
@@ -43,29 +44,26 @@ Gem::Specification.new do |s|
43
44
 
44
45
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
45
46
  s.add_runtime_dependency(%q<rack>, [">= 1.3.0"])
46
- s.add_runtime_dependency(%q<rack-rewrite>, [">= 1.2.1"])
47
47
  s.add_runtime_dependency(%q<haml>, [">= 3.1.0"])
48
48
  s.add_runtime_dependency(%q<erubis>, [">= 2.7.0"])
49
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
50
- s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
51
- s.add_development_dependency(%q<rcov>, [">= 0"])
49
+ s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
50
+ s.add_development_dependency(%q<jeweler>, [">= 1.6.4"])
51
+ s.add_development_dependency(%q<simplecov>, [">= 0.6.0"])
52
52
  else
53
53
  s.add_dependency(%q<rack>, [">= 1.3.0"])
54
- s.add_dependency(%q<rack-rewrite>, [">= 1.2.1"])
55
54
  s.add_dependency(%q<haml>, [">= 3.1.0"])
56
55
  s.add_dependency(%q<erubis>, [">= 2.7.0"])
57
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
58
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
59
- s.add_dependency(%q<rcov>, [">= 0"])
56
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
57
+ s.add_dependency(%q<jeweler>, [">= 1.6.4"])
58
+ s.add_dependency(%q<simplecov>, [">= 0.6.0"])
60
59
  end
61
60
  else
62
61
  s.add_dependency(%q<rack>, [">= 1.3.0"])
63
- s.add_dependency(%q<rack-rewrite>, [">= 1.2.1"])
64
62
  s.add_dependency(%q<haml>, [">= 3.1.0"])
65
63
  s.add_dependency(%q<erubis>, [">= 2.7.0"])
66
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
- s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
68
- s.add_dependency(%q<rcov>, [">= 0"])
64
+ s.add_dependency(%q<bundler>, [">= 1.0.0"])
65
+ s.add_dependency(%q<jeweler>, [">= 1.6.4"])
66
+ s.add_dependency(%q<simplecov>, [">= 0.6.0"])
69
67
  end
70
68
  end
71
69
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spire
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-15 00:00:00.000000000Z
12
+ date: 2012-08-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rack
16
- requirement: &70280841893160 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,21 +21,15 @@ dependencies:
21
21
  version: 1.3.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70280841893160
25
- - !ruby/object:Gem::Dependency
26
- name: rack-rewrite
27
- requirement: &70280842012880 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
28
25
  none: false
29
26
  requirements:
30
27
  - - ! '>='
31
28
  - !ruby/object:Gem::Version
32
- version: 1.2.1
33
- type: :runtime
34
- prerelease: false
35
- version_requirements: *70280842012880
29
+ version: 1.3.0
36
30
  - !ruby/object:Gem::Dependency
37
31
  name: haml
38
- requirement: &70280842015600 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
34
  requirements:
41
35
  - - ! '>='
@@ -43,10 +37,15 @@ dependencies:
43
37
  version: 3.1.0
44
38
  type: :runtime
45
39
  prerelease: false
46
- version_requirements: *70280842015600
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.1.0
47
46
  - !ruby/object:Gem::Dependency
48
47
  name: erubis
49
- requirement: &70280842017300 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
50
49
  none: false
51
50
  requirements:
52
51
  - - ! '>='
@@ -54,40 +53,60 @@ dependencies:
54
53
  version: 2.7.0
55
54
  type: :runtime
56
55
  prerelease: false
57
- version_requirements: *70280842017300
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.7.0
58
62
  - !ruby/object:Gem::Dependency
59
63
  name: bundler
60
- requirement: &70280842019320 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
61
65
  none: false
62
66
  requirements:
63
- - - ~>
67
+ - - ! '>='
64
68
  - !ruby/object:Gem::Version
65
69
  version: 1.0.0
66
70
  type: :development
67
71
  prerelease: false
68
- version_requirements: *70280842019320
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.0.0
69
78
  - !ruby/object:Gem::Dependency
70
79
  name: jeweler
71
- requirement: &70280842021720 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
72
81
  none: false
73
82
  requirements:
74
- - - ~>
83
+ - - ! '>='
75
84
  - !ruby/object:Gem::Version
76
85
  version: 1.6.4
77
86
  type: :development
78
87
  prerelease: false
79
- version_requirements: *70280842021720
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 1.6.4
80
94
  - !ruby/object:Gem::Dependency
81
- name: rcov
82
- requirement: &70280842023380 !ruby/object:Gem::Requirement
95
+ name: simplecov
96
+ requirement: !ruby/object:Gem::Requirement
83
97
  none: false
84
98
  requirements:
85
99
  - - ! '>='
86
100
  - !ruby/object:Gem::Version
87
- version: '0'
101
+ version: 0.6.0
88
102
  type: :development
89
103
  prerelease: false
90
- version_requirements: *70280842023380
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: 0.6.0
91
110
  description: Light rack-based framework with controllers, HAML/ERB views, router &
92
111
  error handler
93
112
  email: scott@scottnicol.co.uk
@@ -108,6 +127,7 @@ files:
108
127
  - lib/spire/error.rb
109
128
  - lib/spire/http.rb
110
129
  - lib/spire/public.rb
130
+ - lib/spire/resource/buffer.rb
111
131
  - lib/spire/resource/mime.rb
112
132
  - lib/spire/router.rb
113
133
  - spire.gemspec
@@ -126,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
146
  version: '0'
127
147
  segments:
128
148
  - 0
129
- hash: 2756815043673532844
149
+ hash: -782353004668183630
130
150
  required_rubygems_version: !ruby/object:Gem::Requirement
131
151
  none: false
132
152
  requirements:
@@ -135,7 +155,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
155
  version: '0'
136
156
  requirements: []
137
157
  rubyforge_project:
138
- rubygems_version: 1.8.10
158
+ rubygems_version: 1.8.24
139
159
  signing_key:
140
160
  specification_version: 3
141
161
  summary: A light controller-only rack framework with a dash of views