webfx 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/lib/webfx.rb +86 -87
  2. metadata +18 -26
  3. data/Manifest +0 -4
  4. data/Rakefile +0 -12
  5. data/notes +0 -11
  6. data/webfx.gemspec +0 -30
data/lib/webfx.rb CHANGED
@@ -1,116 +1,115 @@
1
1
  require 'json'
2
2
 
3
- module WebFx
4
- @@routes = {'get' => [], 'post' => [], 'put' => [], 'delete' => []}
5
- @@authenticate = false
3
+ @@routes = {'get' => [], 'post' => [], 'put' => [], 'delete' => []}
4
+ @@authenticate = false
6
5
 
7
- def handler(pattern, fn)
8
- {:regexp => Regexp.new(pattern), :fn => fn}
9
- end
6
+ def handler(pattern, fn)
7
+ {:regexp => Regexp.new(pattern), :fn => fn}
8
+ end
10
9
 
11
- def get(pattern, &fn)
12
- @@routes['get'].push(handler(pattern, fn))
13
- end
10
+ def get(pattern, &fn)
11
+ @@routes['get'].push(handler(pattern, fn))
12
+ end
14
13
 
15
- def post(pattern, &fn)
16
- @@routes['post'].push(handler(pattern, fn))
17
- end
14
+ def post(pattern, &fn)
15
+ @@routes['post'].push(handler(pattern, fn))
16
+ end
18
17
 
19
- def put(pattern, &fn)
20
- @@routes['put'].push(handler(pattern, fn))
21
- end
18
+ def put(pattern, &fn)
19
+ @@routes['put'].push(handler(pattern, fn))
20
+ end
22
21
 
23
- def delete(pattern, &fn)
24
- @@routes['delete'].push(handler(pattern, fn))
25
- end
22
+ def delete(pattern, &fn)
23
+ @@routes['delete'].push(handler(pattern, fn))
24
+ end
26
25
 
27
- def authenticate(&fn)
28
- @@authenticate = fn
29
- end
26
+ def authenticate(&fn)
27
+ @@authenticate = fn
28
+ end
30
29
 
31
- class MyResult
32
- attr_reader :env
33
-
34
- def initialize(env)
35
- @env = env
36
- end
30
+ class MyResult
31
+ attr_reader :env
32
+
33
+ def initialize(env)
34
+ @env = env
37
35
  end
36
+ end
38
37
 
39
- def run_app(env)
40
- begin
41
- request = Rack::Request.new(env)
38
+ def run_app(env)
39
+ begin
40
+ request = Rack::Request.new(env)
42
41
 
43
- def static(type, file)
44
- [200, { 'Content-Type' => type, 'Cache-Control' => 'public, max-age=86400' }, IO.read(file)]
45
- end
42
+ def static(type, file)
43
+ [200, { 'Content-Type' => type, 'Cache-Control' => 'public, max-age=86400' }, IO.read(file)]
44
+ end
46
45
 
47
- if request.path == '/'
48
- return static('text/html', 'public/index.html')
49
- end
46
+ if request.path == '/'
47
+ return static('text/html', 'public/index.html')
48
+ end
50
49
 
51
- if request.path.match(/(.*).js/)
52
- return static('text/javascript', "public/#{$1}.js")
53
- end
50
+ if request.path.match(/(.*).js/)
51
+ return static('text/javascript', "public/#{$1}.js")
52
+ end
54
53
 
55
- if request.path.match(/(.*).css/)
56
- return static('text/css', "public/#{$1}.css")
57
- end
54
+ if request.path.match(/(.*).css/)
55
+ return static('text/css', "public/#{$1}.css")
56
+ end
58
57
 
59
- if request.path.match(/(.*).jpg/)
60
- return static('image/jpg', ".#{$1}.jpg")
61
- end
58
+ if request.path.match(/(.*).jpg/)
59
+ return static('image/jpg', ".#{$1}.jpg")
60
+ end
62
61
 
