sdl4r 0.9.9 → 0.9.11

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. data/CHANGELOG +70 -1
  2. data/LICENSE +499 -497
  3. data/Rakefile +38 -28
  4. data/TODO +194 -45
  5. data/doc/classes/SDL4R/AbbreviationTimezoneProxy.html +151 -0
  6. data/doc/classes/SDL4R/ConstantTimezone.html +129 -0
  7. data/doc/classes/SDL4R/Element.html +148 -0
  8. data/doc/classes/SDL4R/Reader.html +683 -0
  9. data/doc/classes/SDL4R/RelativeTimezone.html +187 -0
  10. data/doc/classes/SDL4R/SdlBinary.html +188 -0
  11. data/doc/classes/SDL4R/SdlParseError.html +110 -0
  12. data/doc/classes/SDL4R/SdlTimeSpan.html +651 -0
  13. data/doc/classes/SDL4R/Serializer.html +557 -0
  14. data/doc/classes/SDL4R/Serializer/Ref.html +138 -0
  15. data/doc/classes/SDL4R/TZAbbreviationDB/Record.html +117 -0
  16. data/doc/classes/SDL4R/Tag.html +1274 -0
  17. data/doc/classes/SDL4R/Token.html +131 -0
  18. data/doc/created.rid +1 -0
  19. data/doc/files/CHANGELOG.html +290 -0
  20. data/doc/files/LICENSE.html +53 -0
  21. data/doc/files/README.html +405 -0
  22. data/doc/files/lib/sdl4r/abbreviation_timezone_proxy_rb.html +63 -0
  23. data/doc/files/lib/sdl4r/constant_timezone_rb.html +54 -0
  24. data/doc/files/lib/sdl4r/element_rb.html +54 -0
  25. data/doc/files/lib/sdl4r/reader_rb.html +68 -0
  26. data/doc/files/lib/sdl4r/relative_timezone_rb.html +62 -0
  27. data/doc/files/lib/sdl4r/sdl4r_rb.html +66 -0
  28. data/doc/files/lib/sdl4r/sdl4r_tzinfo_rb.html +64 -0
  29. data/doc/files/lib/sdl4r/sdl4r_version_rb.html +54 -0
  30. data/doc/files/lib/sdl4r/sdl_binary_rb.html +54 -0
  31. data/doc/files/lib/sdl4r/sdl_parse_error_rb.html +54 -0
  32. data/doc/files/lib/sdl4r/sdl_time_span_rb.html +54 -0
  33. data/doc/files/lib/sdl4r/serializer_rb.html +62 -0
  34. data/doc/files/lib/sdl4r/tag_rb.html +66 -0
  35. data/doc/files/lib/sdl4r/token_rb.html +54 -0
  36. data/doc/files/lib/sdl4r/tokenizer_rb.html +64 -0
  37. data/doc/files/lib/sdl4r/tz_abbreviation_db_rb.html +67 -0
  38. data/doc/files/lib/sdl4r_rb.html +54 -0
  39. data/doc/files/lib/sdl4r_tzinfo_rb.html +54 -0
  40. data/doc/fr_class_index.html +23 -0
  41. data/doc/fr_file_index.html +40 -0
  42. data/doc/fr_method_index.html +4711 -0
  43. data/doc/index.html +15 -0
  44. data/doc/rdoc-style.css +328 -0
  45. data/lib/sdl4r.rb +3 -1
  46. data/lib/sdl4r/abbreviation_timezone_proxy.rb +38 -0
  47. data/lib/sdl4r/constant_timezone.rb +58 -0
  48. data/{test/sdl4r/sdl_test.rb → lib/sdl4r/element.rb} +19 -14
  49. data/lib/sdl4r/reader.rb +772 -0
  50. data/lib/sdl4r/relative_timezone.rb +156 -0
  51. data/lib/sdl4r/sdl4r.rb +187 -45
  52. data/lib/sdl4r/sdl4r_tzinfo.rb +75 -0
  53. data/lib/sdl4r/sdl4r_version.rb +24 -0
  54. data/lib/sdl4r/sdl_parse_error.rb +1 -1
  55. data/lib/sdl4r/sdl_time_span.rb +5 -1
  56. data/lib/sdl4r/serializer.rb +473 -60
  57. data/lib/sdl4r/tag.rb +126 -51
  58. data/lib/sdl4r/token.rb +49 -0
  59. data/lib/sdl4r/tokenizer.rb +431 -0
  60. data/lib/sdl4r/tz_abbreviation_db.rb +266 -0
  61. data/read_jprof.html +16934 -0
  62. data/read_jprof_pull.html +14451 -0
  63. data/read_prof.html +4983 -0
  64. data/read_prof_pull.html +4896 -0
  65. data/test/sdl4r/parser_test.rb +577 -503
  66. data/test/sdl4r/read_jprof.rb +58 -0
  67. data/test/sdl4r/read_prof.rb +70 -0
  68. data/test/sdl4r/reader_test.rb +173 -0
  69. data/test/sdl4r/relative_timezone_test.rb +102 -0
  70. data/test/sdl4r/sdl4r_test.rb +611 -528
  71. data/test/sdl4r/sdl4r_tzinfo_test.rb +108 -0
  72. data/test/sdl4r/sdl_test_case.rb +60 -0
  73. data/test/sdl4r/serializer_test.rb +448 -11
  74. data/test/sdl4r/tag_test.rb +84 -5
  75. data/test/sdl4r/tokenizer_test.rb +128 -0
  76. metadata +69 -11
  77. data/lib/sdl4r/parser.rb +0 -648
  78. data/lib/sdl4r/parser/reader.rb +0 -184
  79. data/lib/sdl4r/parser/time_span_with_zone.rb +0 -57
  80. data/lib/sdl4r/parser/token.rb +0 -138
  81. data/lib/sdl4r/parser/tokenizer.rb +0 -507
