unparser 0.4.5 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (143) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -3
  3. data/bin/unparser +1 -1
  4. data/lib/unparser.rb +117 -62
  5. data/lib/unparser/ast.rb +1 -2
  6. data/lib/unparser/ast/local_variable_scope.rb +9 -79
  7. data/lib/unparser/buffer.rb +19 -16
  8. data/lib/unparser/cli.rb +84 -77
  9. data/lib/unparser/{cli/color.rb → color.rb} +0 -13
  10. data/lib/unparser/comments.rb +0 -26
  11. data/lib/unparser/constants.rb +4 -53
  12. data/lib/unparser/diff.rb +98 -0
  13. data/lib/unparser/dsl.rb +0 -32
  14. data/lib/unparser/emitter.rb +25 -428
  15. data/lib/unparser/emitter/alias.rb +2 -8
  16. data/lib/unparser/emitter/args.rb +45 -0
  17. data/lib/unparser/emitter/argument.rb +17 -179
  18. data/lib/unparser/emitter/array.rb +27 -0
  19. data/lib/unparser/emitter/array_pattern.rb +29 -0
  20. data/lib/unparser/emitter/assignment.rb +36 -127
  21. data/lib/unparser/emitter/begin.rb +9 -84
  22. data/lib/unparser/emitter/binary.rb +7 -20
  23. data/lib/unparser/emitter/block.rb +57 -41
  24. data/lib/unparser/emitter/case.rb +6 -48
  25. data/lib/unparser/emitter/case_guard.rb +27 -0
  26. data/lib/unparser/emitter/case_match.rb +40 -0
  27. data/lib/unparser/emitter/cbase.rb +1 -3
  28. data/lib/unparser/emitter/class.rb +6 -26
  29. data/lib/unparser/emitter/const_pattern.rb +24 -0
  30. data/lib/unparser/emitter/def.rb +7 -51
  31. data/lib/unparser/emitter/defined.rb +2 -12
  32. data/lib/unparser/emitter/dstr.rb +22 -0
  33. data/lib/unparser/emitter/dsym.rb +41 -0
  34. data/lib/unparser/emitter/flipflop.rb +11 -10
  35. data/lib/unparser/emitter/float.rb +29 -0
  36. data/lib/unparser/emitter/flow_modifier.rb +8 -55
  37. data/lib/unparser/emitter/for.rb +5 -19
  38. data/lib/unparser/emitter/hash.rb +74 -0
  39. data/lib/unparser/emitter/hash_pattern.rb +67 -0
  40. data/lib/unparser/emitter/hookexe.rb +5 -11
  41. data/lib/unparser/emitter/if.rb +9 -73
  42. data/lib/unparser/emitter/in_match.rb +21 -0
  43. data/lib/unparser/emitter/in_pattern.rb +34 -0
  44. data/lib/unparser/emitter/index.rb +21 -88
  45. data/lib/unparser/emitter/kwbegin.rb +31 -0
  46. data/lib/unparser/emitter/lambda.rb +0 -8
  47. data/lib/unparser/emitter/masgn.rb +20 -0
  48. data/lib/unparser/emitter/match.rb +3 -17
  49. data/lib/unparser/emitter/match_alt.rb +23 -0
  50. data/lib/unparser/emitter/match_as.rb +21 -0
  51. data/lib/unparser/emitter/match_rest.rb +26 -0
  52. data/lib/unparser/emitter/match_var.rb +19 -0
  53. data/lib/unparser/emitter/mlhs.rb +40 -0
  54. data/lib/unparser/emitter/module.rb +3 -9
  55. data/lib/unparser/emitter/op_assign.rb +12 -27
  56. data/lib/unparser/emitter/pin.rb +19 -0
  57. data/lib/unparser/emitter/primitive.rb +93 -0
  58. data/lib/unparser/emitter/range.rb +35 -0
  59. data/lib/unparser/emitter/regexp.rb +35 -0
  60. data/lib/unparser/emitter/repetition.rb +17 -57
  61. data/lib/unparser/emitter/rescue.rb +1 -97
  62. data/lib/unparser/emitter/root.rb +17 -1
  63. data/lib/unparser/emitter/send.rb +10 -219
  64. data/lib/unparser/emitter/simple.rb +33 -0
  65. data/lib/unparser/emitter/splat.rb +2 -18
  66. data/lib/unparser/emitter/super.rb +1 -29
  67. data/lib/unparser/emitter/undef.rb +1 -9
  68. data/lib/unparser/emitter/variable.rb +1 -31
  69. data/lib/unparser/emitter/xstr.rb +72 -0
  70. data/lib/unparser/emitter/yield.rb +1 -9
  71. data/lib/unparser/generation.rb +250 -0
  72. data/lib/unparser/node_details.rb +21 -0
  73. data/lib/unparser/node_details/send.rb +62 -0
  74. data/lib/unparser/node_helpers.rb +49 -8
  75. data/lib/unparser/validation.rb +151 -0
  76. data/lib/unparser/writer.rb +15 -0
  77. data/lib/unparser/writer/binary.rb +99 -0
  78. data/lib/unparser/writer/dynamic_string.rb +229 -0
  79. data/lib/unparser/writer/resbody.rb +40 -0
  80. data/lib/unparser/writer/rescue.rb +39 -0
  81. data/lib/unparser/writer/send.rb +124 -0
  82. data/lib/unparser/{emitter → writer}/send/attribute_assignment.rb +11 -26
  83. data/lib/unparser/writer/send/binary.rb +27 -0
  84. data/lib/unparser/writer/send/conditional.rb +25 -0
  85. data/lib/unparser/writer/send/regular.rb +33 -0
  86. data/lib/unparser/{emitter → writer}/send/unary.rb +10 -17
  87. metadata +152 -101
  88. data/.circleci/config.yml +0 -41
  89. data/.gitignore +0 -37
  90. data/.rspec +0 -4
  91. data/.rubocop.yml +0 -9
  92. data/Changelog.md +0 -146
  93. data/Gemfile +0 -11
  94. data/Gemfile.lock +0 -180
  95. data/LICENSE +0 -20
  96. data/Rakefile +0 -22
  97. data/config/devtools.yml +0 -2
  98. data/config/flay.yml +0 -3
  99. data/config/flog.yml +0 -2
  100. data/config/mutant.yml +0 -6
  101. data/config/reek.yml +0 -98
  102. data/config/rubocop.yml +0 -122
  103. data/config/yardstick.yml +0 -2
  104. data/lib/unparser/cli/differ.rb +0 -152
  105. data/lib/unparser/cli/source.rb +0 -267
  106. data/lib/unparser/emitter/empty.rb +0 -23
  107. data/lib/unparser/emitter/ensure.rb +0 -37
  108. data/lib/unparser/emitter/literal.rb +0 -10
  109. data/lib/unparser/emitter/literal/array.rb +0 -29
  110. data/lib/unparser/emitter/literal/dynamic.rb +0 -53
  111. data/lib/unparser/emitter/literal/dynamic_body.rb +0 -132
  112. data/lib/unparser/emitter/literal/execute_string.rb +0 -38
  113. data/lib/unparser/emitter/literal/hash.rb +0 -156
  114. data/lib/unparser/emitter/literal/primitive.rb +0 -145
  115. data/lib/unparser/emitter/literal/range.rb +0 -36
  116. data/lib/unparser/emitter/literal/regexp.rb +0 -114
  117. data/lib/unparser/emitter/literal/singleton.rb +0 -26
  118. data/lib/unparser/emitter/meta.rb +0 -16
  119. data/lib/unparser/emitter/redo.rb +0 -25
  120. data/lib/unparser/emitter/resbody.rb +0 -76
  121. data/lib/unparser/emitter/retry.rb +0 -25
  122. data/lib/unparser/emitter/send/binary.rb +0 -57
  123. data/lib/unparser/emitter/send/conditional.rb +0 -40
  124. data/lib/unparser/emitter/send/regular.rb +0 -40
  125. data/lib/unparser/preprocessor.rb +0 -159
  126. data/spec/integration/unparser/corpus_spec.rb +0 -111
  127. data/spec/integrations.yml +0 -87
  128. data/spec/spec_helper.rb +0 -20
  129. data/spec/unit/unparser/buffer/append_spec.rb +0 -24
  130. data/spec/unit/unparser/buffer/append_without_prefix_spec.rb +0 -23
  131. data/spec/unit/unparser/buffer/capture_content_spec.rb +0 -17
  132. data/spec/unit/unparser/buffer/content_spec.rb +0 -38
  133. data/spec/unit/unparser/buffer/fresh_line_spec.rb +0 -20
  134. data/spec/unit/unparser/buffer/indent_spec.rb +0 -20
  135. data/spec/unit/unparser/buffer/nl_spec.rb +0 -16
  136. data/spec/unit/unparser/buffer/unindent_spec.rb +0 -20
  137. data/spec/unit/unparser/comments/consume_spec.rb +0 -22
  138. data/spec/unit/unparser/comments/take_all_spec.rb +0 -19
  139. data/spec/unit/unparser/comments/take_before_spec.rb +0 -46
  140. data/spec/unit/unparser/comments/take_eol_comments_spec.rb +0 -32
  141. data/spec/unit/unparser/emitter/class_methods/handle_spec.rb +0 -17
  142. data/spec/unit/unparser_spec.rb +0 -1841
  143. data/unparser.gemspec +0 -30
