ae 1.7.4 → 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,28 +1,31 @@
1
- require 'ae/subjunctive'
2
-
3
1
  module AE
2
+ require 'ae/subjunctive'
4
3
 
5
- # = Must
4
+ # Must
6
5
  #
7
6
  # "It is not enough to succeed. Others must fail."
8
7
  # --Gore Vidal (1925 - )
9
8
  #
10
- # THIS IS AN OPTIONAL LIBRARY.
11
- #
9
+ # @note THIS IS AN OPTIONAL LIBRARY.
12
10
  module Must
13
11
  # The #must method is functionaly the same as #should.
14
12
  #
13
+ # @example
15
14
  # 4.must == 3 #=> Assertion Error
16
15
  #
16
+ # @example
17
17
  # 4.must do
18
18
  # self == 4
19
19
  # end
20
20
  #
21
+ # @return [Assertor] Assertion functor.
21
22
  def must(*args, &block)
22
23
  Assertor.new(self, :backtrace=>caller).be(*args, &block)
23
24
  end
24
25
 
25
26
  # Same as 'object.must == other'.
27
+ #
28
+ # @return [Assertor] Assertion functor.
26
29
  def must=(cmp)
27
30
  Assertor.new(self, :backtrace=>caller) == cmp
28
31
  end
@@ -30,22 +33,27 @@ module AE
30
33
  # Designate a negated expectation via a *functor*.
31
34
  # Read this as "must not".
32
35
  #
36
+ # @example
33
37
  # 4.must! == 4 #=> Assertion Error
34
38
  #
39
+ # @return [Assertor] Assertion functor.
35
40
  def must!(*args, &block)
36
41
  Assertor.new(self, :backtrace=>caller).not.be(*args, &block)
37
42
  end
38
43
 
44
+ # TODO: Are these negation methods needed now, since Ruby 1.9 allows for
45
+ # redefining `!` as a method?
46
+
39
47
  # Perhaps not literally the counter-term to *must* (rather *will*),
40
- # it is close enough for our purposes and conveys the appropriate
41
- # semantics, and I think is more sightly than *mustnt*.
42
- #
43
- # This method may be deprecated in the future when Ruby 1.9 becomes
44
- # mainstream, as it allows for redefining *#!* as a method.
48
+ # but close enough for our purposes, and conveys the appropriate
49
+ # semantics.
45
50
  alias_method :wont, :must!
46
51
 
47
52
  # Alias for #must! method.
48
- #alias_method :musnt , :must!
53
+ alias_method :must_not, :must!
54
+
55
+ # Alias for #must! method.
56
+ alias_method :mustnt, :must!
49
57
  end
50
58
 
51
59
  end
@@ -54,4 +62,4 @@ class ::Object #:nodoc:
54
62
  include AE::Must
55
63
  end
56
64
 
57
- # Copyright (c) 2008,2009 Thomas Sawyer
65
+ # Copyright (c) 2008 Thomas Sawyer
@@ -2,21 +2,22 @@ require 'ae/basic_object'
2
2
 
3
3
  module Kernel
4
4
 
5
+ # TODO: Is th cache really neccessry?
6
+
7
+ #
5
8
  $PRY_TABLE = {}
6
9
 
7
- # Pry allows you to test private and protected methods,
8
- # via a public-only interface.
10
+ # Pry allows you to test private and protected methods
11
+ # thru a public-only interface.
9
12
  #
10
13
  # Generally one should avoid testing private and protected
11
- # method directly, instead relying on tests of public methods to
14
+ # methods directly, instead relying on tests of public methods to
12
15
  # indirectly test them, because private and protected methods are
13
- # considered implementation details. But sometimes is necessary
16
+ # considered implementation details. But sometimes it is necessary
14
17
  # to test them directly, or if you wish to achieve *absolute
15
- # coverage*, say in mission critical systems.
18
+ # coverage*, say in a mission critical system.
16
19
  #