63
- params = request.params
62
+ params = request.params
64
63
 
65
- if request.post?
66
- if not params['file']
67
- body = request.body.read
68
- params.merge!(JSON.parse(body)) if body != ''
69
- end
64
+ if request.post?
65
+ if not params['file']
66
+ body = request.body.read
67
+ params.merge!(JSON.parse(body)) if body != ''
70
68
  end
69
+ end
71
70
 
72
- force_method = params['_method']
73
- if force_method
74
- method = force_method
75
- params.delete('_method')
76
- else
77
- method = request.request_method
78
- end
79
- method.downcase!
71
+ force_method = params['_method']
72
+ if force_method
73
+ method = force_method
74
+ params.delete('_method')
75
+ else
76
+ method = request.request_method
77
+ end
78
+ method.downcase!
80
79
 
81
- @@routes[method].each do |item|
82
- if request.path[1..-1].match(item[:regexp])
83
- me = @@authenticate ? @@authenticate.call(params) : nil
80
+ @@routes[method].each do |item|
81
+ if request.path[1..-1].match(item[:regexp])
82
+ me = @@authenticate ? @@authenticate.call(params) : nil
84
83
 
85
- case $~.length
86
- when 1 then result = item[:fn].call(params, me)
87
- when 2 then result = item[:fn].call($1, params, me)
88
- when 3 then result = item[:fn].call($1, $2, params, me)
89
- when 4 then result = item[:fn].call($1, $2, $3, params, me)
90
- when 5 then result = item[:fn].call($1, $2, $3, $4, params, me)
91
- else result = item[:fn].call($~, params, me)
92
- end
84
+ case $~.length
85
+ when 1 then result = item[:fn].call(params, me)
86
+ when 2 then result = item[:fn].call($1, params, me)
87
+ when 3 then result = item[:fn].call($1, $2, params, me)
88
+ when 4 then result = item[:fn].call($1, $2, $3, params, me)
89
+ when 5 then result = item[:fn].call($1, $2, $3, $4, params, me)
90
+ else result = item[:fn].call($~, params, me)
91
+ end
93
92
 
94
- return result.env if result.kind_of? MyResult
93
+ return result.env if result.kind_of? MyResult
95
94
 
96
- case method
97
- when 'get', 'post'
98
- if result.kind_of? String and ['{', '['].include? result.slice(0, 1)
99
- json = result
100
- else
101
- json = result.to_json
102
- end
103
- return [200, {'Content-Type' => 'application/json'}, json]
104
- else
105
- return [200, {'Content-Type' => 'application/json'}, {:result => :success}.to_json]
106
- end
95
+ case method
96
+ when 'get', 'post'
97
+ if result.kind_of? String and ['{', '['].include? result.slice(0, 1)
98
+ json = result
99
+ else
100
+ json = result.to_json
101
+ end
102
+ return [200, {'Content-Type' => 'application/json'}, json]
103
+ else
104
+ return [200, {'Content-Type' => 'application/json'}, {:result => :success}.to_json]
107
105
  end
108
106
  end
109
- [404, {'Content-Type' => 'text/plain'}, 'Not found.']
110
-
111
- rescue => e
112
- result = {:message => e.message, :callstack => e.backtrace.join("\n")}
113
- [500, {'Content-Type' => 'text/plain' }, e.message]
114
107
  end
108
+ [404, {'Content-Type' => 'text/plain'}, 'Not found.']
109
+
110
+ rescue => e
111
+ result = {:message => e.message, :callstack => e.backtrace.join("\n")}
112
+ [500, {'Content-Type' => 'text/plain' }, e.message]
115
113
  end
116
114
  end
115
+
metadata CHANGED
@@ -1,48 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webfx
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
- authors:
13
- - Greg Clinton
12
+ authors: []
13
+
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-29 00:00:00 -08:00
18
+ date: 2010-12-30 00:00:00 -08:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
22
- description: A gem for building simple RESTful web sites
23
- email: greg.clinton@gmail.com
22
+ description:
23
+ email:
24
24
  executables: []