@@ -1,41 +0,0 @@
1
- defaults: &defaults
2
- working_directory: ~/unparser
3
- docker:
4
- - image: circleci/ruby:2.5.5
5
- version: 2
6
- jobs:
7
- unit_specs:
8
- <<: *defaults
9
- steps:
10
- - checkout
11
- - run: bundle install
12
- - run: bundle exec rspec spec/unit
13
- integration_specs:
14
- <<: *defaults
15
- steps:
16
- - checkout
17
- - run: bundle install
18
- - run: bundle exec rspec spec/integration
19
- metrics:
20
- <<: *defaults
21
- steps:
22
- - checkout
23
- - run: bundle install
24
- - run: bundle exec rake metrics:rubocop
25
- - run: bundle exec rake metrics:reek
26
- - run: bundle exec rake metrics:flay
27
- - run: bundle exec rake metrics:flog
28
- mutant:
29
- <<: *defaults
30
- steps:
31
- - checkout
32
- - run: bundle install
33
- - run: bundle exec mutant --since origin/master --zombie -- 'Unparser*'
34
- workflows:
35
- version: 2
36
- test:
37
- jobs:
38
- - unit_specs
39
- - integration_specs
40
- - metrics
41
- - mutant
data/.gitignore DELETED
@@ -1,37 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.sw[op]
15
-
16
- ## Rubinius
17
- *.rbc
18
- .rbx
19
-
20
- ## PROJECT::GENERAL
21
- *.gem
22
- coverage
23
- profiling
24
- turbulence
25
- rdoc
26
- pkg
27
- tmp
28
- doc
29
- log
30
- .yardoc
31
- measurements
32
-
33
- ## BUNDLER
34
- .bundle
35
-
36
- ## PROJECT::SPECIFIC
37
- /vendor
data/.rspec DELETED
@@ -1,4 +0,0 @@
1
- --color
2
- --format progress
3
- --warnings
4
- --order random
@@ -1,9 +0,0 @@
1
- AllCops:
2
- Include:
3
- - 'Gemfile'
4
- Exclude:
5
- - 'Gemfile.devtools'
6
- - 'vendor/**/*'
7
- - 'benchmarks/**/*'
8
- - 'tmp/**/*'
9
- TargetRubyVersion: 2.5
@@ -1,146 +0,0 @@
1
- # v0.4.5 2019-05-10
2
-
3
- * Bump parser dependency to ~> 2.6.3
4
-
5
- # v0.4.4 2019-03-27
6
-
7
- * Bump parser dependency to ~> 2.6.2
8
-
9
- # v0.4.3 2019-02-24
10
-
11
- * Bump parser dependency to ~> 2.6.0
12
-
13
- # v0.4.2 2018-12-04
14
-
15
- * Drop hard ruby version requirement. Still officially I'll only support 2.5.
16
-
17
- # v0.4.1 2018-12-03
18
-
19
- * Fix unparsing of `def foo(bar: bar())`
20
-
21
- # v0.4.0 2018-12-03
22
-
23
- * Change to modern AST format.
24
- * Add experimental `Unparser.{parser,parse,parse_with_comments}`
25
-
26
- # v0.3.0 2018-11-16
27
-
28
- * Drop support for Ruby < 2.5
29
-
30
- # v0.2.7 2018-07-18
31
-
32
- * Add emitters for `__FILE__` and `__LINE__`
33
- https://github.com/mbj/unparser/pull/70
34
-
35
- # v0.2.7 2018-02-09
36
-
37
- * Allow ruby_parser 2.5
38
-
39
- # v0.2.6 2017-05-30
40
-
41
- * Reduce memory consumption via not requirering all possible parsers
42
- * Allow ruby 2.4
43
- * Update parser dependency
44
-
45
- # v0.2.5 2016-01-24
46
-
47
- * Add support for ruby 2.3
48
- * Bump parser dependency to ~>2.3.0
49
- * Trade uglier for more correct dstring / dsyms
50
- * Drop support for ruby < 2.1
51
-
52
- # v0.2.4 2015-05-30
53
-
54
- * Relax parser dependency to ~>2.2.2
55
-
56
- # v0.2.3 2015-04-28
57
-
58
- * Compatibility with parser ~>2.2.2, >2.2.2.2
59
-
60
- # v0.2.2 2015-01-14
61
-
62
- * Really add back unofficial support for 1.9.3
63
-
64
- # v0.2.1 2015-01-14
65
-
66
- * Add back unofficial support for 1.9.3
67
-
68
- # v0.2.0 2015-01-12
69
-
70
- * Bump required ruby version to 2.0.0
71
-
72
- # v0.1.17 2015-01-10
73
-
74
- * Fix jruby complex / rational generation edge case
75
- * Support generation under MRI 2.2
76
-
77
- # v0.1.16 2014-11-07
78
-
79
- * Add emitter for complex and rational literals
80
- * Fix edge cases for MLHS
81
- * Fix differencies from 2.2.pre7 series of parser
82
-
83
- # v0.1.15 2014-09-24
84
-
85
- * Handle syntax edge case for MRI 2.1.3 parser.
86
-
87
- # v0.1.14 2014-06-15
88
-
89
- * Fix emitter to correctly unparse foo[] = 1
90
-
91
- # v0.1.13 2014-06-08
92
-
93
- * Add support for rubinius.
94
-
95
- # v0.1.12 2014-04-13
96
-
97
- * Add support for 2.1 kwsplat
98
-
99
- # v0.1.11 2014-04-11
100
-
101
- * Fix performance on local variable scope inspection
102
-
103
- # v0.1.10 2014-04-06
104
-
105
- * Fix emit of inline rescues in combination with control flow keywords.
106
- * Begin corpus testing on rake ci against rubyspec
107
-
108
- # v0.1.9 2014-01-14
109
-
110
- * Fix emit of proc { |(a)| }
111
-
112
- # v0.1.8 2014-01-11
113
-
114
- * Fix all bugs found while round tripping rubyspec.
115
-
116
- # v0.1.7 2014-01-03
117
-
118
- * Add back support for root nodes of type resbody https://github.com/mbj/unparser/issues/24
119
-
120
- # v0.1.6 2013-12-31
121
-
122
- * Emit 1.9 style hashes where possible: https://github.com/mbj/unparser/pull/23
123
- * Fix invalid quoting of hash keys: https://github.com/mbj/unparser/issues/22
124
- * Fix crash on take before introduced by code refactorings: https://github.com/mbj/unparser/issues/20
125
- * Fix crash on comment reproduction https://github.com/mbj/unparser/issues/17
126
-
127
- # v0.1.5 2013-11-01
128
-
129
- * Fix crash with comment reproduction.
130
-
131
- # v0.1.4 2013-11-01
132
-
133
- * Code cleanups.
134
- * Remove warnings.
135
-
136
- # v0.0.3 2013-06-17
137
-
138
- * Adjust to changes in parser 2.0.0.beta5 => beta6
139
-
140
- # v0.0.2 2013-06-17
141
-
142
- Crappy release
143
-
144
- # v0.0.1 2013-06-15
145
-
146
- Initial release
data/Gemfile DELETED
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
6
-
7
- gem 'mutant', git: 'https://github.com/mbj/mutant.git'
8
-
9
- source 'https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev' do
10
- gem 'mutant-license'
11
- end
@@ -1,180 +0,0 @@
1
- GIT
2
- remote: https://github.com/mbj/mutant.git
3
- revision: e07953eeb3a011d9c3496d6594fed263375fec59
4
- specs:
5
- mutant (0.8.25)
6
- abstract_type (~> 0.0.7)
7
- adamantium (~> 0.2.0)
8
- anima (~> 0.3.1)
9
- ast (~> 2.2)
10
- concord (~> 0.1.5)
11
- diff-lcs (~> 1.3)
12
- equalizer (~> 0.0.9)
13
- ice_nine (~> 0.11.1)
14
- memoizable (~> 0.4.2)
15
- mutant-license (~> 0.0.1)
16
- parser (~> 2.6.0)
17
- procto (~> 0.0.2)
18
- unparser (~> 0.4.3)
19
- mutant-rspec (0.8.25)
20
- mutant (~> 0.8.25)
21
- rspec-core (>= 3.8.0, < 4.0.0)
22
-
23
- PATH
24
- remote: .
25
- specs:
26
- unparser (0.4.4)
27
- abstract_type (~> 0.0.7)
28
- adamantium (~> 0.2.0)
29
- concord (~> 0.1.5)
30
- diff-lcs (~> 1.3)
31
- equalizer (~> 0.0.9)
32
- parser (~> 2.6.3)
33
- procto (~> 0.0.2)
34
-
35
- GEM
36
- remote: https://rubygems.org/
37
- remote: https://oss:Px2ENN7S91OmWaD5G7MIQJi1dmtmYrEh@gem.mutant.dev/
38
- specs:
39
- abstract_type (0.0.7)
40
- adamantium (0.2.0)
41
- ice_nine (~> 0.11.0)
42
- memoizable (~> 0.4.0)
43
- anima (0.3.1)
44
- abstract_type (~> 0.0.7)
45
- adamantium (~> 0.2)
46
- equalizer (~> 0.0.11)
47
- ast (2.4.0)
48
- axiom-types (0.1.1)
49
- descendants_tracker (~> 0.0.4)
50
- ice_nine (~> 0.11.0)
51
- thread_safe (~> 0.3, >= 0.3.1)
52
- codeclimate-engine-rb (0.4.1)
53
- virtus (~> 1.0)
54
- coercible (1.0.0)
55
- descendants_tracker (~> 0.0.1)
56
- concord (0.1.5)
57
- adamantium (~> 0.2.0)
58
- equalizer (~> 0.0.9)
59
- descendants_tracker (0.0.4)
60
- thread_safe (~> 0.3, >= 0.3.1)
61
- devtools (0.1.23)
62
- abstract_type (~> 0.0.7)
63
- adamantium (~> 0.2.0)
64
- anima (~> 0.3.0)
65
- concord (~> 0.1.5)
66
- flay (~> 2.12.0)
67
- flog (~> 4.6.2)
68
- mutant (~> 0.8.24)
69
- mutant-rspec (~> 0.8.24)
70
- procto (~> 0.0.3)
71
- rake (~> 12.3.0)
72
- reek (~> 5.3.0)
73
- rspec (~> 3.8.0)
74
- rspec-core (~> 3.8.0)
75
- rspec-its (~> 1.2.0)
76
- rubocop (~> 0.61.1)
77
- simplecov (~> 0.16.1)
78
- yard (~> 0.9.16)
79
- yardstick (~> 0.9.9)
80
- diff-lcs (1.3)
81
- docile (1.3.1)
82
- equalizer (0.0.11)
83
- erubis (2.7.0)
84
- flay (2.12.0)
85
- erubis (~> 2.7.0)
86
- path_expander (~> 1.0)
87
- ruby_parser (~> 3.0)
88
- sexp_processor (~> 4.0)
89
- flog (4.6.2)
90
- path_expander (~> 1.0)
91
- ruby_parser (~> 3.1, > 3.1.0)
92
- sexp_processor (~> 4.8)
93
- ice_nine (0.11.2)
94
- jaro_winkler (1.5.2)
95
- json (2.2.0)
96
- kwalify (0.7.2)
97
- memoizable (0.4.2)
98
- thread_safe (~> 0.3, >= 0.3.1)
99
- morpher (0.2.6)
100
- abstract_type (~> 0.0.7)
101
- adamantium (~> 0.2.0)
102
- anima (~> 0.3.0)
103
- ast (~> 2.2)
104
- concord (~> 0.1.5)
105
- equalizer (~> 0.0.9)
106
- ice_nine (~> 0.11.0)
107
- procto (~> 0.0.2)
108
- mutant-license (0.0.1)
109
- parallel (1.17.0)
110
- parser (2.6.3.0)
111
- ast (~> 2.4.0)
112
- path_expander (1.0.3)
113
- powerpack (0.1.2)
114
- procto (0.0.3)
115
- psych (3.1.0)
116
- rainbow (3.0.0)
117
- rake (12.3.2)
118
- reek (5.3.2)
119
- codeclimate-engine-rb (~> 0.4.0)
120
- kwalify (~> 0.7.0)
121
- parser (>= 2.5.0.0, < 2.7, != 2.5.1.1)
122
- psych (~> 3.1.0)
123
- rainbow (>= 2.0, < 4.0)
124
- rspec (3.8.0)
125
- rspec-core (~> 3.8.0)
126
- rspec-expectations (~> 3.8.0)
127
- rspec-mocks (~> 3.8.0)
128
- rspec-core (3.8.0)
129
- rspec-support (~> 3.8.0)
130
- rspec-expectations (3.8.3)
131
- diff-lcs (>= 1.2.0, < 2.0)
132
- rspec-support (~> 3.8.0)
133
- rspec-its (1.2.0)
134
- rspec-core (>= 3.0.0)
135
- rspec-expectations (>= 3.0.0)
136
- rspec-mocks (3.8.0)
137
- diff-lcs (>= 1.2.0, < 2.0)
138
- rspec-support (~> 3.8.0)
139
- rspec-support (3.8.0)
140
- rubocop (0.61.1)
141
- jaro_winkler (~> 1.5.1)
142
- parallel (~> 1.10)
143
- parser (>= 2.5, != 2.5.1.1)
144
- powerpack (~> 0.1)
145
- rainbow (>= 2.2.2, < 4.0)
146
- ruby-progressbar (~> 1.7)
147
- unicode-display_width (~> 1.4.0)
148
- ruby-progressbar (1.10.0)
149
- ruby_parser (3.13.1)
150
- sexp_processor (~> 4.9)
151
- sexp_processor (4.12.0)
152
- simplecov (0.16.1)
153
- docile (~> 1.1)
154
- json (>= 1.8, < 3)
155
- simplecov-html (~> 0.10.0)
156
- simplecov-html (0.10.2)
157
- thread_safe (0.3.6)
158
- unicode-display_width (1.4.1)
159
- virtus (1.0.5)
160
- axiom-types (~> 0.1)
161
- coercible (~> 1.0)
162
- descendants_tracker (~> 0.0, >= 0.0.3)
163
- equalizer (~> 0.0, >= 0.0.9)
164
- yard (0.9.19)
165
- yardstick (0.9.9)
166
- yard (~> 0.8, >= 0.8.7.2)
167
-
168
- PLATFORMS
169
- ruby
170
-
171
- DEPENDENCIES
172
- anima (~> 0.3.1)
173
- devtools (~> 0.1.23)
174
- morpher (~> 0.2.6)
175
- mutant!
176
- mutant-license!
177
- unparser!
178
-
179
- BUNDLED WITH
180
- 1.17.3
data/LICENSE DELETED
@@ -1,20 +0,0 @@
1
- Copyright (c) 2013 Markus Schirp
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.