17
- #--
18
- # TODO: Is th cache really neccessry?
19
- #++
20
+ # @return [Pry] pry functor
20
21
  def pry
21
22
  $PRY_TABLE[self] ||= Pry.new do |op, *a, &b|
22
23
  __send__(op, *a, &b)
@@ -2,14 +2,13 @@ require 'ae/subjunctive'
2
2
 
3
3
  module AE
4
4
 
5
- # = Should
5
+ # Should
6
6
  #
7
- # "Always and never are two words you should always
8
- # remember never to use."
7
+ # "Always and never are two words you should always
8
+ # remember never to use."
9
9
  # --Wendell Johnson
10
10
  #
11
- # THIS IS AN OPTIONAL LIBRARY.
12
- #
11
+ # @note THIS IS AN OPTIONAL LIBRARY.
13
12
  module Should
14
13
  # Make an assertion in subjunctive tense.
15
14
  #
@@ -19,11 +18,14 @@ module AE
19
18
  # self == 4
20
19
  # end
21
20
  #
21
+ # @return [Assertor] Assertion functor.
22
22
  def should(*args, &block)
23
23
  Assertor.new(self, :backtrace=>caller).be(*args, &block)
24
24
  end
25
25
 
26
26
  # Same as 'object.should == other'.
27
+ #
28
+ # @return [Assertor] Assertion functor.
27
29
  def should=(cmp)
28
30
  Assertor.new(self, :backtrace=>caller).assert == cmp
29
31
  end
@@ -33,13 +35,16 @@ module AE
33
35
  #
34
36
  # 4.should! = 4 #=> Assertion Error
35
37
  #
38
+ # @return [Assertor] Assertion functor.
36
39
  def should!(*args, &block)
37
40
  Assertor.new(self, :backtrace=>caller).not.be(*args, &block)
38
41
  end
39
42
 
40
- # Not quite the literally the counter-term to *should* (rather *shall*), but
41
- # it is close enough for our purposes and conveys the appropriate semantics.
42
- #alias_method :shant, :should!
43
+ # NOTE: It would be nice if their were a single term that
44
+ # meant the opposite of should, rather than a two word compound.
45
+
46
+ # Alias for #should! method.
47
+ alias_method :should_not, :should!
43
48
 
44
49
  # Alias for #should! method.
45
50
  alias_method :shouldnt, :should!
@@ -51,4 +56,4 @@ class ::Object #:nodoc:
51
56
  include AE::Should
52
57
  end
53
58
 
54
- # Copyright (c) 2008,2009 Thomas Sawyer
59
+ # Copyright (c) 2008 Thomas Sawyer, Rubyworks
@@ -2,17 +2,16 @@ require 'ae/assertor'
2
2
 
3
3
  module AE
4
4
 
5
- # = Subjunctive
5
+ # Subjunctive
6
6
  #
7
7
  # Mixin for Assertor that provides additional English-eque verbage
8
8
  # such as 'be' and 'an'. This makes it easier to create assertor
9
9
  # methods of subjunctive terms like 'should'.
10
10
  #
11
- # THIS IS AN OPTIONAL LIBRARY.
12
- #
11
+ # @note THIS IS AN OPTIONAL LIBRARY.
13
12
  module Subjunctive
14
13
 
15
- # Like #assert, except if an argument if provided and no block,
14
+ # Like #assert, except if an argument is provided and no block,
16
15
  # uses #equate? to compare the argument to the receiver. This
17
16
  # allows for statements of the form:
18
17
  #
@@ -38,7 +37,7 @@ module AE
38
37
  alias_method :is , :be
39
38
  alias_method :does, :be
40
39
 
41
- # The indefinite article is like #be, excpet that it compares a lone argument
40
+ # The indefinite article is like #be, except that it compares a lone argument
42
41
  # with #case?, rather than #equate?
43
42
  #
44
43
  def a(*args, &block)
@@ -63,4 +62,4 @@ class AE::Assertor
63
62
  include ::AE::Subjunctive
64
63
  end