25
25
 
26
26
  extensions: []
27
27
 
28
- extra_rdoc_files:
29
- - lib/webfx.rb
28
+ extra_rdoc_files: []
29
+
30
30
  files:
31
- - Rakefile
32
31
  - lib/webfx.rb
33
- - notes
34
- - Manifest
35
- - webfx.gemspec
36
32
  has_rdoc: true
37
- homepage: http://github.com/gregclinton/webfx
33
+ homepage:
38
34
  licenses: []
39
35
 
40
36
  post_install_message:
41
- rdoc_options:
42
- - --line-numbers
43
- - --inline-source
44
- - --title
45
- - Webfx
37
+ rdoc_options: []
38
+
46
39
  require_paths:
47
40
  - lib
48
41
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -59,17 +52,16 @@ required_rubygems_version: !ruby/object:Gem::Requirement
59
52
  requirements:
60
53
  - - ">="
61
54
  - !ruby/object:Gem::Version
62
- hash: 11
55
+ hash: 3
63
56
  segments:
64
- - 1
65
- - 2
66
- version: "1.2"
57
+ - 0
58
+ version: "0"
67
59
  requirements: []
68
60
 
69
- rubyforge_project: webfx
61
+ rubyforge_project:
70
62
  rubygems_version: 1.3.7
71
63
  signing_key:
72
64
  specification_version: 3
73
- summary: A gem for building simple RESTful web sites
65
+ summary: a gem
74
66
  test_files: []
75
67
 
data/Manifest DELETED
@@ -1,4 +0,0 @@
1
- Rakefile
2
- lib/webfx.rb
3
- notes
4
- Manifest
data/Rakefile DELETED
@@ -1,12 +0,0 @@
1
- require 'rubygems'
2
- require 'rake'
3
- require 'echoe'
4
-
5
- Echoe.new('webfx', '0.0.3') do |p|
6
- p.description = "A gem for building simple RESTful web sites"
7
- p.url = "http://github.com/gregclinton/webfx"
8
- p.author = "Greg Clinton"
9
- p.email = "greg.clinton@gmail.com"
10
- p.ignore_pattern = []
11
- p.development_dependencies = []
12
- end
data/notes DELETED
@@ -1,11 +0,0 @@
1
- http://integrumtech.com/2010/01/how-to-build-a-ruby-gem/
2
-
3
- gem install echoe -no-ri -no-docs
4
- gem install gemcutter -no-ri -no-docs
5
-
6
- cd to webfx folder
7
-
8
- rake manifest
9
- rake build_gemspec
10
- gem build webfx.gemspec
11
- gem push webfx-0.0.3.gem
data/webfx.gemspec DELETED
@@ -1,30 +0,0 @@
1
- # -*- encoding: utf-8 -*-
2
-
3
- Gem::Specification.new do |s|
4
- s.name = %q{webfx}
5
- s.version = "0.0.3"
6
-
7
- s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
- s.authors = ["Greg Clinton"]
9
- s.date = %q{2010-12-29}
10
- s.description = %q{A gem for building simple RESTful web sites}
11
- s.email = %q{greg.clinton@gmail.com}
12
- s.extra_rdoc_files = ["lib/webfx.rb"]
13
- s.files = ["Rakefile", "lib/webfx.rb", "notes", "Manifest", "webfx.gemspec"]
14
- s.homepage = %q{http://github.com/gregclinton/webfx}
15
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Webfx"]
16
- s.require_paths = ["lib"]
17
- s.rubyforge_project = %q{webfx}
18
- s.rubygems_version = %q{1.3.7}
19
- s.summary = %q{A gem for building simple RESTful web sites}
20
-
21
- if s.respond_to? :specification_version then
22
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
- s.specification_version = 3
24
-
25
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
26
- else
27
- end
28
- else
29
- end
30
- end