@@ -0,0 +1,131 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>: SDL4R::Token [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='class' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>
29
+ <span class='type'>Class</span>
30
+ SDL4R::Token
31
+ </h1>
32
+ <ol class='paths'>
33
+ <li>
34
+ <a href="../../files/lib/sdl4r/token_rb.html">lib/sdl4r/token.rb</a>
35
+ </li>
36
+ </ol>
37
+ <div class='parent'>
38
+ Parent:
39
+ <strong>Object</strong>
40
+ </div>
41
+ </div>
42
+ <div id='content'>
43
+ <div id='text'>
44
+ <div id='description'>
45
+ <p>
46
+ Used internally by Tokenizer for keeping track of its state. Don&#8217;t
47
+ use directly. @private
48
+ </p>
49
+ </div>
50
+ <div id='method-list'>
51
+ <h2>Methods</h2>
52
+ <h3>public class</h3>
53
+ <ol>
54
+ <li><a href="#M000151">new</a></li>
55
+ </ol>
56
+ </div>
57
+ <div id='section'>
58
+ <div id='attribute-list'>
59
+ <h2 class='section-bar'>Attributes</h2>
60
+ <div class='name-list'>
61
+ <table>
62
+ <tr class='top-aligned-row context-row'>
63
+ <td class='context-item-name'>line_no</td>
64
+ <td class='context-item-value'>[RW]</td>
65
+ <td class='context-item-desc'>
66
+
67
+ Line number of the token
68
+ </td>
69
+ </tr>
70
+ <tr class='top-aligned-row context-row'>
71
+ <td class='context-item-name'>matcher</td>
72
+ <td class='context-item-value'>[RW]</td>
73
+ <td class='context-item-desc'>
74
+
75
+ Matcher object associated that discovered this <a
76
+ href="Token.html">Token</a>
77
+ </td>
78
+ </tr>
79
+ <tr class='top-aligned-row context-row'>
80
+ <td class='context-item-name'>pos</td>
81
+ <td class='context-item-value'>[RW]</td>
82
+ <td class='context-item-desc'>
83
+
84
+ Position of the token in the line
85
+ </td>
86
+ </tr>
87
+ <tr class='top-aligned-row context-row'>
88
+ <td class='context-item-name'>text</td>
89
+ <td class='context-item-value'>[RW]</td>
90
+ <td class='context-item-desc'>
91
+
92
+ The token text
93
+ </td>
94
+ </tr>
95
+ <tr class='top-aligned-row context-row'>
96
+ <td class='context-item-name'>type</td>
97
+ <td class='context-item-value'>[RW]</td>
98
+ <td class='context-item-desc'>
99
+
100
+ Type of token (e.g. :WHITESPACE)
101
+ </td>
102
+ </tr>
103
+ </table>
104
+ </div>
105
+ </div>
106
+ <div id='methods'>
107
+ <h2>Public class methods</h2>
108
+ <div class='method public-class' id='method-M000151'>
109
+ <a name='M000151'></a>
110
+ <div class='synopsis'>
111
+ <span class='name'>new</span>
112
+ <span class='arguments'>(text, type, matcher, line_no, pos)</span>
113
+ </div>
114
+ <div class='source'>
115
+ <a class='source-toggle' href='#' onclick="toggleCode('M000151-source'); return false">
116
+ [show source]
117
+ </a>
118
+ <pre id='M000151-source'> <span class="ruby-comment cmt"># File lib/sdl4r/token.rb, line 27</span>&#x000A;27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">matcher</span>, <span class="ruby-identifier">line_no</span>, <span class="ruby-identifier">pos</span>)&#x000A;28: <span class="ruby-ivar">@text</span> = <span class="ruby-identifier">text</span>&#x000A;29: <span class="ruby-ivar">@type</span> = <span class="ruby-identifier">type</span>&#x000A;30: <span class="ruby-ivar">@matcher</span> = <span class="ruby-identifier">matcher</span>&#x000A;31: <span class="ruby-ivar">@line_no</span> = <span class="ruby-identifier">line_no</span>&#x000A;32: <span class="ruby-ivar">@pos</span> = <span class="ruby-identifier">pos</span>&#x000A;33: <span class="ruby-keyword kw">end</span></pre>
119
+ </div>
120
+ </div>
121
+ </div>
122
+ </div>
123
+ </div>
124
+ </div>
125
+ <div id='footer-push'></div>
126
+ </div>
127
+ <div id='footer'>
128
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
129
+ </div>
130
+ </body>
131
+ </html>
@@ -0,0 +1 @@
1
+ Sun, 26 Dec 2010 23:21:51 +0900
@@ -0,0 +1,290 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>File: CHANGELOG [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='file' id='wrapper'>
27
+ <div class='header'>
28
+ <h1 class='name'>CHANGELOG</h1>
29
+ <div class='paths'>
30
+ CHANGELOG
31
+ </div>
32
+ <div class='last-update'>
33
+ Last Update:
34
+ <span class='datetime'>2010-12-26 22:50:55 +0900</span>
35
+ </div>
36
+ </div>
37
+ <div id='content'>
38
+ <div id='text'>
39
+ <div id='description'>
40
+ <h2>v1.0 (建設中)</h2>
41
+ <h2>v0.9.10 (26-12-2010)</h2>
42
+ <h3>Major changes:</h3>
43
+ <ul>
44
+ <li>New pull parser implementation: better performance under all tested
45
+ platforms (especially under JRuby). You don&#8217;t have to use the Tag
46
+ class anymore, if you don&#8217;t need to.
47
+
48
+ <p>
49
+ The old implementation is not available anymore.
50
+ </p>
51
+ <p>
52
+ Note that this is still slower than if it was fully implemented in C, of
53
+ course.
54
+ </p>
55
+ </li>
56
+ <li>New: SDL4R#dump(), SDL4R#load(), serialization/deserialization using
57
+ Serializer (beta feature).
58
+
59
+ <pre>top = SDL4R::load(&lt;&lt;-EOS)&#x000A; food name=&quot;chili con carne&quot; {&#x000A; ingredient &quot;beans&quot;&#x000A; ingredient &quot;chili&quot;&#x000A; ingredient &quot;cheese&quot;&#x000A; score 8.9&#x000A; }&#x000A;EOS&#x000A;&#x000A;puts top.food.name # &gt;&gt; &quot;chili con carne&quot;&#x000A;puts top.food.ingredient # &gt;&gt; [&quot;beans&quot;, &quot;chili&quot;, &quot;cheese&quot;]&#x000A;puts top.food.score # &gt;&gt; 8.9</pre>
60
+ </li>
61
+ <li>Unicode characters are now allowed in SDL identifiers as per the
62
+ specification (supported where Unicode character classes are supported e.g.
63
+ Ruby 1.9.2 or JRuby).
64
+
65
+ </li>
66
+ <li>The methods SDL4R/Parser.new_date_time() have been removed and refactored
67
+ into
68
+
69
+ <pre>Reader.new_time(year, month, day, hour, min, sec, msec, timezone_code)&#x000A;SDL4R.new_time(year, month, day, hour, min, sec, msec, timezone_code)</pre>
70
+ <p>
71
+ The objective was to allow the two following features.
72
+ </p>
73
+ </li>
74
+ <li>Support of Time: if you want SDL4R to generate Time instances instead of
75
+ DateTimes.
76
+
77
+ <pre>SDL4R.use_datetime = false</pre>
78
+ </li>
79
+ <li>Support of the TZInfo gem (<a
80
+ href="http://tzinfo.rubyforge.org/">tzinfo.rubyforge.org/</a>) if you want
81
+ a more complete support of timezones, DST, etc. For the time being, the
82
+ code relies on implementation features of TZInfo and therefore, there is
83
+ some risk using it as to future versions of that component. To use SDL4R
84
+ with TZInfo enabled:
85
+
86
+ <pre>require 'sdl4r_tzinfo'</pre>
87
+ <p>
88
+ or (for more complex use cases)
89
+ </p>
90
+ <pre>require 'sdl4r'&#x000A;require 'sdl4r/sdl4r_tzinfo'&#x000A;SDL4R::enable_tzinfo&#x000A;...&#x000A;SDL4R::disable_tzinfo</pre>
91
+ </li>
92
+ </ul>
93
+ <h3>Minor changes:</h3>
94
+ <ul>
95
+ <li>New: SDL4R#valid_identifier?()
96
+
97
+ </li>
98
+ <li>Methods of class Tag now takes Symbols as well as Strings for namespaces,
99
+ tag names and attribute names. You can now write:
100
+
101
+ <pre>tag.child(:my_child)&#x000A;tag.attribute(:my_namespace, :my_attribute)</pre>
102
+ </li>
103
+ <li>Fixed the formatting of date times so that the zone offset appears after a
104
+ &#8220;-GMT&#8221; mention, which was missing before. Fixed the formatting
105
+ of Time instances.
106
+
107
+ </li>
108
+ <li>Fixed Tag#to_xml_string
109
+
110
+ </li>
111
+ </ul>
112
+ <h2>v0.9.9 (19-11-2010)</h2>
113
+ <h3>Major changes:</h3>
114
+ <ul>
115
+ <li>SDL4R#to_attribute_map renamed to SDL4R#to_attribute_hash (as the doc
116
+ stated previously).
117
+
118
+ </li>
119
+ <li>Symbols are now converted to Strings when used as SDL values. It is
120
+ therefore possible to write:
121
+
122
+ <pre>tag.set_attribute(&quot;type&quot;, :square) #tag.attribute(&quot;type&quot;) =&gt; &quot;square&quot;</pre>
123
+ </li>
124
+ </ul>
125
+ <h3>Minor changes:</h3>
126
+ <ul>
127
+ <li>New methods: Tag#has_attributes? and Tag#has_values?
128
+
129
+ </li>
130
+ </ul>
131
+ <h2>v0.9.8 (16-sep-2010)</h2>
132
+ <h3>Major changes:</h3>
133
+ <ul>
134
+ <li>Bug fix: dollar ($) is now supported as a valid identifier character.
135
+
136
+ </li>
137
+ </ul>
138
+ <h3>Minor changes:</h3>
139
+ <ul>
140
+ <li>New constants: SDL4R#ANONYMOUS_TAG_NAME and SDL4R#ROOT_TAG_NAME.
141
+
142
+ </li>
143
+ <li>Bug fixes related to the error handling in the parser.
144
+
145
+ </li>
146
+ </ul>
147
+ <h2>v0.9.7 (26-aug-2010)</h2>
148
+ <h3>Major changes:</h3>
149
+ <ul>
150
+ <li>It could prove a hassle to use the block idiom of Tag.new or Tag.new_child
151
+ when handling another set of data. Therefore, if the given block takes a
152
+ (not-optional) parameter, the context remains the context of the calling
153
+ code.
154
+
155
+ <pre>class Elephant&#x000A;&#x000A; def initialize&#x000A; @weight = 1000&#x000A; end&#x000A;&#x000A; def to_sdl&#x000A; SDL4R::Tag.new(&quot;elephant&quot;) do |tag|&#x000A; tag.set_attribute(&quot;weight&quot;, @weight)&#x000A; tag &lt;&lt; &quot;I love pink ones.&quot;&#x000A; end&#x000A; end&#x000A;&#x000A;end&#x000A;&#x000A;puts Elephant.new.to_sdl.to_s # ==&gt; elephant &quot;I love pink ones.&quot; weight=1000</pre>
156
+ </li>
157
+ <li>Tag.to_xml_string() has been refactor to take an option Hash (backward
158
+ incompatible):
159
+
160
+ <dl>
161
+ <dt>:line_prefix</dt><dd>a text prefixing each line (default: &#8220;&#8221;)
162
+
163
+ </dd>
164
+ <dt>:uri_by_namespace</dt><dd>a Hash giving the URIs for the namespaces
165
+
166
+ </dd>
167
+ <dt>:indent</dt><dd>text specifying one indentation (default: &#8220;t&#8220;)
168
+
169
+ </dd>
170
+ <dt>:eol</dt><dd>end of line expression (default: &#8220;n&#8220;)
171
+
172
+ </dd>
173
+ <dt>:omit_null_attributes</dt><dd>if true, null/nil attributes are not exported (default: false). Otherwise,
174
+ they are exported as follows:
175
+
176
+ <pre>tag attr=&quot;null&quot;</pre>
177
+ </dd>
178
+ </dl>
179
+ </li>
180
+ <li>Fixed the parsing of line continuations with anti-slashes.
181
+
182
+ </li>
183
+ <li>Fixed the parsing of double-quoted strings. It is better at detecting badly
184
+ formed strings, now.
185
+
186
+ </li>
187
+ <li>Fixed the reporting of lines and columns in errors. Although the column
188
+ might be slightly off sometimes, the line should be correct.
189
+
190
+ </li>
191
+ </ul>
192
+ <h3>Minor changes:</h3>
193
+ <ul>
194
+ <li>The RDoc is now generated with the template <a
195
+ href="http://github.com/mislav/hanna/tree/master">Hanna</a>.
196
+
197
+ </li>
198
+ <li>Tag.<< now behaves with Enumerables (except Strings) as it does with
199
+ Arrays.
200
+
201
+ </li>
202
+ </ul>
203
+ <h2>v0.9.6 (10-aug-2010)</h2>
204
+ <h3>Major changes:</h3>
205
+ <ul>
206
+ <li>Tag.set_attribute(): fixed as it failed if the value was nil.
207
+
208
+ </li>
209
+ <li>Tag.write(): now returns the given output (especially necessary if a String
210
+ was given).
211
+
212
+ </li>
213
+ <li>Tag.write(): fixed as it failed when writing children without including the
214
+ root Tag.
215
+
216
+ </li>
217
+ <li>Tag.write(): it is now possible to give a StringIO as an output
218
+
219
+ </li>
220
+ </ul>
221
+ <h2>v0.9.5 (8-aug-2010)</h2>
222
+ <h3>Major changes:</h3>
223
+ <ul>
224
+ <li>Fixes in order to make SDL4R work in Ruby 1.9 (mainly concerning encodings
225
+ and dates).
226
+
227
+ </li>
228
+ <li>Commented out debug code (writing to files) inside sdl4r_test.rb.
229
+
230
+ </li>
231
+ </ul>
232
+ <h3>Minor changes:</h3>
233
+ <ul>
234
+ <li>General &amp; contact info in the <a href="README.html">README</a>
235
+
236
+ </li>
237
+ </ul>
238
+ <h2>v0.9.4 (6-aug-2010)</h2>
239
+ <h3>Major changes:</h3>
240
+ <ul>
241
+ <li>The use of BigDecimal (standard) has been preferred to Flt::DecNum.
242
+
243
+ </li>
244
+ <li>&#8220;sdl4r/sdl.rb&#8220; has been renamed to &#8220;sdl4r/sdl4r.rb&#8220;
245
+
246
+ </li>
247
+ <li>A sdl4r.rb has been added so that users can actually write (as the
248
+ documentation pretended):
249
+
250
+ <pre>require 'sdl4r'</pre>
251
+ </li>
252
+ <li>SDL4R#coerce_or_fail has been implemented, which means that random objects
253
+ cannot be added to a Tag as before. Rational instances are coerced using
254
+ Rational#to_f.
255
+
256
+ </li>
257
+ <li>Added usual time methods to SdlTimeSpan: day(), hour(), min(), sec(),
258
+ usec()
259
+
260
+ </li>
261
+ </ul>
262
+ <h2>v0.9.3</h2>
263
+ <h3>Major changes</h3>
264
+ <ul>
265
+ <li>Tag: any method that use to take namespace/name parameters now follows the
266
+ natural order &#8220;namespace&#8221; and then &#8220;name&#8221;:
267
+
268
+ <pre>Tag.new &quot;ns1&quot;, &quot;tag1&quot;</pre>
269
+ <p>
270
+ WARNING: this was the contrary before!!! Also, the &#8220;recursive&#8221;
271
+ parameter should always be at the first place now.
272
+ </p>
273
+ </li>
274
+ <li>It is now possible to override SDL4R::new_date_time in order to create Time
275
+ instances when parsing rather than DateTime instances.
276
+
277
+ </li>
278
+ </ul>
279
+ </div>
280
+ <div id='section'>
281
+ </div>
282
+ </div>
283
+ </div>
284
+ <div id='footer-push'></div>
285
+ </div>
286
+ <div id='footer'>
287
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
288
+ </div>
289
+ </body>
290
+ </html>
@@ -0,0 +1,53 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2
+ <html lang='en'>
3
+ <head>
4
+ <title>File: LICENSE [RDoc: Simple Declarative Language for Ruby]</title>
5
+ <meta content='text/html; charset=utf-8' http-equiv='Content-Type'>
6
+ <link href='../rdoc-style.css' media='screen' rel='stylesheet' type='text/css'>
7
+ <script type='text/javascript'>
8
+ //<![CDATA[
9
+ function popupCode(url) {
10
+ window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
11
+ }
12
+
13
+ function toggleCode(id) {
14
+ var code = document.getElementById(id)
15
+
16
+ code.style.display = code.style.display != 'block' ? 'block' : 'none'
17
+ return true
18
+ }
19
+
20
+ // Make codeblocks hidden by default
21
+ document.writeln('<' + 'style type="text/css">.method .source pre { display: none }<\/style>')
22
+ //]]>
23
+ </script>
24
+ </head>
25
+ <body class='page'>
26
+ <div class='file' id='wrapper'>
27
+ <div class='header'>
28
+ <div class='name'>LICENSE</div>
29
+ <div class='paths'>
30
+ LICENSE
31
+ </div>
32
+ <div class='last-update'>
33
+ Last Update:
34
+ <span class='datetime'>2010-12-25 20:40:22 +0900</span>
35
+ </div>
36
+ </div>
37
+ <div id='content'>
38
+ <div id='text'>
39
+ <div id='description'>
40
+ <h1>License</h1>
41
+ <pre> GNU LESSER GENERAL PUBLIC LICENSE&#x000A; Version 2.1, February 1999&#x000A;&#x000A;Copyright (C) 1991, 1999 Free Software Foundation, Inc.&#x000A;51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA&#x000A;Everyone is permitted to copy and distribute verbatim copies&#x000A;of this license document, but changing it is not allowed.&#x000A;&#x000A;[This is the first released version of the Lesser GPL. It also counts&#x000A;as the successor of the GNU Library Public License, version 2, hence&#x000A;the version number 2.1.]&#x000A;&#x000A; Preamble&#x000A;&#x000A; The licenses for most software are designed to take away your&#x000A; freedom to share and change it. By contrast, the GNU General Public&#x000A; Licenses are intended to guarantee your freedom to share and change&#x000A; free software--to make sure the software is free for all its users.&#x000A;&#x000A; This license, the Lesser General Public License, applies to some&#x000A; specially designated software packages--typically libraries--of the&#x000A; Free Software Foundation and other authors who decide to use it. You&#x000A; can use it too, but we suggest you first think carefully about whether&#x000A; this license or the ordinary General Public License is the better&#x000A; strategy to use in any particular case, based on the explanations below.&#x000A;&#x000A; When we speak of free software, we are referring to freedom of use,&#x000A; not price. Our General Public Licenses are designed to make sure that&#x000A; you have the freedom to distribute copies of free software (and charge&#x000A; for this service if you wish); that you receive source code or can get&#x000A; it if you want it; that you can change the software and use pieces of&#x000A; it in new free programs; and that you are informed that you can do&#x000A; these things.&#x000A;&#x000A; To protect your rights, we need to make restrictions that forbid&#x000A; distributors to deny you these rights or to ask you to surrender these&#x000A; rights. These restrictions translate to certain responsibilities for&#x000A; you if you distribute copies of the library or if you modify it.&#x000A;&#x000A; For example, if you distribute copies of the library, whether gratis&#x000A; or for a fee, you must give the recipients all the rights that we gave&#x000A; you. You must make sure that they, too, receive or can get the source&#x000A; code. If you link other code with the library, you must provide&#x000A; complete object files to the recipients, so that they can relink them&#x000A; with the library after making changes to the library and recompiling&#x000A; it. And you must show them these terms so they know their rights.&#x000A;&#x000A; We protect your rights with a two-step method: (1) we copyright the&#x000A; library, and (2) we offer you this license, which gives you legal&#x000A; permission to copy, distribute and/or modify the library.&#x000A;&#x000A; To protect each distributor, we want to make it very clear that&#x000A; there is no warranty for the free library. Also, if the library is&#x000A; modified by someone else and passed on, the recipients should know&#x000A; that what they have is not the original version, so that the original&#x000A; author's reputation will not be affected by problems that might be&#x000A; introduced by others.&#x000A;&#x000A; Finally, software patents pose a constant threat to the existence of&#x000A; any free program. We wish to make sure that a company cannot&#x000A; effectively restrict the users of a free program by obtaining a&#x000A; restrictive license from a patent holder. Therefore, we insist that&#x000A; any patent license obtained for a version of the library must be&#x000A; consistent with the full freedom of use specified in this license.&#x000A;&#x000A; Most GNU software, including some libraries, is covered by the&#x000A; ordinary GNU General Public License. This license, the GNU Lesser&#x000A; General Public License, applies to certain designated libraries, and&#x000A; is quite different from the ordinary General Public License. We use&#x000A; this license for certain libraries in order to permit linking those&#x000A; libraries into non-free programs.&#x000A;&#x000A; When a program is linked with a library, whether statically or using&#x000A; a shared library, the combination of the two is legally speaking a&#x000A; combined work, a derivative of the original library. The ordinary&#x000A; General Public License therefore permits such linking only if the&#x000A; entire combination fits its criteria of freedom. The Lesser General&#x000A; Public License permits more lax criteria for linking other code with&#x000A; the library.&#x000A;&#x000A; We call this license the &quot;Lesser&quot; General Public License because it&#x000A; does Less to protect the user's freedom than the ordinary General&#x000A; Public License. It also provides other free software developers Less&#x000A; of an advantage over competing non-free programs. These disadvantages&#x000A; are the reason we use the ordinary General Public License for many&#x000A; libraries. However, the Lesser license provides advantages in certain&#x000A; special circumstances.&#x000A;&#x000A; For example, on rare occasions, there may be a special need to&#x000A; encourage the widest possible use of a certain library, so that it becomes&#x000A; a de-facto standard. To achieve this, non-free programs must be&#x000A; allowed to use the library. A more frequent case is that a free&#x000A; library does the same job as widely used non-free libraries. In this&#x000A; case, there is little to gain by limiting the free library to free&#x000A; software only, so we use the Lesser General Public License.&#x000A;&#x000A; In other cases, permission to use a particular library in non-free&#x000A; programs enables a greater number of people to use a large body of&#x000A; free software. For example, permission to use the GNU C Library in&#x000A; non-free programs enables many more people to use the whole GNU&#x000A; operating system, as well as its variant, the GNU/Linux operating&#x000A; system.&#x000A;&#x000A; Although the Lesser General Public License is Less protective of the&#x000A; users' freedom, it does ensure that the user of a program that is&#x000A; linked with the Library has the freedom and the wherewithal to run&#x000A; that program using a modified version of the Library.&#x000A;&#x000A; The precise terms and conditions for copying, distribution and&#x000A; modification follow. Pay close attention to the difference between a&#x000A; &quot;work based on the library&quot; and a &quot;work that uses the library&quot;. The&#x000A; former contains code derived from the library, whereas the latter must&#x000A; be combined with the library in order to run.&#x000A;&#x000A; GNU LESSER GENERAL PUBLIC LICENSE&#x000A; TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION&#x000A;&#x000A; 0. This License Agreement applies to any software library or other&#x000A; program which contains a notice placed by the copyright holder or&#x000A; other authorized party saying it may be distributed under the terms of&#x000A; this Lesser General Public License (also called &quot;this License&quot;).&#x000A; Each licensee is addressed as &quot;you&quot;.&#x000A;&#x000A; A &quot;library&quot; means a collection of software functions and/or data&#x000A; prepared so as to be conveniently linked with application programs&#x000A; (which use some of those functions and data) to form executables.&#x000A;&#x000A; The &quot;Library&quot;, below, refers to any such software library or work&#x000A; which has been distributed under these terms. A &quot;work based on the&#x000A; Library&quot; means either the Library or any derivative work under&#x000A; copyright law: that is to say, a work containing the Library or a&#x000A; portion of it, either verbatim or with modifications and/or translated&#x000A; straightforwardly into another language. (Hereinafter, translation is&#x000A; included without limitation in the term &quot;modification&quot;.)&#x000A;&#x000A; &quot;Source code&quot; for a work means the preferred form of the work for&#x000A; making modifications to it. For a library, complete source code means&#x000A; all the source code for all modules it contains, plus any associated&#x000A; interface definition files, plus the scripts used to control compilation&#x000A; and installation of the library.&#x000A;&#x000A; Activities other than copying, distribution and modification are not&#x000A; covered by this License; they are outside its scope. The act of&#x000A; running a program using the Library is not restricted, and output from&#x000A; such a program is covered only if its contents constitute a work based&#x000A; on the Library (independent of the use of the Library in a tool for&#x000A; writing it). Whether that is true depends on what the Library does&#x000A; and what the program that uses the Library does.&#x000A;&#x000A; 1. You may copy and distribute verbatim copies of the Library's&#x000A; complete source code as you receive it, in any medium, provided that&#x000A; you conspicuously and appropriately publish on each copy an&#x000A; appropriate copyright notice and disclaimer of warranty; keep intact&#x000A; all the notices that refer to this License and to the absence of any&#x000A; warranty; and distribute a copy of this License along with the&#x000A; Library.&#x000A;&#x000A; You may charge a fee for the physical act of transferring a copy,&#x000A; and you may at your option offer warranty protection in exchange for a&#x000A; fee.&#x000A;&#x000A; 2. You may modify your copy or copies of the Library or any portion&#x000A; of it, thus forming a work based on the Library, and copy and&#x000A; distribute such modifications or work under the terms of Section 1&#x000A; above, provided that you also meet all of these conditions:&#x000A;&#x000A; a) The modified work must itself be a software library.&#x000A;&#x000A; b) You must cause the files modified to carry prominent notices&#x000A; stating that you changed the files and the date of any change.&#x000A;&#x000A; c) You must cause the whole of the work to be licensed at no&#x000A; charge to all third parties under the terms of this License.&#x000A;&#x000A; d) If a facility in the modified Library refers to a function or a&#x000A; table of data to be supplied by an application program that uses&#x000A; the facility, other than as an argument passed when the facility&#x000A; is invoked, then you must make a good faith effort to ensure that,&#x000A; in the event an application does not supply such function or&#x000A; table, the facility still operates, and performs whatever part of&#x000A; its purpose remains meaningful.&#x000A;&#x000A; (For example, a function in a library to compute square roots has&#x000A; a purpose that is entirely well-defined independent of the&#x000A; application. Therefore, Subsection 2d requires that any&#x000A; application-supplied function or table used by this function must&#x000A; be optional: if the application does not supply it, the square&#x000A; root function must still compute square roots.)&#x000A;&#x000A; These requirements apply to the modified work as a whole. If&#x000A; identifiable sections of that work are not derived from the Library,&#x000A; and can be reasonably considered independent and separate works in&#x000A; themselves, then this License, and its terms, do not apply to those&#x000A; sections when you distribute them as separate works. But when you&#x000A; distribute the same sections as part of a whole which is a work based&#x000A; on the Library, the distribution of the whole must be on the terms of&#x000A; this License, whose permissions for other licensees extend to the&#x000A; entire whole, and thus to each and every part regardless of who wrote&#x000A; it.&#x000A;&#x000A; Thus, it is not the intent of this section to claim rights or contest&#x000A; your rights to work written entirely by you; rather, the intent is to&#x000A; exercise the right to control the distribution of derivative or&#x000A; collective works based on the Library.&#x000A;&#x000A; In addition, mere aggregation of another work not based on the Library&#x000A; with the Library (or with a work based on the Library) on a volume of&#x000A; a storage or distribution medium does not bring the other work under&#x000A; the scope of this License.&#x000A;&#x000A; 3. You may opt to apply the terms of the ordinary GNU General Public&#x000A; License instead of this License to a given copy of the Library. To do&#x000A; this, you must alter all the notices that refer to this License, so&#x000A; that they refer to the ordinary GNU General Public License, version 2,&#x000A; instead of to this License. (If a newer version than version 2 of the&#x000A; ordinary GNU General Public License has appeared, then you can specify&#x000A; that version instead if you wish.) Do not make any other change in&#x000A; these notices.&#x000A;&#x000A; Once this change is made in a given copy, it is irreversible for&#x000A; that copy, so the ordinary GNU General Public License applies to all&#x000A; subsequent copies and derivative works made from that copy.&#x000A;&#x000A; This option is useful when you wish to copy part of the code of&#x000A; the Library into a program that is not a library.&#x000A;&#x000A; 4. You may copy and distribute the Library (or a portion or&#x000A; derivative of it, under Section 2) in object code or executable form&#x000A; under the terms of Sections 1 and 2 above provided that you accompany&#x000A; it with the complete corresponding machine-readable source code, which&#x000A; must be distributed under the terms of Sections 1 and 2 above on a&#x000A; medium customarily used for software interchange.&#x000A;&#x000A; If distribution of object code is made by offering access to copy&#x000A; from a designated place, then offering equivalent access to copy the&#x000A; source code from the same place satisfies the requirement to&#x000A; distribute the source code, even though third parties are not&#x000A; compelled to copy the source along with the object code.&#x000A;&#x000A; 5. A program that contains no derivative of any portion of the&#x000A; Library, but is designed to work with the Library by being compiled or&#x000A; linked with it, is called a &quot;work that uses the Library&quot;. Such a&#x000A; work, in isolation, is not a derivative work of the Library, and&#x000A; therefore falls outside the scope of this License.&#x000A;&#x000A; However, linking a &quot;work that uses the Library&quot; with the Library&#x000A; creates an executable that is a derivative of the Library (because it&#x000A; contains portions of the Library), rather than a &quot;work that uses the&#x000A; library&quot;. The executable is therefore covered by this License.&#x000A; Section 6 states terms for distribution of such executables.&#x000A;&#x000A; When a &quot;work that uses the Library&quot; uses material from a header file&#x000A; that is part of the Library, the object code for the work may be a&#x000A; derivative work of the Library even though the source code is not.&#x000A; Whether this is true is especially significant if the work can be&#x000A; linked without the Library, or if the work is itself a library. The&#x000A; threshold for this to be true is not precisely defined by law.&#x000A;&#x000A; If such an object file uses only numerical parameters, data&#x000A; structure layouts and accessors, and small macros and small inline&#x000A; functions (ten lines or less in length), then the use of the object&#x000A; file is unrestricted, regardless of whether it is legally a derivative&#x000A; work. (Executables containing this object code plus portions of the&#x000A; Library will still fall under Section 6.)&#x000A;&#x000A; Otherwise, if the work is a derivative of the Library, you may&#x000A; distribute the object code for the work under the terms of Section 6.&#x000A; Any executables containing that work also fall under Section 6,&#x000A; whether or not they are linked directly with the Library itself.&#x000A;&#x000A; 6. As an exception to the Sections above, you may also combine or&#x000A; link a &quot;work that uses the Library&quot; with the Library to produce a&#x000A; work containing portions of the Library, and distribute that work&#x000A; under terms of your choice, provided that the terms permit&#x000A; modification of the work for the customer's own use and reverse&#x000A; engineering for debugging such modifications.&#x000A;&#x000A; You must give prominent notice with each copy of the work that the&#x000A; Library is used in it and that the Library and its use are covered by&#x000A; this License. You must supply a copy of this License. If the work&#x000A; during execution displays copyright notices, you must include the&#x000A; copyright notice for the Library among them, as well as a reference&#x000A; directing the user to the copy of this License. Also, you must do one&#x000A; of these things:&#x000A;&#x000A; a) Accompany the work with the complete corresponding&#x000A; machine-readable source code for the Library including whatever&#x000A; changes were used in the work (which must be distributed under&#x000A; Sections 1 and 2 above); and, if the work is an executable linked&#x000A; with the Library, with the complete machine-readable &quot;work that&#x000A; uses the Library&quot;, as object code and/or source code, so that the&#x000A; user can modify the Library and then relink to produce a modified&#x000A; executable containing the modified Library. (It is understood&#x000A; that the user who changes the contents of definitions files in the&#x000A; Library will not necessarily be able to recompile the application&#x000A; to use the modified definitions.)&#x000A;&#x000A; b) Use a suitable shared library mechanism for linking with the&#x000A; Library. A suitable mechanism is one that (1) uses at run time a&#x000A; copy of the library already present on the user's computer system,&#x000A; rather than copying library functions into the executable, and (2)&#x000A; will operate properly with a modified version of the library, if&#x000A; the user installs one, as long as the modified version is&#x000A; interface-compatible with the version that the work was made with.&#x000A;&#x000A; c) Accompany the work with a written offer, valid for at&#x000A; least three years, to give the same user the materials&#x000A; specified in Subsection 6a, above, for a charge no more&#x000A; than the cost of performing this distribution.&#x000A;&#x000A; d) If distribution of the work is made by offering access to copy&#x000A; from a designated place, offer equivalent access to copy the above&#x000A; specified materials from the same place.&#x000A;&#x000A; e) Verify that the user has already received a copy of these&#x000A; materials or that you have already sent this user a copy.&#x000A;&#x000A; For an executable, the required form of the &quot;work that uses the&#x000A; Library&quot; must include any data and utility programs needed for&#x000A; reproducing the executable from it. However, as a special exception,&#x000A; the materials to be distributed need not include anything that is&#x000A; normally distributed (in either source or binary form) with the major&#x000A; components (compiler, kernel, and so on) of the operating system on&#x000A; which the executable runs, unless that component itself accompanies&#x000A; the executable.&#x000A;&#x000A; It may happen that this requirement contradicts the license&#x000A; restrictions of other proprietary libraries that do not normally&#x000A; accompany the operating system. Such a contradiction means you cannot&#x000A; use both them and the Library together in an executable that you&#x000A; distribute.&#x000A;&#x000A; 7. You may place library facilities that are a work based on the&#x000A; Library side-by-side in a single library together with other library&#x000A; facilities not covered by this License, and distribute such a combined&#x000A; library, provided that the separate distribution of the work based on&#x000A; the Library and of the other library facilities is otherwise&#x000A; permitted, and provided that you do these two things:&#x000A;&#x000A; a) Accompany the combined library with a copy of the same work&#x000A; based on the Library, uncombined with any other library&#x000A; facilities. This must be distributed under the terms of the&#x000A; Sections above.&#x000A;&#x000A; b) Give prominent notice with the combined library of the fact&#x000A; that part of it is a work based on the Library, and explaining&#x000A; where to find the accompanying uncombined form of the same work.&#x000A;&#x000A; 8. You may not copy, modify, sublicense, link with, or distribute&#x000A; the Library except as expressly provided under this License. Any&#x000A; attempt otherwise to copy, modify, sublicense, link with, or&#x000A; distribute the Library is void, and will automatically terminate your&#x000A; rights under this License. However, parties who have received copies,&#x000A; or rights, from you under this License will not have their licenses&#x000A; terminated so long as such parties remain in full compliance.&#x000A;&#x000A; 9. You are not required to accept this License, since you have not&#x000A; signed it. However, nothing else grants you permission to modify or&#x000A; distribute the Library or its derivative works. These actions are&#x000A; prohibited by law if you do not accept this License. Therefore, by&#x000A; modifying or distributing the Library (or any work based on the&#x000A; Library), you indicate your acceptance of this License to do so, and&#x000A; all its terms and conditions for copying, distributing or modifying&#x000A; the Library or works based on it.&#x000A;&#x000A; 10. Each time you redistribute the Library (or any work based on the&#x000A; Library), the recipient automatically receives a license from the&#x000A; original licensor to copy, distribute, link with or modify the Library&#x000A; subject to these terms and conditions. You may not impose any further&#x000A; restrictions on the recipients' exercise of the rights granted herein.&#x000A; You are not responsible for enforcing compliance by third parties with&#x000A; this License.&#x000A;&#x000A; 11. If, as a consequence of a court judgment or allegation of patent&#x000A; infringement or for any other reason (not limited to patent issues),&#x000A; conditions are imposed on you (whether by court order, agreement or&#x000A; otherwise) that contradict the conditions of this License, they do not&#x000A; excuse you from the conditions of this License. If you cannot&#x000A; distribute so as to satisfy simultaneously your obligations under this&#x000A; License and any other pertinent obligations, then as a consequence you&#x000A; may not distribute the Library at all. For example, if a patent&#x000A; license would not permit royalty-free redistribution of the Library by&#x000A; all those who receive copies directly or indirectly through you, then&#x000A; the only way you could satisfy both it and this License would be to&#x000A; refrain entirely from distribution of the Library.&#x000A;&#x000A; If any portion of this section is held invalid or unenforceable under any&#x000A; particular circumstance, the balance of the section is intended to apply,&#x000A; and the section as a whole is intended to apply in other circumstances.&#x000A;&#x000A; It is not the purpose of this section to induce you to infringe any&#x000A; patents or other property right claims or to contest validity of any&#x000A; such claims; this section has the sole purpose of protecting the&#x000A; integrity of the free software distribution system which is&#x000A; implemented by public license practices. Many people have made&#x000A; generous contributions to the wide range of software distributed&#x000A; through that system in reliance on consistent application of that&#x000A; system; it is up to the author/donor to decide if he or she is willing&#x000A; to distribute software through any other system and a licensee cannot&#x000A; impose that choice.&#x000A;&#x000A; This section is intended to make thoroughly clear what is believed to&#x000A; be a consequence of the rest of this License.&#x000A;&#x000A; 12. If the distribution and/or use of the Library is restricted in&#x000A; certain countries either by patents or by copyrighted interfaces, the&#x000A; original copyright holder who places the Library under this License may add&#x000A; an explicit geographical distribution limitation excluding those countries,&#x000A; so that distribution is permitted only in or among countries not thus&#x000A; excluded. In such case, this License incorporates the limitation as if&#x000A; written in the body of this License.&#x000A;&#x000A; 13. The Free Software Foundation may publish revised and/or new&#x000A; versions of the Lesser General Public License from time to time.&#x000A; Such new versions will be similar in spirit to the present version,&#x000A; but may differ in detail to address new problems or concerns.&#x000A;&#x000A; Each version is given a distinguishing version number. If the Library&#x000A; specifies a version number of this License which applies to it and&#x000A; &quot;any later version&quot;, you have the option of following the terms and&#x000A; conditions either of that version or of any later version published by&#x000A; the Free Software Foundation. If the Library does not specify a&#x000A; license version number, you may choose any version ever published by&#x000A; the Free Software Foundation.&#x000A;&#x000A; 14. If you wish to incorporate parts of the Library into other free&#x000A; programs whose distribution conditions are incompatible with these,&#x000A; write to the author to ask for permission. For software which is&#x000A; copyrighted by the Free Software Foundation, write to the Free&#x000A; Software Foundation; we sometimes make exceptions for this. Our&#x000A; decision will be guided by the two goals of preserving the free status&#x000A; of all derivatives of our free software and of promoting the sharing&#x000A; and reuse of software generally.&#x000A;&#x000A; NO WARRANTY&#x000A;&#x000A; 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO&#x000A; WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.&#x000A; EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR&#x000A; OTHER PARTIES PROVIDE THE LIBRARY &quot;AS IS&quot; WITHOUT WARRANTY OF ANY&#x000A; KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE&#x000A; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&#x000A; PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE&#x000A; LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME&#x000A; THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.&#x000A;&#x000A; 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN&#x000A; WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY&#x000A; AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU&#x000A; FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR&#x000A; CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE&#x000A; LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING&#x000A; RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A&#x000A; FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF&#x000A; SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH&#x000A; DAMAGES.&#x000A;&#x000A; END OF TERMS AND CONDITIONS&#x000A;&#x000A; How to Apply These Terms to Your New Libraries&#x000A;&#x000A; If you develop a new library, and you want it to be of the greatest&#x000A; possible use to the public, we recommend making it free software that&#x000A; everyone can redistribute and change. You can do so by permitting&#x000A; redistribution under these terms (or, alternatively, under the terms of the&#x000A; ordinary General Public License).&#x000A;&#x000A; To apply these terms, attach the following notices to the library. It is&#x000A; safest to attach them to the start of each source file to most effectively&#x000A; convey the exclusion of warranty; and each file should have at least the&#x000A; &quot;copyright&quot; line and a pointer to where the full notice is found.&#x000A;&#x000A; &lt;one line to give the library's name and a brief idea of what it does.&gt;&#x000A; Copyright (C) &lt;year&gt; &lt;name of author&gt;&#x000A;&#x000A; This library is free software; you can redistribute it and/or&#x000A; modify it under the terms of the GNU Lesser General Public&#x000A; License as published by the Free Software Foundation; either&#x000A; version 2.1 of the License, or (at your option) any later version.&#x000A;&#x000A; This library is distributed in the hope that it will be useful,&#x000A; but WITHOUT ANY WARRANTY; without even the implied warranty of&#x000A; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU&#x000A; Lesser General Public License for more details.&#x000A;&#x000A; You should have received a copy of the GNU Lesser General Public&#x000A; License along with this library; if not, write to the Free Software&#x000A; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA&#x000A;&#x000A; Also add information on how to contact you by electronic and paper mail.&#x000A;&#x000A; You should also get your employer (if you work as a programmer) or your&#x000A; school, if any, to sign a &quot;copyright disclaimer&quot; for the library, if&#x000A; necessary. Here is a sample; alter the names:&#x000A;&#x000A; Yoyodyne, Inc., hereby disclaims all copyright interest in the&#x000A; library `Frob' (a library for tweaking knobs) written by James Random Hacker.&#x000A;&#x000A; &lt;signature of Ty Coon&gt;, 1 April 1990&#x000A; Ty Coon, President of Vice&#x000A;&#x000A; That's all there is to it!</pre>
42
+ </div>
43
+ <div id='section'>
44
+ </div>
45
+ </div>
46
+ </div>
47
+ <div id='footer-push'></div>
48
+ </div>
49
+ <div id='footer'>
50
+ <a href="http://github.com/mislav/hanna/tree/master"><strong>Hanna</strong> RDoc template</a>
51
+ </div>
52
+ </body>
53
+ </html>