synfeld 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/.bnsignore +16 -0
- data/.gitignore +2 -0
- data/Gemfile +10 -0
- data/Rakefile +69 -70
- data/example/try_me.ru +7 -3
- data/lib/synfeld.rb +2 -8
- data/lib/synfeld/base.rb +18 -18
- data/synfeld.gemspec +32 -33
- metadata +74 -88
- data/lib/synfeld_info.rb +0 -51
- data/tasks/ann.rake +0 -80
- data/tasks/bones.rake +0 -20
- data/tasks/gem.rake +0 -201
- data/tasks/git.rake +0 -40
- data/tasks/notes.rake +0 -27
- data/tasks/post_load.rake +0 -34
- data/tasks/rdoc.rake +0 -51
- data/tasks/rubyforge.rake +0 -55
- data/tasks/setup.rb +0 -292
- data/tasks/spec.rake +0 -54
- data/tasks/svn.rake +0 -47
- data/tasks/test.rake +0 -40
- data/tasks/zentest.rake +0 -36
data/.bnsignore
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# The list of files that should be ignored by Mr Bones.
|
2
|
+
# Lines that start with '#' are comments.
|
3
|
+
#
|
4
|
+
# A .gitignore file can be used instead by setting it as the ignore
|
5
|
+
# file in your Rakefile:
|
6
|
+
#
|
7
|
+
# PROJ.ignore_file = '.gitignore'
|
8
|
+
#
|
9
|
+
# For a project with a C extension, the following would be a good set of
|
10
|
+
# exclude patterns (uncomment them if you want to use them):
|
11
|
+
# *.[oa]
|
12
|
+
# *~
|
13
|
+
announcement.txt
|
14
|
+
coverage
|
15
|
+
doc
|
16
|
+
pkg
|
data/.gitignore
CHANGED
data/Gemfile
ADDED
data/Rakefile
CHANGED
@@ -1,74 +1,73 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
# are where the options are used.
|
4
|
-
|
5
|
-
begin
|
6
|
-
require 'bones'
|
7
|
-
Bones.setup
|
8
|
-
rescue LoadError
|
9
|
-
begin
|
10
|
-
load 'tasks/setup.rb'
|
11
|
-
rescue LoadError
|
12
|
-
raise RuntimeError, '### please install the "bones" gem ###'
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
ensure_in_path 'lib'
|
17
|
-
require 'synfeld_info'
|
18
|
-
|
19
|
-
task :default => 'spec:run'
|
20
|
-
|
21
|
-
PROJ.name = 'synfeld'
|
22
|
-
PROJ.authors = 'Steven Swerling'
|
23
|
-
PROJ.email = 'sswerling@yahoo.com'
|
24
|
-
PROJ.url = 'http://tab-a.slot-z.net'
|
25
|
-
PROJ.version = Synfeld::VERSION
|
26
|
-
PROJ.rubyforge.name = 'synfeld'
|
27
|
-
PROJ.gem.dependencies = ['rack', 'rack-router']
|
28
|
-
PROJ.rdoc.opts = ["--inline-source"]
|
29
|
-
PROJ.rdoc.exclude = ["^tasks/setup\.rb$", "lib/synfeld_info.rb"]
|
30
|
-
|
31
|
-
PROJ.spec.opts << '--color'
|
1
|
+
require "bundler/setup"
|
2
|
+
require "bundler/gem_tasks"
|
32
3
|
|
4
|
+
# Note: bundler provides 'rake build' to build the gem.
|
33
5
|
|
6
|
+
desc "Generate RDoc documentation"
|
7
|
+
task :rdoc do
|
8
|
+
sh(*%w{rbenv exec rdoc --line-numbers --main README.rdoc
|
9
|
+
--title 'Supermodel-moto' --charset utf-8 -U -o doc} +
|
10
|
+
%w{README.rdoc} +
|
11
|
+
Dir["lib/**/*.rb"])
|
12
|
+
end
|
34
13
|
|
35
|
-
require 'fileutils'
|
36
|
-
def this_dir; File.join(File.dirname(__FILE__)); end
|
37
|
-
def doc_dir; File.join(this_dir, 'rdoc'); end
|
38
|
-
def tab_a_doc_dir; File.join(this_dir, '../tab-a/public/synfeld/rdoc'); end
|
39
14
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
15
|
+
#ensure_in_path 'lib'
|
16
|
+
#require 'synfeld_info'
|
17
|
+
#
|
18
|
+
#task :default => 'spec:run'
|
19
|
+
#
|
20
|
+
#PROJ.name = 'synfeld'
|
21
|
+
#PROJ.authors = 'Steven Swerling'
|
22
|
+
#PROJ.email = 'sswerling@yahoo.com'
|
23
|
+
#PROJ.url = 'http://tab-a.slot-z.net'
|
24
|
+
#PROJ.version = Synfeld::VERSION
|
25
|
+
#PROJ.rubyforge.name = 'synfeld'
|
26
|
+
#PROJ.gem.dependencies = ['rack', 'rack-router']
|
27
|
+
#PROJ.rdoc.opts = ["--inline-source"]
|
28
|
+
#PROJ.rdoc.exclude = ["^tasks/setup\.rb$", "lib/synfeld_info.rb"]
|
29
|
+
#
|
30
|
+
#PROJ.spec.opts << '--color'
|
31
|
+
#
|
32
|
+
#
|
33
|
+
#
|
34
|
+
#require 'fileutils'
|
35
|
+
#def this_dir; File.join(File.dirname(__FILE__)); end
|
36
|
+
#def doc_dir; File.join(this_dir, 'rdoc'); end
|
37
|
+
#def tab_a_doc_dir; File.join(this_dir, '../tab-a/public/synfeld/rdoc'); end
|
38
|
+
#
|
39
|
+
#task :default => 'spec:run'
|
40
|
+
#task :myclobber => [:clobber] do
|
41
|
+
# mydir = File.join(File.dirname(__FILE__))
|
42
|
+
# sh "rm -rf #{File.join(mydir, 'pkg')}"
|
43
|
+
# sh "rm -rf #{File.join(mydir, 'doc')}"
|
44
|
+
# sh "rm -rf #{File.join(mydir, 'rdoc')}"
|
45
|
+
# sh "rm -rf #{File.join(mydir, 'ext/*.log')}"
|
46
|
+
# sh "rm -rf #{File.join(mydir, 'ext/*.o')}"
|
47
|
+
# sh "rm -rf #{File.join(mydir, 'ext/*.so')}"
|
48
|
+
# sh "rm -rf #{File.join(mydir, 'ext/Makefile')}"
|
49
|
+
# sh "rm -rf #{File.join(mydir, 'ext/Makefile')}"
|
50
|
+
# sh "cp #{File.join(mydir, 'README.rdoc')} #{File.join(mydir, 'README.txt')}" # concession to bones
|
51
|
+
#end
|
52
|
+
#task :mypackage => [:myclobber] do
|
53
|
+
# Rake::Task['gem:package'].invoke
|
54
|
+
#end
|
55
|
+
#task :mydoc => [:myclobber] do
|
56
|
+
# FileUtils.rm_f doc_dir()
|
57
|
+
# #sh "cd #{this_dir()} && rdoc -o rdoc --inline-source --format=html -T hanna README.rdoc lib/**/*.rb"
|
58
|
+
# this_dir = File.dirname(__FILE__) + '/'
|
59
|
+
# files = []
|
60
|
+
# files += Dir[File.join(this_dir, 'lib/**/*.rb')].map{|fn| fn.gsub(this_dir,'')}
|
61
|
+
# files += Dir[File.join(this_dir, 'example/**/*.*')].map{|fn| fn.gsub(this_dir,'')}
|
62
|
+
# files += ['README.rdoc']
|
63
|
+
# files = files.reject{|fn| fn =~ /jpg/ }.sort
|
64
|
+
# sh "cd #{this_dir()} && rdoc -o rdoc --inline-source #{files.flatten.join(" ")}"
|
65
|
+
#end
|
66
|
+
#task :taba => [:mydoc] do
|
67
|
+
# this_dir = File.join(File.dirname(__FILE__))
|
68
|
+
# FileUtils.rm_rf tab_a_doc_dir
|
69
|
+
# FileUtils.cp_r doc_dir, tab_a_doc_dir
|
70
|
+
#end
|
71
|
+
#task :mygemspec => [:myclobber] do
|
72
|
+
# Rake::Task['gem:spec'].invoke
|
73
|
+
#end
|
data/example/try_me.ru
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__),'try_me.rb'))
|
2
2
|
use Rack::CommonLogger, logger = Logger.new('/tmp/synfeld.log')
|
3
3
|
#use Rack::Reloader, 0
|
4
|
-
|
5
|
-
|
4
|
+
|
5
|
+
try_me = TryMe.new(
|
6
|
+
:logger => logger,
|
7
|
+
:root_dir => File.expand_path(
|
8
|
+
File.join(File.dirname(__FILE__), 'public')))
|
9
|
+
|
6
10
|
run try_me.as_rack_app
|
data/lib/synfeld.rb
CHANGED
@@ -1,17 +1,11 @@
|
|
1
1
|
F = ::File
|
2
2
|
|
3
3
|
# base ruby requires
|
4
|
-
require 'rubygems'
|
5
4
|
require 'logger'
|
6
|
-
|
7
|
-
# gems dependencies
|
8
|
-
require 'rubygems'
|
9
|
-
|
10
5
|
require 'rack'
|
6
|
+
|
11
7
|
require 'rack/mount'
|
12
8
|
require 'rack/mime'
|
13
9
|
|
14
|
-
|
15
|
-
require F.join(File.dirname(__FILE__), 'synfeld_info')
|
16
|
-
Synfeld.require_all_libs_relative_to(__FILE__)
|
10
|
+
require_relative 'synfeld/base.rb'
|
17
11
|
|
data/lib/synfeld/base.rb
CHANGED
@@ -2,9 +2,9 @@ module Synfeld # :nodoc:
|
|
2
2
|
|
3
3
|
#
|
4
4
|
# See the synopsis section of README.rdoc for usage.
|
5
|
-
#
|
6
|
-
# See the README.rdoc for an overview of an Synfeld::App, and see the Rack::Mount project for
|
7
|
-
# more information on Rack::Mount style routing.
|
5
|
+
#
|
6
|
+
# See the README.rdoc for an overview of an Synfeld::App, and see the Rack::Mount project for
|
7
|
+
# more information on Rack::Mount style routing.
|
8
8
|
#
|
9
9
|
# Variables of note:
|
10
10
|
#
|
@@ -40,14 +40,14 @@ module Synfeld # :nodoc:
|
|
40
40
|
puts "WARNING: Synfeld not configured with a logger, using STDOUT. Won't have much to say if running as a daemon."
|
41
41
|
end
|
42
42
|
|
43
|
-
@root_dir = opts[:root_dir]
|
43
|
+
@root_dir = opts[:root_dir]
|
44
44
|
if self.root_dir.nil?
|
45
|
-
raise "You have to pass in the location of the 'root_dir', where all the files in your synfeld app are located"
|
45
|
+
raise "You have to pass in the location of the 'root_dir', where all the files in your synfeld app are located"
|
46
46
|
end
|
47
47
|
|
48
48
|
Kernel.at_exit {self.whine("Alright, I'm outta here.")}
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
#
|
52
52
|
# RACK PLUMBING
|
53
53
|
#
|
@@ -58,10 +58,10 @@ module Synfeld # :nodoc:
|
|
58
58
|
routes = Rack::Mount::RouteSet.new do |set|
|
59
59
|
@set = set
|
60
60
|
self.add_routes
|
61
|
-
add_route %r{^.*$}, :action => "render_static"
|
61
|
+
add_route %r{^.*$}, :action => "render_static"
|
62
62
|
end
|
63
63
|
return routes
|
64
|
-
end
|
64
|
+
end
|
65
65
|
|
66
66
|
# The rack #call method
|
67
67
|
def call(env)
|
@@ -108,9 +108,9 @@ module Synfeld # :nodoc:
|
|
108
108
|
|
109
109
|
def _call(env) # :nodoc:
|
110
110
|
begin
|
111
|
-
start_time = Time.now.to_f
|
111
|
+
start_time = Time.now.to_f
|
112
112
|
@env = env
|
113
|
-
@params = env[
|
113
|
+
@params = env['rack.routing_args']
|
114
114
|
@response = {
|
115
115
|
:status_code => 200,
|
116
116
|
:headers => {'Content-Type' => 'text/html'},
|
@@ -123,7 +123,7 @@ module Synfeld # :nodoc:
|
|
123
123
|
else
|
124
124
|
result = self.no_action
|
125
125
|
end
|
126
|
-
|
126
|
+
|
127
127
|
if result.is_a?(String)
|
128
128
|
response[:body] = result
|
129
129
|
else
|
@@ -149,7 +149,7 @@ module Synfeld # :nodoc:
|
|
149
149
|
# EXCEPTIONS
|
150
150
|
#
|
151
151
|
|
152
|
-
# send an error message to the log prepended by "Synfeld: "
|
152
|
+
# send an error message to the log prepended by "Synfeld: "
|
153
153
|
def whine msg
|
154
154
|
logger.error("Synfeld laments: " + msg)
|
155
155
|
return msg
|
@@ -177,7 +177,7 @@ module Synfeld # :nodoc:
|
|
177
177
|
F.read(full_path(fn))
|
178
178
|
end
|
179
179
|
|
180
|
-
# Serve up a blob of json (just sets Content-Type to 'text/javascript' and
|
180
|
+
# Serve up a blob of json (just sets Content-Type to 'text/javascript' and
|
181
181
|
# sets the body to the json passed in to this method).
|
182
182
|
def render_json(json)
|
183
183
|
self.response[:headers]['Content-Type'] = 'text/javascript'
|
@@ -214,8 +214,8 @@ module Synfeld # :nodoc:
|
|
214
214
|
template = ERB.new F.read(full_path(fn))
|
215
215
|
|
216
216
|
bind = binding
|
217
|
-
locals.each do |n,v|
|
218
|
-
raise "Locals must be symbols. Not a symbol: #{n.inspect}" unless n.is_a?(Symbol)
|
217
|
+
locals.each do |n,v|
|
218
|
+
raise "Locals must be symbols. Not a symbol: #{n.inspect}" unless n.is_a?(Symbol)
|
219
219
|
eval("#{n} = locals[:#{n}]", bind)
|
220
220
|
end
|
221
221
|
template.result(bind)
|
@@ -258,18 +258,18 @@ module Synfeld # :nodoc:
|
|
258
258
|
end
|
259
259
|
|
260
260
|
# Return fn if a file by that name exists. If not, concatenate the @root_dir with the fn, and
|
261
|
-
# return that if it exists. Raise if the actual file cannot be determined.
|
261
|
+
# return that if it exists. Raise if the actual file cannot be determined.
|
262
262
|
#
|
263
263
|
# NOTE: no effort is made to protect access to files outside of your application's root
|
264
264
|
# dir. If you permit filepaths as request parameters, then it is up to you to make sure
|
265
|
-
# that they do not point to some sensitive part of your file-system.
|
265
|
+
# that they do not point to some sensitive part of your file-system.
|
266
266
|
def full_path(fn)
|
267
267
|
if F.exist?(fn)
|
268
268
|
return fn
|
269
269
|
elsif F.exist?(full_fn = F.join(self.root_dir, fn))
|
270
270
|
return full_fn
|
271
271
|
else
|
272
|
-
raise "Could not find file '#{fn}' (full path '#{full_fn}')"
|
272
|
+
raise "Could not find file '#{fn}' (full path '#{full_fn}')"
|
273
273
|
end
|
274
274
|
end
|
275
275
|
|
data/synfeld.gemspec
CHANGED
@@ -2,49 +2,48 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{synfeld}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.5"
|
6
|
+
s.platform = Gem::Platform::RUBY
|
7
|
+
s.authors = ["Steven Swerling"]
|
8
|
+
s.email = %q{sswerling@yahoo.com}
|
9
|
+
s.homepage = %q{http://tab-a.slot-z.net}
|
10
|
+
s.summary = %q{Synfeld is a web application framework that does practically nothing}
|
6
11
|
|
7
12
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.
|
9
|
-
s.
|
10
|
-
|
13
|
+
s.date = %q{2009-09-26}
|
14
|
+
s.description = %q{
|
15
|
+
Synfeld is a web application framework that does practically nothing.
|
11
16
|
|
12
|
-
Synfeld is little more than a small wrapper for Rack::Mount (see
|
17
|
+
Synfeld is little more than a small wrapper for Rack::Mount (see
|
18
|
+
http://github.com/josh/rack-mount). If you want a web framework that is
|
19
|
+
mostly just going to serve up json blobs, and occasionally serve up some
|
20
|
+
simple content (eg. help files) and media, Synfeld makes that easy.
|
13
21
|
|
14
|
-
The sample app below shows pretty much everything there is to know about
|
22
|
+
The sample app below shows pretty much everything there is to know about
|
23
|
+
synfeld, in particular:
|
15
24
|
|
16
25
|
* How to define routes.
|
17
26
|
* Simple rendering of erb, haml, html, json, and static files.
|
18
|
-
* In the case of erb and haml, passing variables into the template is
|
19
|
-
|
20
|
-
*
|
21
|
-
|
27
|
+
* In the case of erb and haml, passing variables into the template is
|
28
|
+
demonstrated.
|
29
|
+
* A dynamic action where the status code, headers, and body are created
|
30
|
+
'manually' (/my/special/route below)
|
31
|
+
* A simple way of creating format sensitive routes (/alphabet.html vs.
|
32
|
+
/alphabet.json)
|
33
|
+
* The erb demo link also demos the rendering of a partial (not visible in the
|
34
|
+
code below, you have to look at the template file
|
35
|
+
examples/public/erb_files/erb_test.erb).
|
36
|
+
}
|
22
37
|
s.extra_rdoc_files = ["History.txt", "README.rdoc", "README.txt"]
|
23
|
-
s.files =
|
24
|
-
s.
|
38
|
+
s.files = `git ls-files`.split("\n")
|
39
|
+
#s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
40
|
+
#s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
41
|
+
#s.require_paths = ["lib"]
|
42
|
+
|
25
43
|
s.rdoc_options = ["--inline-source", "--main", "README.txt"]
|
26
44
|
s.require_paths = ["lib"]
|
27
|
-
s.rubyforge_project = %q{synfeld}
|
28
|
-
s.rubygems_version = %q{1.3.5}
|
29
|
-
s.summary = %q{Synfeld is a web application framework that does practically nothing}
|
30
45
|
s.test_files = ["test/test_synfeld.rb"]
|
31
46
|
|
32
|
-
|
33
|
-
|
34
|
-
s.specification_version = 3
|
35
|
-
|
36
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
37
|
-
s.add_runtime_dependency(%q<rack>, [">= 0"])
|
38
|
-
s.add_runtime_dependency(%q<rack-router>, [">= 0"])
|
39
|
-
s.add_development_dependency(%q<bones>, [">= 2.5.1"])
|
40
|
-
else
|
41
|
-
s.add_dependency(%q<rack>, [">= 0"])
|
42
|
-
s.add_dependency(%q<rack-router>, [">= 0"])
|
43
|
-
s.add_dependency(%q<bones>, [">= 2.5.1"])
|
44
|
-
end
|
45
|
-
else
|
46
|
-
s.add_dependency(%q<rack>, [">= 0"])
|
47
|
-
s.add_dependency(%q<rack-router>, [">= 0"])
|
48
|
-
s.add_dependency(%q<bones>, [">= 2.5.1"])
|
49
|
-
end
|
47
|
+
s.add_development_dependency "rake"
|
48
|
+
s.add_dependency 'rack' '>=0'
|
50
49
|
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: synfeld
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.5
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Steven Swerling
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: "0"
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
26
|
-
name: rack-router
|
27
|
-
type: :runtime
|
28
|
-
version_requirement:
|
29
|
-
version_requirements: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: "0"
|
34
|
-
version:
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: bones
|
12
|
+
date: 2009-09-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rake
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
37
22
|
type: :development
|
38
|
-
|
39
|
-
version_requirements: !ruby/object:Gem::Requirement
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rack>=0
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: ! "\nSynfeld is a web application framework that does practically nothing.\n\nSynfeld
|
47
|
+
is little more than a small wrapper for Rack::Mount (see\nhttp://github.com/josh/rack-mount).
|
48
|
+
\ If you want a web framework that is\nmostly just going to serve up json blobs,
|
49
|
+
and occasionally serve up some\nsimple content (eg. help files) and media, Synfeld
|
50
|
+
makes that easy.\n\nThe sample app below shows pretty much everything there is to
|
51
|
+
know about\nsynfeld, in particular:\n\n* How to define routes.\n* Simple rendering
|
52
|
+
of erb, haml, html, json, and static files.\n* In the case of erb and haml, passing
|
53
|
+
variables into the template is\ndemonstrated.\n* A dynamic action where the status
|
54
|
+
code, headers, and body are created\n'manually' (/my/special/route below)\n* A simple
|
55
|
+
way of creating format sensitive routes (/alphabet.html vs.\n/alphabet.json)\n*
|
56
|
+
The erb demo link also demos the rendering of a partial (not visible in the\ncode
|
57
|
+
below, you have to look at the template file\n examples/public/erb_files/erb_test.erb).\n"
|
58
58
|
email: sswerling@yahoo.com
|
59
59
|
executables: []
|
60
|
-
|
61
60
|
extensions: []
|
62
|
-
|
63
|
-
extra_rdoc_files:
|
61
|
+
extra_rdoc_files:
|
64
62
|
- History.txt
|
65
63
|
- README.rdoc
|
66
64
|
- README.txt
|
67
|
-
files:
|
65
|
+
files:
|
66
|
+
- .bnsignore
|
68
67
|
- .gitignore
|
68
|
+
- Gemfile
|
69
69
|
- History.txt
|
70
70
|
- README.rdoc
|
71
71
|
- README.txt
|
@@ -81,54 +81,40 @@ files:
|
|
81
81
|
- example/try_me.ru
|
82
82
|
- lib/synfeld.rb
|
83
83
|
- lib/synfeld/base.rb
|
84
|
-
- lib/synfeld_info.rb
|
85
84
|
- spec/spec_helper.rb
|
86
85
|
- spec/synfeld_spec.rb
|
87
86
|
- synfeld.gemspec
|
88
|
-
- tasks/ann.rake
|
89
|
-
- tasks/bones.rake
|
90
|
-
- tasks/gem.rake
|
91
|
-
- tasks/git.rake
|
92
|
-
- tasks/notes.rake
|
93
|
-
- tasks/post_load.rake
|
94
|
-
- tasks/rdoc.rake
|
95
|
-
- tasks/rubyforge.rake
|
96
|
-
- tasks/setup.rb
|
97
|
-
- tasks/spec.rake
|
98
|
-
- tasks/svn.rake
|
99
|
-
- tasks/test.rake
|
100
|
-
- tasks/zentest.rake
|
101
87
|
- test/test_synfeld.rb
|
102
88
|
- work/rackmount-test.ru
|
103
|
-
has_rdoc: true
|
104
89
|
homepage: http://tab-a.slot-z.net
|
105
90
|
licenses: []
|
106
|
-
|
107
91
|
post_install_message:
|
108
|
-
rdoc_options:
|
92
|
+
rdoc_options:
|
109
93
|
- --inline-source
|
110
94
|
- --main
|
111
95
|
- README.txt
|
112
|
-
require_paths:
|
96
|
+
require_paths:
|
113
97
|
- lib
|
114
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
98
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
99
|
+
none: false
|
100
|
+
requirements:
|
101
|
+
- - ! '>='
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
segments:
|
105
|
+
- 0
|
106
|
+
hash: 703765457
|
107
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
108
|
+
none: false
|
109
|
+
requirements:
|
110
|
+
- - ! '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
126
113
|
requirements: []
|
127
|
-
|
128
|
-
|
129
|
-
rubygems_version: 1.3.2
|
114
|
+
rubyforge_project:
|
115
|
+
rubygems_version: 1.8.23
|
130
116
|
signing_key:
|
131
117
|
specification_version: 3
|
132
118
|
summary: Synfeld is a web application framework that does practically nothing
|
133
|
-
test_files:
|
119
|
+
test_files:
|
134
120
|
- test/test_synfeld.rb
|