65
64
 
66
- # Copyright (c) 2008,2009 Thomas Sawyer
65
+ # Copyright (c) 2008 Thomas Sawyer
@@ -1,5 +1,7 @@
1
1
  module AE
2
+ # Access project metadata.
2
3
  #
4
+ # @return [Hash]
3
5
  def self.metadata
4
6
  @metadata ||= (
5
7
  require 'yaml'
@@ -13,7 +15,7 @@ module AE
13
15
  metadata[key] || super(name)
14
16
  end
15
17
 
16
- # becuase Ruby 1.8~ gets in the way :(
18
+ # Becuase Ruby 1.8~ gets in the way :(
17
19
  VERSION = metadata['version']
18
20
  end
19
21
 
@@ -57,19 +57,25 @@ Another way to get the opposite inference, is to use +not+.
57
57
 
58
58
  10.assert.not == 9
59
59
 
60
+ == Lambda Assertions
60
61
 
61
- == Matchers & Lambda Assertions
62
-
63
- Passing a Proc object or an objec that responds to :to_proc, will use it
64
- as if it were a block of the method. This allows for a simple way to quickly
62
+ Passing +assert+ a `Proc` object, or any object that responds to `#call`,
63
+ will be used as if it were a block. This allows for a simple way to quickly
65
64
  create reusable assertions.
66
65
 
67
66
  palindrome = lambda{ |word| word == word.reverse }
68
67
 
69
68
  "abracarba".assert palindrome
70
69
 
71
- Additionally is the object responds to #matches? then the receiver
72
- will be passed to this method to determine passage.
70
+ The message for a failed assertion will come from calling `#to_s` on the
71
+ object.
72
+
73
+ == RSpec-style Assertion Matchers
74
+
75
+ If an object passed to assert responds to `#matches?` then AE will handle
76
+ the object as an RSpec-style mather, the receiver will be passed to the
77
+ `#matches?` method to determine if the assertion passes and RSpec matcher
78
+ message methods will be used if they are defined.
73
79
 
74
80
  palindrome = Object.new
75
81
 
metadata CHANGED
@@ -1,67 +1,62 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ae
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.8.0
4
5
  prerelease:
5
- version: 1.7.4
6
6
  platform: ruby
7
- authors:
8
- - Thomas Sawyer
7
+ authors:
8
+ - Trans
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-06-08 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-11-04 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: ansi
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &30373300 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
24
22
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: redline
28
23
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *30373300
25
+ - !ruby/object:Gem::Dependency
26
+ name: detroit
27
+ requirement: &30372760 !ruby/object:Gem::Requirement
30
28
  none: false
31
- requirements:
32
- - - ">="
33
- - !ruby/object:Gem::Version
34
- version: "0"
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
35
33
  type: :development
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: qed
39
34
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *30372760
36
+ - !ruby/object:Gem::Dependency
37
+ name: qed
38
+ requirement: &30372260 !ruby/object:Gem::Requirement
41
39
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
46
44
  type: :development
47
- version_requirements: *id003
48
- description: Assertive Expressive is an assertions library specifically designed for reuse by other test frameworks.
49
- email: transfire@gmail.com
45
+ prerelease: false
46
+ version_requirements: *30372260
47
+ description: ! "Assertive Expressive is an assertions library specifically designed
48
+ \nfor reuse by other test frameworks."
49
+ email:
50
+ - transfire@gmail.com
50
51
  executables: []
51
-
52
52
  extensions: []
53
-
54
- extra_rdoc_files:
53
+ extra_rdoc_files:
54
+ - HISTORY.rdoc
55
55
  - README.rdoc
56
- files:
56
+ - NOTICE.rdoc
57
+ files:
57
58
  - .ruby
58
- - qed/01_overview.rdoc
59
- - qed/02_assertion.rdoc
60
- - qed/03_assert.rdoc
61
- - qed/04_subjunctive.rdoc
62
- - qed/05_expect.rdoc
63
- - qed/06_counts.rdoc
64
- - qed/07_matchers.rdoc
59
+ - .yardopts
65
60
  - lib/ae/adapter.rb
66
61
  - lib/ae/adapters/minitest.rb
67
62
  - lib/ae/adapters/rspec.rb
@@ -77,46 +72,45 @@ files:
77
72
  - lib/ae/expect.rb
78
73
  - lib/ae/legacy.rb
79
74
  - lib/ae/must.rb
80
- - lib/ae/ok.rb
81
75
  - lib/ae/pry.rb
82
76
  - lib/ae/should.rb
83
77
  - lib/ae/subjunctive.rb
84
78
  - lib/ae/version.rb
85
79
  - lib/ae.rb
86
80
  - lib/ae.yml
81
+ - qed/01_overview.rdoc
82
+ - qed/02_assertion.rdoc
83
+ - qed/03_assert.rdoc
84
+ - qed/04_subjunctive.rdoc
85
+ - qed/05_expect.rdoc
86
+ - qed/06_counts.rdoc
87
+ - qed/07_matchers.rdoc
87
88
  - HISTORY.rdoc
88
- - APACHE2.txt
89
89
  - README.rdoc
90
90
  - NOTICE.rdoc
91
91
  homepage: http://rubyworks.github.com/ae
92
- licenses:
93
- - Apache 2.0
92
+ licenses:
93
+ - BSD-2-Clause
94
94
  post_install_message:
95
- rdoc_options:
96
- - --title
97
- - AE API
98
- - --main
99
- - README.rdoc
100
- require_paths:
95
+ rdoc_options: []
96
+ require_paths:
101
97
  - lib
102
- required_ruby_version: !ruby/object:Gem::Requirement
98
+ required_ruby_version: !ruby/object:Gem::Requirement
103
99
  none: false
104
- requirements:
105
- - - ">="
106
- - !ruby/object:Gem::Version
107
- version: "0"
108
- required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
109
105
  none: false
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
114
110
  requirements: []
115
-
116
- rubyforge_project: ae
117
- rubygems_version: 1.8.2
111
+ rubyforge_project:
112
+ rubygems_version: 1.8.10
118
113
  signing_key:
119
114
  specification_version: 3
120
115
  summary: Assertive Expressive
121
116
  test_files: []
122
-
@@ -1,206 +0,0 @@
1
- AE is open-source software distributed under the terms of the following license:
2
-
3
-
4
- Apache License
5
- Version 2.0, January 2004
6
- http://www.apache.org/licenses/
7
-
8
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
9
-
10
- 1. Definitions.
11
-
12
- "License" shall mean the terms and conditions for use, reproduction,
13
- and distribution as defined by Sections 1 through 9 of this document.
14
-
15
- "Licensor" shall mean the copyright owner or entity authorized by
16
- the copyright owner that is granting the License.
17
-
18
- "Legal Entity" shall mean the union of the acting entity and all
19
- other entities that control, are controlled by, or are under common
20
- control with that entity. For the purposes of this definition,
21
- "control" means (i) the power, direct or indirect, to cause the
22
- direction or management of such entity, whether by contract or
23
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
24
- outstanding shares, or (iii) beneficial ownership of such entity.
25
-
26
- "You" (or "Your") shall mean an individual or Legal Entity
27
- exercising permissions granted by this License.
28
-
29
- "Source" form shall mean the preferred form for making modifications,
30
- including but not limited to software source code, documentation
31
- source, and configuration files.
32
-
33
- "Object" form shall mean any form resulting from mechanical
34
- transformation or translation of a Source form, including but
35
- not limited to compiled object code, generated documentation,
36
- and conversions to other media types.
37
-
38
- "Work" shall mean the work of authorship, whether in Source or
39
- Object form, made available under the License, as indicated by a
40
- copyright notice that is included in or attached to the work
41
- (an example is provided in the Appendix below).
42
-
43
- "Derivative Works" shall mean any work, whether in Source or Object
44
- form, that is based on (or derived from) the Work and for which the
45
- editorial revisions, annotations, elaborations, or other modifications
46
- represent, as a whole, an original work of authorship. For the purposes
47
- of this License, Derivative Works shall not include works that remain
48
- separable from, or merely link (or bind by name) to the interfaces of,
49
- the Work and Derivative Works thereof.
50
-
51
- "Contribution" shall mean any work of authorship, including
52
- the original version of the Work and any modifications or additions
53
- to that Work or Derivative Works thereof, that is intentionally
54
- submitted to Licensor for inclusion in the Work by the copyright owner
55
- or by an individual or Legal Entity authorized to submit on behalf of
56
- the copyright owner. For the purposes of this definition, "submitted"
57
- means any form of electronic, verbal, or written communication sent
58
- to the Licensor or its representatives, including but not limited to
59
- communication on electronic mailing lists, source code control systems,
60
- and issue tracking systems that are managed by, or on behalf of, the
61
- Licensor for the purpose of discussing and improving the Work, but
62
- excluding communication that is conspicuously marked or otherwise
63
- designated in writing by the copyright owner as "Not a Contribution."
64
-
65
- "Contributor" shall mean Licensor and any individual or Legal Entity
66
- on behalf of whom a Contribution has been received by Licensor and
67
- subsequently incorporated within the Work.
68
-
69
- 2. Grant of Copyright License. Subject to the terms and conditions of
70
- this License, each Contributor hereby grants to You a perpetual,
71
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
72
- copyright license to reproduce, prepare Derivative Works of,
73
- publicly display, publicly perform, sublicense, and distribute the
74
- Work and such Derivative Works in Source or Object form.
75
-
76
- 3. Grant of Patent License. Subject to the terms and conditions of
77
- this License, each Contributor hereby grants to You a perpetual,
78
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
79
- (except as stated in this section) patent license to make, have made,
80
- use, offer to sell, sell, import, and otherwise transfer the Work,
81
- where such license applies only to those patent claims licensable
82
- by such Contributor that are necessarily infringed by their
83
- Contribution(s) alone or by combination of their Contribution(s)
84
- with the Work to which such Contribution(s) was submitted. If You
85
- institute patent litigation against any entity (including a
86
- cross-claim or counterclaim in a lawsuit) alleging that the Work
87
- or a Contribution incorporated within the Work constitutes direct
88
- or contributory patent infringement, then any patent licenses
89
- granted to You under this License for that Work shall terminate
90
- as of the date such litigation is filed.
91
-
92
- 4. Redistribution. You may reproduce and distribute copies of the
93
- Work or Derivative Works thereof in any medium, with or without
94
- modifications, and in Source or Object form, provided that You
95
- meet the following conditions:
96
-
97
- (a) You must give any other recipients of the Work or
98
- Derivative Works a copy of this License; and
99
-
100
- (b) You must cause any modified files to carry prominent notices
101
- stating that You changed the files; and
102
-
103
- (c) You must retain, in the Source form of any Derivative Works
104
- that You distribute, all copyright, patent, trademark, and
105
- attribution notices from the Source form of the Work,
106
- excluding those notices that do not pertain to any part of
107
- the Derivative Works; and
108
-
109
- (d) If the Work includes a "NOTICE" text file as part of its
110
- distribution, then any Derivative Works that You distribute must
111
- include a readable copy of the attribution notices contained
112
- within such NOTICE file, excluding those notices that do not
113
- pertain to any part of the Derivative Works, in at least one
114
- of the following places: within a NOTICE text file distributed
115
- as part of the Derivative Works; within the Source form or
116
- documentation, if provided along with the Derivative Works; or,
117
- within a display generated by the Derivative Works, if and
118
- wherever such third-party notices normally appear. The contents
119
- of the NOTICE file are for informational purposes only and
120
- do not modify the License. You may add Your own attribution
121
- notices within Derivative Works that You distribute, alongside
122
- or as an addendum to the NOTICE text from the Work, provided
123
- that such additional attribution notices cannot be construed
124
- as modifying the License.
125
-
126
- You may add Your own copyright statement to Your modifications and
127
- may provide additional or different license terms and conditions
128
- for use, reproduction, or distribution of Your modifications, or
129
- for any such Derivative Works as a whole, provided Your use,
130
- reproduction, and distribution of the Work otherwise complies with
131
- the conditions stated in this License.
132
-
133
- 5. Submission of Contributions. Unless You explicitly state otherwise,
134
- any Contribution intentionally submitted for inclusion in the Work
135
- by You to the Licensor shall be under the terms and conditions of
136
- this License, without any additional terms or conditions.
137
- Notwithstanding the above, nothing herein shall supersede or modify
138
- the terms of any separate license agreement you may have executed
139
- with Licensor regarding such Contributions.
140
-
141
- 6. Trademarks. This License does not grant permission to use the trade
142
- names, trademarks, service marks, or product names of the Licensor,
143
- except as required for reasonable and customary use in describing the
144
- origin of the Work and reproducing the content of the NOTICE file.
145
-
146
- 7. Disclaimer of Warranty. Unless required by applicable law or
147
- agreed to in writing, Licensor provides the Work (and each
148
- Contributor provides its Contributions) on an "AS IS" BASIS,
149
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
150
- implied, including, without limitation, any warranties or conditions
151
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
152
- PARTICULAR PURPOSE. You are solely responsible for determining the
153
- appropriateness of using or redistributing the Work and assume any
154
- risks associated with Your exercise of permissions under this License.
155
-
156
- 8. Limitation of Liability. In no event and under no legal theory,
157
- whether in tort (including negligence), contract, or otherwise,
158
- unless required by applicable law (such as deliberate and grossly
159
- negligent acts) or agreed to in writing, shall any Contributor be
160
- liable to You for damages, including any direct, indirect, special,
161
- incidental, or consequential damages of any character arising as a
162
- result of this License or out of the use or inability to use the
163
- Work (including but not limited to damages for loss of goodwill,
164
- work stoppage, computer failure or malfunction, or any and all
165
- other commercial damages or losses), even if such Contributor
166
- has been advised of the possibility of such damages.
167
-
168
- 9. Accepting Warranty or Additional Liability. While redistributing
169
- the Work or Derivative Works thereof, You may choose to offer,
170
- and charge a fee for, acceptance of support, warranty, indemnity,
171
- or other liability obligations and/or rights consistent with this
172
- License. However, in accepting such obligations, You may act only
173
- on Your own behalf and on Your sole responsibility, not on behalf
174
- of any other Contributor, and only if You agree to indemnify,
175
- defend, and hold each Contributor harmless for any liability
176
- incurred by, or claims asserted against, such Contributor by reason
177
- of your accepting any such warranty or additional liability.
178
-
179
- END OF TERMS AND CONDITIONS
180
-
181
- APPENDIX: How to apply the Apache License to your work.
182
-
183
- To apply the Apache License to your work, attach the following
184
- boilerplate notice, with the fields enclosed by brackets "[]"
185
- replaced with your own identifying information. (Don't include
186
- the brackets!) The text should be enclosed in the appropriate
187
- comment syntax for the file format. We also recommend that a
188
- file or class name and description of purpose be included on the
189
- same "printed page" as the copyright notice for easier
190
- identification within third-party archives.
191
-
192
- Copyright [yyyy] [name of copyright owner]
193
-
194
- Licensed under the Apache License, Version 2.0 (the "License");
195
- you may not use this file except in compliance with the License.
196
- You may obtain a copy of the License at
197
-
198
- http://www.apache.org/licenses/LICENSE-2.0
199
-
200
- Unless required by applicable law or agreed to in writing, software
201
- distributed under the License is distributed on an "AS IS" BASIS,
202
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
203
- See the License for the specific language governing permissions and
204
- limitations under the License.
205
-
206
-