test_sinatra_app 0.0.2
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/.gemtest +0 -0
- data/.gitignore +5 -0
- data/Gemfile +4 -0
- data/README.md +45 -0
- data/Rakefile +10 -0
- data/bin/test_sinatra_app +9 -0
- data/config/warble.rb +136 -0
- data/config.ru +5 -0
- data/lib/test_sinatra_app/app.rb +52 -0
- data/lib/test_sinatra_app/version.rb +3 -0
- data/lib/test_sinatra_app.rb +29 -0
- data/spec/rack_spec.rb +31 -0
- data/spec/spec_helper.rb +15 -0
- data/test_sinatra_app.gemspec +34 -0
- data/views/index.erb +0 -0
- metadata +165 -0
data/.gemtest
ADDED
File without changes
|
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
# Test Sinatra App
|
2
|
+
The purpose of this repo is to have, what I would consider, a standard standalone sinatra application that someone might want to package.
|
3
|
+
|
4
|
+
The goal is to have it work in the following configurations:
|
5
|
+
|
6
|
+
* With and without bundler
|
7
|
+
* With and without rvm
|
8
|
+
* MRI installable gem
|
9
|
+
* JRuby installable gem
|
10
|
+
* Standalone application via bin script
|
11
|
+
* rackable application via config.ru
|
12
|
+
* Warble-packaged deployable warfile (both jetty and tomcat)
|
13
|
+
* Warble standalone winstone warfile
|
14
|
+
* SSL works with JRuby
|
15
|
+
|
16
|
+
Additionally, it needs to be flexible in accepting a single configuration option: `sky_color`.
|
17
|
+
|
18
|
+
## So what works?
|
19
|
+
|
20
|
+
* MRI and Jruby specific gem packages
|
21
|
+
* Standalone bin execution with and without the custom option (MRI and Jruby)
|
22
|
+
* Rackup with and without custom option (in config.ru) in MRI and Jruby (both rvm and downloaded)
|
23
|
+
|
24
|
+
## What's not working?
|
25
|
+
Warbler. I'm just not having any luck no matter what options I try. I've attempted to make the war:
|
26
|
+
|
27
|
+
* With/without gemjar
|
28
|
+
* With/without executable
|
29
|
+
* With/without using bundler in warble.rb
|
30
|
+
* With/without requiring `rubygems` in the config.ru
|
31
|
+
|
32
|
+
I've seen every error under the sun in attempting to follow this same application style across three different codebases now:
|
33
|
+
|
34
|
+
* Winstone goes into infinite redirect
|
35
|
+
* LoadErrors on random gems
|
36
|
+
* Jetty 6 works but Jetty 7 doesn't. Or Tomcat works but no Jetty's work
|
37
|
+
* jruby-openssl/bouncy castle errors
|
38
|
+
|
39
|
+
# How to help
|
40
|
+
Fork it and fix it. Use it as a test case. Let me know if I'm just expecting to be able to do too much from a single codebase. Show me where I'm screwing up.
|
41
|
+
|
42
|
+
# Why?
|
43
|
+
I work in a cross-vm world. At my day job, we're primarily a java shop. I use Ruby (and especially sinatra) for various glue applications and it's much easier to be able to package and deploy those to a container. The developers need to have those applications available locally for testing, so a winstone self-executing war is a godsend (when it works).
|
44
|
+
|
45
|
+
In my personal projects (like Noah), I want to reach the biggest possible audience. I want to make it as easy as possible for someone to try out the application. That means supporting all of the use cases above.
|
data/Rakefile
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
3
|
+
require 'rubygems'
|
4
|
+
require 'test_sinatra_app'
|
5
|
+
require 'vegas'
|
6
|
+
|
7
|
+
Vegas::Runner.new(TestSinatraApp::Service, 'test_sinatra_app') do |runner, opts, app|
|
8
|
+
opts.on("-m", "--sky-color color", "value for sky color") {|sky| app.set :sky_color, sky.to_sym}
|
9
|
+
end
|
data/config/warble.rb
ADDED
@@ -0,0 +1,136 @@
|
|
1
|
+
# Disable automatic framework detection by uncommenting/setting to false
|
2
|
+
# Warbler.framework_detection = false
|
3
|
+
|
4
|
+
# Warbler web application assembly configuration file
|
5
|
+
Warbler::Config.new do |config|
|
6
|
+
# Features: additional options controlling how the jar is built.
|
7
|
+
# Currently the following features are supported:
|
8
|
+
# - gemjar: package the gem repository in a jar file in WEB-INF/lib
|
9
|
+
# config.features = %w(gemjar)
|
10
|
+
|
11
|
+
# Application directories to be included in the webapp.
|
12
|
+
config.dirs = %w(config lib views)
|
13
|
+
|
14
|
+
# Additional files/directories to include, above those in config.dirs
|
15
|
+
config.includes = FileList["config.ru"]
|
16
|
+
|
17
|
+
# Additional files/directories to exclude
|
18
|
+
# config.excludes = FileList["lib/tasks/*"]
|
19
|
+
|
20
|
+
# Additional Java .jar files to include. Note that if .jar files are placed
|
21
|
+
# in lib (and not otherwise excluded) then they need not be mentioned here.
|
22
|
+
# JRuby and JRuby-Rack are pre-loaded in this list. Be sure to include your
|
23
|
+
# own versions if you directly set the value
|
24
|
+
# config.java_libs += FileList["lib/java/*.jar"]
|
25
|
+
|
26
|
+
# Loose Java classes and miscellaneous files to be placed in WEB-INF/classes.
|
27
|
+
# config.java_classes = FileList["target/classes/**.*"]
|
28
|
+
|
29
|
+
# One or more pathmaps defining how the java classes should be copied into
|
30
|
+
# WEB-INF/classes. The example pathmap below accompanies the java_classes
|
31
|
+
# configuration above. See http://rake.rubyforge.org/classes/String.html#M000017
|
32
|
+
# for details of how to specify a pathmap.
|
33
|
+
# config.pathmaps.java_classes << "%{target/classes/,}p"
|
34
|
+
|
35
|
+
# Path to the pre-bundled gem directory inside the war file. Default
|
36
|
+
# is 'WEB-INF/gems'. Specify path if gems are already bundled
|
37
|
+
# before running Warbler. This also sets 'gem.path' inside web.xml.
|
38
|
+
# config.gem_path = "WEB-INF/vendor/bundler_gems"
|
39
|
+
|
40
|
+
# Bundler support is built-in. If Warbler finds a Gemfile in the
|
41
|
+
# project directory, it will be used to collect the gems to bundle
|
42
|
+
# in your application. If you wish to explicitly disable this
|
43
|
+
# functionality, uncomment here.
|
44
|
+
config.bundler = false
|
45
|
+
|
46
|
+
# An array of Bundler groups to avoid including in the war file.
|
47
|
+
# Defaults to ["development", "test"].
|
48
|
+
# config.bundle_without = []
|
49
|
+
|
50
|
+
# Files for WEB-INF directory (next to web.xml). This contains
|
51
|
+
# web.xml by default. If there is an .erb-File it will be processed
|
52
|
+
# with webxml-config. You may want to exclude this file via
|
53
|
+
# config.excludes.
|
54
|
+
# config.webinf_files += FileList["jboss-web.xml"]
|
55
|
+
|
56
|
+
# Other gems to be included. You need to tell Warbler which gems
|
57
|
+
# your application needs so that they can be packaged in the war
|
58
|
+
# file.
|
59
|
+
# The Rails gems are included by default unless the vendor/rails
|
60
|
+
# directory is present.
|
61
|
+
config.gems += ["jruby-openssl", "test_sinatra_app", "sinatra"]
|
62
|
+
# config.gems += ["activerecord-jdbcmysql-adapter", "jruby-openssl"]
|
63
|
+
# config.gems << "tzinfo"
|
64
|
+
|
65
|
+
# Uncomment this if you don't want to package rails gem.
|
66
|
+
# config.gems -= ["rails"]
|
67
|
+
|
68
|
+
# The most recent versions of gems are used.
|
69
|
+
# You can specify versions of gems by using a hash assignment:
|
70
|
+
# config.gems["rails"] = "2.0.2"
|
71
|
+
|
72
|
+
# You can also use regexps or Gem::Dependency objects for flexibility or
|
73
|
+
# fine-grained control.
|
74
|
+
# config.gems << /^merb-/
|
75
|
+
# config.gems << Gem::Dependency.new("merb-core", "= 0.9.3")
|
76
|
+
|
77
|
+
# Include gem dependencies not mentioned specifically. Default is
|
78
|
+
# true, uncomment to turn off.
|
79
|
+
# config.gem_dependencies = false
|
80
|
+
|
81
|
+
# Array of regular expressions matching relative paths in gems to be
|
82
|
+
# excluded from the war. Defaults to empty, but you can set it like
|
83
|
+
# below, which excludes test files.
|
84
|
+
# config.gem_excludes = [/^(test|spec)\//]
|
85
|
+
|
86
|
+
# Files to be included in the root of the webapp. Note that files in public
|
87
|
+
# will have the leading 'public/' part of the path stripped during staging.
|
88
|
+
# config.public_html = FileList["public/**/*", "doc/**/*"]
|
89
|
+
|
90
|
+
# Pathmaps for controlling how public HTML files are copied into the .war
|
91
|
+
# config.pathmaps.public_html = ["%{public/,}p"]
|
92
|
+
|
93
|
+
# Pathmaps for controlling how application files are copied into the .war
|
94
|
+
# config.pathmaps.application = ["WEB-INF/%p"]
|
95
|
+
|
96
|
+
# Name of the war file (without the .war) -- defaults to the basename
|
97
|
+
# of RAILS_ROOT
|
98
|
+
# config.war_name = "mywar"
|
99
|
+
|
100
|
+
# Name of the MANIFEST.MF template for the war file. Defaults to a simple
|
101
|
+
# MANIFEST.MF that contains the version of Warbler used to create the war file.
|
102
|
+
# config.manifest_file = "config/MANIFEST.MF"
|
103
|
+
|
104
|
+
# When using the 'compiled' feature and specified, only these Ruby
|
105
|
+
# files will be compiled. Default is to compile all \.rb files in
|
106
|
+
# the application.
|
107
|
+
# config.compiled_ruby_files = FileList['app/**/*.rb']
|
108
|
+
|
109
|
+
# Value of RAILS_ENV for the webapp -- default as shown below
|
110
|
+
# config.webxml.rails.env = ENV['RAILS_ENV'] || 'production'
|
111
|
+
|
112
|
+
# Application booter to use, one of :rack, :rails, or :merb (autodetected by default)
|
113
|
+
config.webxml.booter = :rack
|
114
|
+
|
115
|
+
# When using the :rack booter, "Rackup" script to use.
|
116
|
+
# - For 'rackup.path', the value points to the location of the rackup
|
117
|
+
# script in the web archive file. You need to make sure this file
|
118
|
+
# gets included in the war, possibly by adding it to config.includes
|
119
|
+
# or config.webinf_files above.
|
120
|
+
# - For 'rackup', the rackup script you provide as an inline string
|
121
|
+
# is simply embedded in web.xml.
|
122
|
+
# The script is evaluated in a Rack::Builder to load the application.
|
123
|
+
# Examples:
|
124
|
+
# config.webxml.rackup.path = 'WEB-INF/hello.ru'
|
125
|
+
# config.webxml.rackup = %{require './lib/demo'; run Rack::Adapter::Camping.new(Demo)}
|
126
|
+
# config.webxml.rackup = require 'cgi' && CGI::escapeHTML(File.read("config.ru"))
|
127
|
+
|
128
|
+
# Control the pool of Rails runtimes. Leaving unspecified means
|
129
|
+
# the pool will grow as needed to service requests. It is recommended
|
130
|
+
# that you fix these values when running a production server!
|
131
|
+
# config.webxml.jruby.min.runtimes = 2
|
132
|
+
# config.webxml.jruby.max.runtimes = 4
|
133
|
+
|
134
|
+
# JNDI data source name
|
135
|
+
# config.webxml.jndi = 'jdbc/rails'
|
136
|
+
end
|
data/config.ru
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'sinatra/base'
|
2
|
+
require 'openssl'
|
3
|
+
require 'net/https'
|
4
|
+
require 'uri'
|
5
|
+
|
6
|
+
module TestSinatraApp
|
7
|
+
class Service < Sinatra::Base
|
8
|
+
|
9
|
+
configure do
|
10
|
+
set :app_file, __FILE__
|
11
|
+
set :views, File.expand_path(File.join(File.dirname(__FILE__), "..","..","views"))
|
12
|
+
set :server, %w[thin mongrel webrick]
|
13
|
+
set :logging, true
|
14
|
+
set :raise_errors, false
|
15
|
+
set :show_exceptions, true
|
16
|
+
set :run, false
|
17
|
+
set :sky_color, ENV['SKY_COLOR'] || :blue
|
18
|
+
end
|
19
|
+
|
20
|
+
before do
|
21
|
+
content_type "text/plain"
|
22
|
+
end
|
23
|
+
|
24
|
+
get "/" do
|
25
|
+
"#{settings.sky_color}"
|
26
|
+
end
|
27
|
+
|
28
|
+
get "/ssltest/?" do
|
29
|
+
uri = URI.parse("https://gist.github.com/raw/833757/d21b2b095c459e62518f10eefa4654b589bfae80/test-gist.txt")
|
30
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
31
|
+
http.use_ssl = true
|
32
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
33
|
+
request = Net::HTTP::Get.new(uri.request_uri)
|
34
|
+
|
35
|
+
response = http.request(request)
|
36
|
+
"#{response.body}"
|
37
|
+
end
|
38
|
+
|
39
|
+
get "/pemtest/?" do
|
40
|
+
cert = OpenSSL::X509::Certificate.new(TestSinatraApp::PEMFILE)
|
41
|
+
out=<<-EOL
|
42
|
+
Issuer: #{cert.issuer.to_s}
|
43
|
+
Version: #{cert.version.to_s}
|
44
|
+
Not Before: #{cert.not_before.to_s}
|
45
|
+
Not After: #{cert.not_after.to_s}
|
46
|
+
Subject: #{cert.subject.to_s}
|
47
|
+
Algorithm: #{cert.signature_algorithm}
|
48
|
+
EOL
|
49
|
+
"#{out}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), 'test_sinatra_app','version')
|
2
|
+
require File.join(File.dirname(__FILE__), 'test_sinatra_app','app')
|
3
|
+
module TestSinatraApp
|
4
|
+
PEMFILE=<<EOC
|
5
|
+
-----BEGIN CERTIFICATE-----
|
6
|
+
MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
|
7
|
+
HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
|
8
|
+
IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
|
9
|
+
aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAwMFoXDTM3MTEyMDE1
|
10
|
+
MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
|
11
|
+
SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
|
12
|
+
IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw
|
13
|
+
DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U
|
14
|
+
0pPlLYnKhHw/EEMbjIt8hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItI
|
15
|
+
TuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAf
|
16
|
+
RC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqF
|
17
|
+
zQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqh
|
18
|
+
BC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEA
|
19
|
+
AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jY
|
20
|
+
PXy+XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/
|
21
|
+
BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn
|
22
|
+
9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7CegCgTXT
|
23
|
+
Ct8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77BfWgDrvq2g+EQF
|
24
|
+
Z7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX
|
25
|
+
n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoW
|
26
|
+
H1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S
|
27
|
+
-----END CERTIFICATE-----
|
28
|
+
EOC
|
29
|
+
end
|
data/spec/rack_spec.rb
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "Requesting" do
|
4
|
+
describe "/" do
|
5
|
+
it "should display 'blue'" do
|
6
|
+
get "/"
|
7
|
+
last_response.should be_ok
|
8
|
+
r = last_response.body
|
9
|
+
r.should == "blue"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "/ssltest" do
|
14
|
+
it "should work" do
|
15
|
+
get "/ssltest"
|
16
|
+
last_response.should be_ok
|
17
|
+
r = last_response.body
|
18
|
+
r.should == "If you can read this, SSL works!"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
describe "/pemtest" do
|
23
|
+
it "should work" do
|
24
|
+
get "/pemtest"
|
25
|
+
last_response.should be_ok
|
26
|
+
r = last_response.body
|
27
|
+
r.should =~ /sha1WithRSAEncryption/
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'test_sinatra_app')
|
2
|
+
require File.join(File.dirname(__FILE__), '..', 'lib', 'test_sinatra_app', 'app')
|
3
|
+
|
4
|
+
require 'rspec'
|
5
|
+
require 'rack/test'
|
6
|
+
|
7
|
+
RSpec.configure do |config|
|
8
|
+
config.color_enabled = true
|
9
|
+
config.formatter = "documentation"
|
10
|
+
config.include Rack::Test::Methods
|
11
|
+
end
|
12
|
+
|
13
|
+
def app
|
14
|
+
TestSinatraApp::Service
|
15
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "test_sinatra_app/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "test_sinatra_app"
|
7
|
+
s.version = TestSinatraApp::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["John E. Vincent"]
|
10
|
+
s.email = ["lusis.org+github.com@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/lusis/test_sinatra_app"
|
12
|
+
s.summary = %q{Test Sinatra App}
|
13
|
+
s.description = %q{A Sinatra test application for validating various combinations of packaging and vm platforms}
|
14
|
+
|
15
|
+
s.rubyforge_project = "test_sinatra_app"
|
16
|
+
|
17
|
+
s.files = `git ls-files`.split("\n")
|
18
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
19
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
|
+
s.require_paths = ["lib"]
|
21
|
+
|
22
|
+
s.add_dependency("sinatra")
|
23
|
+
s.add_dependency("json")
|
24
|
+
s.add_dependency("vegas")
|
25
|
+
|
26
|
+
if RUBY_PLATFORM == "java"
|
27
|
+
s.add_dependency("jruby-openssl")
|
28
|
+
s.add_development_dependency("warbler")
|
29
|
+
else
|
30
|
+
s.add_dependency("thin")
|
31
|
+
end
|
32
|
+
s.add_development_dependency("rack-test")
|
33
|
+
s.add_development_dependency("rspec")
|
34
|
+
end
|
data/views/index.erb
ADDED
File without changes
|
metadata
ADDED
@@ -0,0 +1,165 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: test_sinatra_app
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 2
|
10
|
+
version: 0.0.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- John E. Vincent
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-18 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: sinatra
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 3
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
version: "0"
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: json
|
37
|
+
prerelease: false
|
38
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
hash: 3
|
44
|
+
segments:
|
45
|
+
- 0
|
46
|
+
version: "0"
|
47
|
+
type: :runtime
|
48
|
+
version_requirements: *id002
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: vegas
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
hash: 3
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
type: :runtime
|
62
|
+
version_requirements: *id003
|
63
|
+
- !ruby/object:Gem::Dependency
|
64
|
+
name: thin
|
65
|
+
prerelease: false
|
66
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
68
|
+
requirements:
|
69
|
+
- - ">="
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
72
|
+
segments:
|
73
|
+
- 0
|
74
|
+
version: "0"
|
75
|
+
type: :runtime
|
76
|
+
version_requirements: *id004
|
77
|
+
- !ruby/object:Gem::Dependency
|
78
|
+
name: rack-test
|
79
|
+
prerelease: false
|
80
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ">="
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
hash: 3
|
86
|
+
segments:
|
87
|
+
- 0
|
88
|
+
version: "0"
|
89
|
+
type: :development
|
90
|
+
version_requirements: *id005
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: rspec
|
93
|
+
prerelease: false
|
94
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
95
|
+
none: false
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
hash: 3
|
100
|
+
segments:
|
101
|
+
- 0
|
102
|
+
version: "0"
|
103
|
+
type: :development
|
104
|
+
version_requirements: *id006
|
105
|
+
description: A Sinatra test application for validating various combinations of packaging and vm platforms
|
106
|
+
email:
|
107
|
+
- lusis.org+github.com@gmail.com
|
108
|
+
executables:
|
109
|
+
- test_sinatra_app
|
110
|
+
extensions: []
|
111
|
+
|
112
|
+
extra_rdoc_files: []
|
113
|
+
|
114
|
+
files:
|
115
|
+
- .gemtest
|
116
|
+
- .gitignore
|
117
|
+
- Gemfile
|
118
|
+
- README.md
|
119
|
+
- Rakefile
|
120
|
+
- bin/test_sinatra_app
|
121
|
+
- config.ru
|
122
|
+
- config/warble.rb
|
123
|
+
- lib/test_sinatra_app.rb
|
124
|
+
- lib/test_sinatra_app/app.rb
|
125
|
+
- lib/test_sinatra_app/version.rb
|
126
|
+
- spec/rack_spec.rb
|
127
|
+
- spec/spec_helper.rb
|
128
|
+
- test_sinatra_app.gemspec
|
129
|
+
- views/index.erb
|
130
|
+
has_rdoc: true
|
131
|
+
homepage: https://github.com/lusis/test_sinatra_app
|
132
|
+
licenses: []
|
133
|
+
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
|
137
|
+
require_paths:
|
138
|
+
- lib
|
139
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 3
|
145
|
+
segments:
|
146
|
+
- 0
|
147
|
+
version: "0"
|
148
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
|
+
none: false
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
hash: 3
|
154
|
+
segments:
|
155
|
+
- 0
|
156
|
+
version: "0"
|
157
|
+
requirements: []
|
158
|
+
|
159
|
+
rubyforge_project: test_sinatra_app
|
160
|
+
rubygems_version: 1.4.1
|
161
|
+
signing_key:
|
162
|
+
specification_version: 3
|
163
|
+
summary: Test Sinatra App
|
164
|
+
test_files: []
|
165
|
+
|