spire 0.4.6 → 0.4.7

Sign up to get free protection for your applications and to get access to all the features.
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