serve 1.5.0.pre2 → 1.5.0.pre3
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/CHANGELOG.rdoc +6 -0
- data/README.rdoc +30 -38
- data/VERSION +1 -1
- data/lib/serve/export.rb +3 -2
- data/lib/serve/handlers/redirect_handler.rb +2 -1
- data/lib/serve/project.rb +7 -8
- data/lib/serve/templates/README.markdown +55 -14
- data/lib/serve/templates/application.scss +18 -0
- data/lib/serve/templates/compass.config +1 -1
- data/lib/serve/templates/config.ru +1 -1
- data/lib/serve/templates/index.redirect +14 -0
- data/lib/serve/templates/view_helpers.rb +29 -0
- data/lib/serve/view_helpers.rb +5 -4
- data/spec/application_spec.rb +4 -1
- data/spec/project_spec.rb +4 -5
- metadata +5 -6
- data/lib/serve/templates/LICENSE +0 -20
- data/lib/serve/templates/application.sass +0 -12
data/CHANGELOG.rdoc
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
= Change Log
|
2
2
|
|
3
3
|
== edge
|
4
|
+
* Make Textile partials work. Closes #29. [rmetzler, jlong]
|
5
|
+
* Fixed problem with export that caused filenames with underscore to be excluded. [bmaland]
|
6
|
+
* Updated generated config.ru to require Sass. Closes #20. [jlong]
|
7
|
+
* Updated project README and other files to be more friendly to new users [jlong]
|
8
|
+
* Changed Sass directory name to "stylesheets" to be more consistent with Rails. [jlong]
|
9
|
+
* Modified redirects so that only the last line is interpreted as the URL, everything else is ignored. This is useful for adding a comment at the beginning of the file. [jlong]
|
4
10
|
* Modified params helper to work with POST params in addition to GET. Closes #19. [jlong]
|
5
11
|
* Added an export command which allows you to convert a Serve site to static HTML. Closes #10. [jlong]
|
6
12
|
|
data/README.rdoc
CHANGED
@@ -1,40 +1,27 @@
|
|
1
1
|
= Serve - A Rapid Prototyping Framework for Web Applications
|
2
2
|
|
3
|
-
link
|
3
|
+
link:../../downloads/jlong/serve/logo-hifi-1.png
|
4
4
|
|
5
5
|
Serve is a small Rack-based web server that makes it easy to serve HTML, ERB,
|
6
|
-
Haml, or
|
6
|
+
Haml, or a variety of template languages from any directory.
|
7
7
|
|
8
8
|
But Serve is much more than a simple web server.
|
9
9
|
|
10
|
-
Serve
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
10
|
+
Serve is meant to be a lightweight version of the Views part of the Rails MVC.
|
11
|
+
This makes Serve an ideal framework for prototyping Rails applications or
|
12
|
+
creating simple websites. Serve also has full support for Rails-style partials
|
13
|
+
and layouts.
|
14
|
+
|
15
|
+
If you use a "Design First" approach to Web application development, you may
|
16
|
+
find Serve especially useful. Create a separate "prototype" project for your
|
17
|
+
application (using Serve) and copy views over into actual application when
|
18
|
+
they are ready to go. This workflow can allow the designer to focus on
|
19
|
+
presentation and flow, while the developer can focus on implementation. One
|
20
|
+
benefit to this approach is that the designer can identify and fix a large
|
20
21
|
number of problems before a feature is ever touched by the developer. Once a
|
21
22
|
feature has been completed in the prototype project it can also be estimated
|
22
23
|
with a high degree of accuracy.
|
23
24
|
|
24
|
-
A Serve prototype can work much like the finished application and be virtually
|
25
|
-
indistinguishable. The only difference being that state is not saved as a user
|
26
|
-
clicks around.
|
27
|
-
|
28
|
-
Serve can be used alongside any Web development framework, but Rails
|
29
|
-
developers will find it especially familiar. One way of thinking about Serve
|
30
|
-
is that it is essentially a Rails application with only one part of the Rails
|
31
|
-
MVC stack -- the views. Serve basically allows you to have a separate project
|
32
|
-
just for designing the views for the application. When views are ready, they
|
33
|
-
can be copied over from the prototype to the application almost as is. This
|
34
|
-
process is eased since Serve has full support for partials and layouts with
|
35
|
-
either ERB or Haml. Serve can also handle SASS, Slim, Textile, and Markdown
|
36
|
-
if the appropriate libraries are installed.
|
37
|
-
|
38
25
|
|
39
26
|
== Installation
|
40
27
|
|
@@ -47,7 +34,7 @@ Some systems, like the Mac, may require that you type:
|
|
47
34
|
|
48
35
|
sudo gem install serve
|
49
36
|
|
50
|
-
If you are
|
37
|
+
If you are new to the command prompt and are a Mac user see:
|
51
38
|
|
52
39
|
http://wiseheartdesign.com/articles/2010/11/12/the-designers-guide-to-the-osx-command-prompt/
|
53
40
|
|
@@ -122,9 +109,9 @@ This will create a new project with the following directory structure:
|
|
122
109
|
| |
|
123
110
|
| `-- javascripts/
|
124
111
|
|
|
125
|
-
+--
|
112
|
+
+-- stylesheets/ # Sass and SCSS source files
|
126
113
|
| |
|
127
|
-
| `-- application.
|
114
|
+
| `-- application.scss # Example SCSS file for application
|
128
115
|
|
|
129
116
|
+-- tmp/ # Needed for Passenger (mod_passenger)
|
130
117
|
| |
|
@@ -136,6 +123,8 @@ This will create a new project with the following directory structure:
|
|
136
123
|
|
|
137
124
|
+-- hello.html.erb # Example view
|
138
125
|
|
|
126
|
+
+-- index.redirect # Example redirect
|
127
|
+
|
|
139
128
|
`-- view_helpers.rb # Example view helpers
|
140
129
|
|
141
130
|
If you would like to generate the project with a specific JavaScript framework
|
@@ -282,7 +271,7 @@ slim :: Evaluates the document using the Slim template language (requires the Sl
|
|
282
271
|
sass :: Evaluates the document as Sass (requires the Haml gem)
|
283
272
|
scss :: Evaluates the document as SCSS (requires the Haml gem)
|
284
273
|
email :: Evaluates the document as if it is an e-mail message; the format is identical to a plain/text e-mail message's source
|
285
|
-
redirect :: Redirects to the URL contained
|
274
|
+
redirect :: Redirects to the URL contained on the last line of the file
|
286
275
|
|
287
276
|
|
288
277
|
== Exporting a Serve Project
|
@@ -294,26 +283,29 @@ project to HTML. To get started with the prerelease version:
|
|
294
283
|
|
295
284
|
To export your project, use the new "export" command:
|
296
285
|
|
297
|
-
serve export
|
286
|
+
serve export project:output
|
298
287
|
|
299
|
-
Where
|
300
|
-
|
288
|
+
Where "project" is the path to the project and "output" is the path to the
|
289
|
+
directory where you would like your HTML and CSS generated.
|
301
290
|
|
302
291
|
Please note! This feature is in beta. If you have issues with this approach,
|
303
292
|
please post them to the GitHub issue tracker.
|
304
293
|
|
305
294
|
|
295
|
+
== Mailing List
|
296
|
+
|
297
|
+
Have questions? Please don't be ashamed to ask. Post them on the mailing list:
|
298
|
+
|
299
|
+
http://groups.google.com/group/serve-users
|
300
|
+
|
301
|
+
|
306
302
|
== More Information
|
307
303
|
|
308
|
-
You can find more information about Serve, including a detailed
|
304
|
+
You can find more information about Serve, including a detailed screencast, on
|
309
305
|
the GitHub wiki:
|
310
306
|
|
311
307
|
http://wiki.github.com/jlong/serve
|
312
308
|
|
313
|
-
Have questions? Feel free to ask them on the mailing list:
|
314
|
-
|
315
|
-
http://groups.google.com/group/serve-users
|
316
|
-
|
317
309
|
|
318
310
|
== License
|
319
311
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.0.
|
1
|
+
1.5.0.pre3
|
data/lib/serve/export.rb
CHANGED
@@ -41,7 +41,7 @@ module Serve
|
|
41
41
|
files.reject! { |fn| fn =~ /view_helpers.rb$/} # remove view_helpers.rb
|
42
42
|
@redirects, @public = files.partition { |fn| fn =~ %r{\.redirect$} }
|
43
43
|
end
|
44
|
-
@views.reject! { |v| v =~
|
44
|
+
@views.reject! { |v| v =~ /(^_|\/_)/ } # remove partials
|
45
45
|
end
|
46
46
|
|
47
47
|
def compile_compass_sass
|
@@ -100,7 +100,8 @@ module Serve
|
|
100
100
|
|
101
101
|
ensure_path to_path
|
102
102
|
|
103
|
-
|
103
|
+
lines = IO.read(from_path).strip.split("\n")
|
104
|
+
url = lines.pop.strip
|
104
105
|
contents = %{<html><head><meta http-equiv="refresh" content="0;#{url}" /></head></html>}
|
105
106
|
|
106
107
|
File.open(to_path, 'w+') { |f| f.puts contents }
|
data/lib/serve/project.rb
CHANGED
@@ -25,13 +25,13 @@ module Serve #:nodoc:
|
|
25
25
|
public/images
|
26
26
|
public/javascripts
|
27
27
|
public/stylesheets
|
28
|
-
|
28
|
+
stylesheets
|
29
29
|
).each { |path| make_path path }
|
30
|
-
create_file '
|
31
|
-
create_file 'views/_layout.html.erb',
|
32
|
-
create_file 'views/hello.html.erb',
|
33
|
-
create_file 'views/view_helpers.rb',
|
34
|
-
create_file 'views/index.redirect',
|
30
|
+
create_file 'stylesheets/application.scss', read_template('application.scss')
|
31
|
+
create_file 'views/_layout.html.erb', read_template('_layout.html.erb')
|
32
|
+
create_file 'views/hello.html.erb', read_template('hello.html.erb')
|
33
|
+
create_file 'views/view_helpers.rb', read_template('view_helpers.rb')
|
34
|
+
create_file 'views/index.redirect', read_template('index.redirect')
|
35
35
|
install_javascript_framework @framework
|
36
36
|
end
|
37
37
|
|
@@ -49,7 +49,7 @@ module Serve #:nodoc:
|
|
49
49
|
else
|
50
50
|
make_path 'public/javascripts'
|
51
51
|
end
|
52
|
-
move_file 'src', '
|
52
|
+
move_file 'src', 'stylesheets'
|
53
53
|
install_javascript_framework @framework
|
54
54
|
note_old_compass_config
|
55
55
|
end
|
@@ -73,7 +73,6 @@ module Serve #:nodoc:
|
|
73
73
|
views
|
74
74
|
).each { |path| make_path path }
|
75
75
|
create_file 'config.ru', read_template('config.ru')
|
76
|
-
create_file 'LICENSE', read_template('license')
|
77
76
|
create_file '.gitignore', read_template('gitignore')
|
78
77
|
create_file 'compass.config', read_template('compass.config')
|
79
78
|
create_file 'README.markdown', read_template('README.markdown')
|
@@ -4,20 +4,21 @@ What is this?
|
|
4
4
|
This is a simple HTML prototype written in HAML or ERB that is designed to be
|
5
5
|
viewed with Serve.
|
6
6
|
|
7
|
-
What is Serve? Serve is
|
8
|
-
It
|
9
|
-
|
10
|
-
designer to happily work in his own space creating an HTML prototype of the
|
11
|
-
application, while the developer works on the Rails application and copies
|
12
|
-
over HTML from the prototype as needed. This allows the designer to focus on
|
13
|
-
presentation and flow while the developer can focus on the implementation.
|
7
|
+
What is Serve? Serve is an open-source rapid prototyping framework for Web
|
8
|
+
applications. It makes it easy to prototype functionality without writing a
|
9
|
+
single line of backend code.
|
14
10
|
|
15
11
|
|
16
12
|
How do I install and run Serve?
|
17
13
|
-------------------------------
|
18
14
|
|
19
|
-
Serve is distributed as a gem to make it easy to get up and running.
|
20
|
-
|
15
|
+
Serve is distributed as a Ruby gem to make it easy to get up and running. You
|
16
|
+
must have Ruby installed in order to download and use Serve. The Ruby download
|
17
|
+
page provides instructions for getting Ruby setup on different platforms:
|
18
|
+
|
19
|
+
<http://www.ruby-lang.org/en/downloads/>
|
20
|
+
|
21
|
+
After you have Ruby installed, open up the command prompt and type:
|
21
22
|
|
22
23
|
gem install serve
|
23
24
|
|
@@ -32,15 +33,55 @@ Web browser at this URL:
|
|
32
33
|
|
33
34
|
<http://localhost:4000>
|
34
35
|
|
35
|
-
|
36
|
-
|
36
|
+
|
37
|
+
Compass and Sass
|
38
|
+
----------------
|
39
|
+
|
40
|
+
This prototype uses Compass and Sass to generate CSS. Both are distributed as
|
41
|
+
Ruby gems and can be easily installed from the command prompt. Since the
|
42
|
+
Compass gem depends on Sass, you can install them both with one command:
|
43
|
+
|
44
|
+
gem install compass
|
45
|
+
|
46
|
+
Learn more about Sass:
|
47
|
+
|
48
|
+
<http://sass-lang.org>
|
49
|
+
|
50
|
+
Learn more about Compass:
|
51
|
+
|
52
|
+
<http://compass-style.org>
|
37
53
|
|
38
54
|
|
39
55
|
Rack and Passenger
|
40
56
|
------------------
|
41
57
|
|
42
58
|
Astute users may notice that this project is also a simple Rack application.
|
43
|
-
This means that it is easy to deploy it on Passenger or
|
44
|
-
|
59
|
+
This means that it is easy to deploy it on Passenger or in any other
|
60
|
+
Rack-friendly environment. Rack it up with the `rackup` command. For more
|
61
|
+
information about using Serve and Passenger see:
|
62
|
+
|
63
|
+
<http://bit.ly/serve-and-passenger>
|
64
|
+
|
65
|
+
|
66
|
+
Exporting
|
67
|
+
---------
|
68
|
+
|
69
|
+
To export this project to pure HTML and CSS you will need the prerelease
|
70
|
+
version of Serve. To get started with the prerelease version:
|
71
|
+
|
72
|
+
gem install --pre serve
|
73
|
+
|
74
|
+
To export your project, use the new "export" command:
|
75
|
+
|
76
|
+
serve export <project>:<output>
|
77
|
+
|
78
|
+
Where "project" is the path to the project and "output" is the path to the
|
79
|
+
directory where you would like your HTML and CSS generated.
|
80
|
+
|
81
|
+
|
82
|
+
Learning More
|
83
|
+
-------------
|
84
|
+
|
85
|
+
You can learn more about Serve on the GitHub project page:
|
45
86
|
|
46
|
-
<http://
|
87
|
+
<http://github.com/jlong/serve>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
//
|
2
|
+
// Application Stylesheet
|
3
|
+
//
|
4
|
+
|
5
|
+
@import "compass";
|
6
|
+
|
7
|
+
@include global-reset;
|
8
|
+
|
9
|
+
body {
|
10
|
+
font-size: 90%;
|
11
|
+
padding: 20px;
|
12
|
+
}
|
13
|
+
|
14
|
+
h1 {
|
15
|
+
font-family: "Trebuchet MS", Helvetica, Arial, sans-serif;
|
16
|
+
font-size: 260%;
|
17
|
+
font-weight: bold;
|
18
|
+
}
|
@@ -1,6 +1,5 @@
|
|
1
1
|
#\\ -p 4000
|
2
2
|
|
3
|
-
gem 'activesupport'
|
4
3
|
gem 'serve'
|
5
4
|
|
6
5
|
require 'serve'
|
@@ -13,6 +12,7 @@ root = ::File.dirname(__FILE__)
|
|
13
12
|
# don't allow you to write to the file system on the fly (like Heroku).
|
14
13
|
# Remove this conditional if you want to compile Sass in production.
|
15
14
|
if ENV['RACK_ENV'] != 'production'
|
15
|
+
require 'sass'
|
16
16
|
require 'sass/plugin/rack'
|
17
17
|
require 'compass'
|
18
18
|
|
@@ -1 +1,15 @@
|
|
1
|
+
Serve has a special file type for mapping HTTP redirects. Redirects make nice
|
2
|
+
end points for form posts or short URLs.
|
3
|
+
|
4
|
+
Redirect URLs can be fully formed, like this:
|
5
|
+
|
6
|
+
http://wiseheartdesign.com/
|
7
|
+
|
8
|
+
Or, relative to the site root, like this:
|
9
|
+
|
10
|
+
/action
|
11
|
+
|
12
|
+
Extra lines at the beginning of a redirect file are ignored. By convention,
|
13
|
+
the last line of a redirect file is the URL to redirect to:
|
14
|
+
|
1
15
|
/hello
|
@@ -1,5 +1,34 @@
|
|
1
|
+
#
|
2
|
+
# Place methods here that you want available to you in your views.
|
3
|
+
# View helpers allow you keep templates clean.
|
4
|
+
#
|
1
5
|
module ViewHelpers
|
6
|
+
|
7
|
+
# Example helper method
|
2
8
|
def hello(name)
|
3
9
|
"Hello \#{name}!"
|
4
10
|
end
|
11
|
+
|
12
|
+
# Handy for hiding a block of unfinished code
|
13
|
+
def hidden(&block)
|
14
|
+
#no-op
|
15
|
+
end
|
16
|
+
|
17
|
+
# Shorthand for referencing images in the images folder
|
18
|
+
def image(name, options = {})
|
19
|
+
path = "/images/\#{name}"
|
20
|
+
path += ".png" unless path.match(/\.[A-za-z]{3,4}$/)
|
21
|
+
image_tag(name, {:alt => ""}.update(options))
|
22
|
+
end
|
23
|
+
|
24
|
+
# Calculate the years for a copyright
|
25
|
+
def copyright_years(start_year)
|
26
|
+
end_year = Date.today.year
|
27
|
+
if start_year == end_year
|
28
|
+
"\#{start_year}"
|
29
|
+
else
|
30
|
+
"\#{start_year}–\#{end_year}"
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
5
34
|
end
|
data/lib/serve/view_helpers.rb
CHANGED
@@ -140,7 +140,7 @@ module Serve #:nodoc:
|
|
140
140
|
template = template[1..-1]
|
141
141
|
path = @root_path
|
142
142
|
end
|
143
|
-
filename = template_filename(File.join(path, template), :partial => options
|
143
|
+
filename = template_filename(File.join(path, template), :partial => options[:partial])
|
144
144
|
if File.file?(filename)
|
145
145
|
parser.parse_file(filename, options[:locals])
|
146
146
|
else
|
@@ -153,15 +153,16 @@ module Serve #:nodoc:
|
|
153
153
|
def template_filename(name, options)
|
154
154
|
path = File.dirname(name)
|
155
155
|
template = File.basename(name)
|
156
|
-
template = "_" + template if options
|
157
|
-
template += extname(parser.script_filename) unless name =~ /\.[a-z]
|
156
|
+
template = "_" + template if options[:partial]
|
157
|
+
template += extname(parser.script_filename) unless name =~ /\.[a-z]+$/
|
158
158
|
File.join(path, template)
|
159
159
|
end
|
160
160
|
|
161
161
|
def extname(filename)
|
162
|
-
/(\.[a-z]
|
162
|
+
/(\.[a-z]+\.[a-z]+)$/.match(filename)
|
163
163
|
$1 || File.extname(filename) || ''
|
164
164
|
end
|
165
|
+
|
165
166
|
end
|
166
167
|
|
167
168
|
module TagHelpers
|
data/spec/application_spec.rb
CHANGED
@@ -9,11 +9,14 @@ describe Serve::Application do
|
|
9
9
|
:help => false,
|
10
10
|
:version => false,
|
11
11
|
:environment => 'development',
|
12
|
+
|
12
13
|
:port => 4000,
|
13
14
|
:address => '0.0.0.0',
|
14
15
|
:root => Dir.pwd,
|
16
|
+
|
15
17
|
:convert => nil,
|
16
|
-
:create => nil
|
18
|
+
:create => nil,
|
19
|
+
:export => nil
|
17
20
|
}
|
18
21
|
end
|
19
22
|
|
data/spec/project_spec.rb
CHANGED
@@ -13,6 +13,9 @@ describe Serve::Project do
|
|
13
13
|
|
14
14
|
before(:all) do
|
15
15
|
@options = {
|
16
|
+
:port => 4000,
|
17
|
+
:address => '0.0.0.0',
|
18
|
+
|
16
19
|
:name => 'test_mockup',
|
17
20
|
:directory => File.dirname(__FILE__),
|
18
21
|
:framework => 'jquery'
|
@@ -67,7 +70,7 @@ describe Serve::Project do
|
|
67
70
|
end
|
68
71
|
|
69
72
|
it "should have a sass directory" do
|
70
|
-
File.exists?(File.join(@mockup_file, '
|
73
|
+
File.exists?(File.join(@mockup_file, 'stylesheets')).should be_true
|
71
74
|
end
|
72
75
|
|
73
76
|
it "should have a tmp directory" do
|
@@ -86,10 +89,6 @@ describe Serve::Project do
|
|
86
89
|
File.exists?(File.join(@mockup_file, 'compass.config')).should be_true
|
87
90
|
end
|
88
91
|
|
89
|
-
it "should have a LICENSE file" do
|
90
|
-
File.exists?(File.join(@mockup_file, 'LICENSE')).should be_true
|
91
|
-
end
|
92
|
-
|
93
92
|
it "should have a dot gitignore file" do
|
94
93
|
File.exists?(File.join(@mockup_file, '.gitignore')).should be_true
|
95
94
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serve
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: -
|
4
|
+
hash: -1876988218
|
5
5
|
prerelease: true
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
9
|
- 0
|
10
|
-
-
|
11
|
-
version: 1.5.0.
|
10
|
+
- pre3
|
11
|
+
version: 1.5.0.pre3
|
12
12
|
platform: ruby
|
13
13
|
authors:
|
14
14
|
- John W. Long
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2011-06-
|
21
|
+
date: 2011-06-22 00:00:00 -04:00
|
22
22
|
default_executable: serve
|
23
23
|
dependencies:
|
24
24
|
- !ruby/object:Gem::Dependency
|
@@ -167,10 +167,9 @@ files:
|
|
167
167
|
- lib/serve/project.rb
|
168
168
|
- lib/serve/rack.rb
|
169
169
|
- lib/serve/router.rb
|
170
|
-
- lib/serve/templates/LICENSE
|
171
170
|
- lib/serve/templates/README.markdown
|
172
171
|
- lib/serve/templates/_layout.html.erb
|
173
|
-
- lib/serve/templates/application.
|
172
|
+
- lib/serve/templates/application.scss
|
174
173
|
- lib/serve/templates/compass.config
|
175
174
|
- lib/serve/templates/config.ru
|
176
175
|
- lib/serve/templates/gitignore
|
data/lib/serve/templates/LICENSE
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
Copyright (c) #{Time.now.year} #{@full_name}
|
2
|
-
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
-
a copy of this software and associated documentation files (the
|
5
|
-
"Software"), to deal in the Software without restriction, including
|
6
|
-
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
-
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
-
permit persons to whom the Software is furnished to do so, subject to
|
9
|
-
the following conditions:
|
10
|
-
|
11
|
-
The above copyright notice and this permission notice shall be
|
12
|
-
included in all copies or substantial portions of the Software.
|
13
|
-
|
14
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
-
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
-
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
-
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
-
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|