xaiml 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.reek.yml +95 -0
- data/.rspec +2 -0
- data/.rubocop.yml +21 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +49 -0
- data/Gemfile +4 -0
- data/README.md +35 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/xaiml/document.rb +87 -0
- data/lib/xaiml/element/base.rb +19 -0
- data/lib/xaiml/element/category.rb +12 -0
- data/lib/xaiml/element/condition.rb +7 -0
- data/lib/xaiml/element/conditional_random.rb +7 -0
- data/lib/xaiml/element/ext.rb +7 -0
- data/lib/xaiml/element/topic.rb +7 -0
- data/lib/xaiml/element.rb +28 -0
- data/lib/xaiml/exceptions.rb +4 -0
- data/lib/xaiml/version.rb +3 -0
- data/lib/xaiml.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/bin/coderay +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/htmldiff +29 -0
- data/vendor/bundle/ruby/2.5.0/bin/ldiff +29 -0
- data/vendor/bundle/ruby/2.5.0/bin/pry +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/rake +27 -0
- data/vendor/bundle/ruby/2.5.0/bin/rspec +27 -0
- data/vendor/bundle/ruby/2.5.0/cache/coderay-1.1.2.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/diff-lcs-1.3.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/method_source-0.9.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/ox-2.10.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/pry-0.11.3.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rake-10.5.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-3.8.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-core-3.8.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-expectations-3.8.1.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-mocks-3.8.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/cache/rspec-support-3.8.0.gem +0 -0
- data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/ox-2.10.0/gem.build_complete +0 -0
- data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/ox-2.10.0/gem_make.out +93 -0
- data/vendor/bundle/ruby/2.5.0/extensions/x86_64-darwin-17/2.5.0-static/ox-2.10.0/ox.bundle +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/MIT-LICENSE +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/README_INDEX.rdoc +123 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/bin/coderay +215 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/duo.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/_map.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/comment_filter.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/count.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/debug.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/debug_lint.rb +63 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/div.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/encoder.rb +190 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/filter.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/html/css.rb +65 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/html/numbering.rb +108 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/html/output.rb +166 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/html.rb +333 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/json.rb +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/lines_of_code.rb +45 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/lint.rb +59 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/null.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/page.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/span.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/statistic.rb +95 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/terminal.rb +195 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/text.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/token_kind_filter.rb +111 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/xml.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders/yaml.rb +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/encoders.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/for_redcloth.rb +95 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/helpers/file_type.rb +151 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/helpers/plugin.rb +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/helpers/plugin_host.rb +221 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/helpers/word_list.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/_map.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/c.rb +189 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/clojure.rb +217 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/cpp.rb +217 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/css.rb +196 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/debug.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/delphi.rb +144 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/diff.rb +221 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/erb.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/go.rb +208 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/groovy.rb +268 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/haml.rb +168 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/html.rb +275 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/java/builtin_types.rb +421 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/java.rb +174 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/java_script.rb +237 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/json.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/lua.rb +280 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/php.rb +527 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/python.rb +287 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/raydebug.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/ruby/patterns.rb +178 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/ruby/string_state.rb +79 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/ruby.rb +477 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/sass.rb +232 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/scanner.rb +337 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/sql.rb +169 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/taskpaper.rb +36 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/text.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/xml.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners/yaml.rb +140 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/scanners.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/styles/_map.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/styles/alpha.rb +153 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/styles/style.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/styles.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/token_kinds.rb +85 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/tokens.rb +161 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/tokens_proxy.rb +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay/version.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/coderay-1.1.2/lib/coderay.rb +284 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/.rspec +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Code-of-Conduct.md +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Contributing.md +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/History.md +220 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/License.md +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Manifest.txt +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/README.rdoc +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/Rakefile +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/autotest/discover.rb +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/htmldiff +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/bin/ldiff +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/COPYING.txt +339 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/docs/artistic.txt +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/array.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/block.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/callbacks.rb +322 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/change.rb +181 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/htmldiff.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/hunk.rb +276 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/internals.rb +307 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/ldiff.rb +167 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs/string.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff/lcs.rb +725 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/lib/diff-lcs.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/change_spec.rb +65 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/diff_spec.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds1.csv +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/fixtures/ds2.csv +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/hunk_spec.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/issues_spec.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/lcs_spec.rb +56 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/ldiff_spec.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/patch_spec.rb +422 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/sdiff_spec.rb +214 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/spec_helper.rb +321 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_balanced_spec.rb +310 -0
- data/vendor/bundle/ruby/2.5.0/gems/diff-lcs-1.3/spec/traverse_sequences_spec.rb +139 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/.gemtest +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/.travis.yml +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/.yardopts +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/Gemfile +2 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/LICENSE +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/README.markdown +91 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/Rakefile +80 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/lib/method_source/code_helpers.rb +154 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/lib/method_source/source_location.rb +138 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/lib/method_source/version.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/lib/method_source.rb +141 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/method_source.gemspec +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/spec/method_source/code_helpers_spec.rb +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/spec/method_source_spec.rb +143 -0
- data/vendor/bundle/ruby/2.5.0/gems/method_source-0.9.0/spec/spec_helper.rb +101 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/CHANGELOG.md +455 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/LICENSE +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/README.md +307 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/.sitearchdir.time +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/Makefile +264 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/attr.h +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/base64.c +99 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/base64.h +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/base64.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/buf.h +160 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/builder.c +937 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/builder.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/cache.c +160 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/cache.h +19 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/cache.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/cache8.c +109 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/cache8.h +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/cache8.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/dump.c +1321 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/dump.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/err.c +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/err.h +36 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/err.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/extconf.rb +67 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/gen_load.c +492 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/gen_load.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/hash_load.c +228 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/hash_load.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/helper.h +91 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/obj_load.c +986 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/obj_load.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/ox.bundle +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/ox.c +1562 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/ox.h +279 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/ox.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/parse.c +1177 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/parse.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax.c +1750 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax.h +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_as.c +276 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_as.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_buf.c +228 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_buf.h +222 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_buf.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_has.h +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_hint.c +216 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_hint.h +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_hint.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/sax_stack.h +85 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/special.c +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/special.h +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/special.o +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/ext/ox/type.h +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/bag.rb +99 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/cdata.rb +12 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/comment.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/doctype.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/document.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/element.rb +319 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/error.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/hasattrs.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/instruct.rb +36 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/node.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/raw.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/sax.rb +113 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/version.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox/xmlrpc_adapter.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox.bundle +0 -0
- data/vendor/bundle/ruby/2.5.0/gems/ox-2.10.0/lib/ox.rb +79 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/CHANGELOG.md +797 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/LICENSE +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/README.md +407 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/bin/pry +12 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/basic_object.rb +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/cli.rb +225 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/code/code_file.rb +109 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/code/code_range.rb +71 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/code/loc.rb +92 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/code.rb +353 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/code_object.rb +195 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/color_printer.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/command.rb +716 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/command_set.rb +450 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/amend_line.rb +99 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/bang.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/bang_pry.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/cat/abstract_formatter.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/cat/exception_formatter.rb +78 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/cat/file_formatter.rb +71 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/cat/input_expression_formatter.rb +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/cat.rb +62 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/cd.rb +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/change_inspector.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/change_prompt.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/code_collector.rb +167 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/disable_pry.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/disabled_commands.rb +2 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/easter_eggs.rb +112 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/edit/exception_patcher.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/edit/file_and_line_locator.rb +36 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/edit.rb +199 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/exit.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/exit_all.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/exit_program.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/find_method.rb +193 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/fix_indent.rb +19 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gem_cd.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gem_install.rb +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gem_list.rb +33 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gem_open.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gem_readme.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gem_search.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/gist.rb +101 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/help.rb +164 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/hist.rb +180 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/import_set.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/install_command.rb +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/jump_to.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/list_inspectors.rb +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/list_prompts.rb +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/constants.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/formatter.rb +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/globals.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/grep.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/instance_vars.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/interrogatable.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/jruby_hacks.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/local_names.rb +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/local_vars.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/ls_entity.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/methods.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/methods_helper.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls/self_methods.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ls.rb +116 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/nesting.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/play.rb +103 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/pry_backtrace.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/pry_version.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/raise_up.rb +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/reload_code.rb +62 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/reset.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/ri.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/save_file.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/shell_command.rb +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/shell_mode.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/show_doc.rb +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/show_info.rb +209 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/show_input.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/show_source.rb +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/simple_prompt.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/stat.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/switch_to.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/toggle_color.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/watch_expression/expression.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/watch_expression.rb +105 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/whereami.rb +197 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands/wtf.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/commands.rb +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/config/behavior.rb +231 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/config/convenience.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/config/default.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/config/memoization.rb +44 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/config.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/core_extensions.rb +141 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/editor.rb +135 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/exceptions.rb +78 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/forwardable.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers/base_helpers.rb +71 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers/command_helpers.rb +156 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers/documentation_helpers.rb +76 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers/options_helpers.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers/table.rb +109 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers/text.rb +116 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/helpers.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/history.rb +148 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/history_array.rb +121 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/hooks.rb +171 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/indent.rb +410 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/input_completer.rb +260 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/input_lock.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/inspector.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/last_exception.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/method/disowned.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/method/patcher.rb +122 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/method/weird_method_locator.rb +199 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/method.rb +546 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/object_path.rb +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/output.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/pager.rb +242 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/platform.rb +93 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/plugins.rb +118 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/prompt.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/pry_class.rb +401 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/pry_instance.rb +666 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/rbx_path.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/repl.rb +232 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/repl_file_loader.rb +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/rubygem.rb +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/slop/LICENSE +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/slop/commands.rb +196 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/slop/option.rb +208 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/slop.rb +661 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/terminal.rb +90 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/testable/evalable.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/testable/mockable.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/testable/pry_tester.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/testable/utility.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/testable/variables.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/testable.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/version.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/wrapped_module/candidate.rb +131 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry/wrapped_module.rb +378 -0
- data/vendor/bundle/ruby/2.5.0/gems/pry-0.11.3/lib/pry.rb +162 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/.autotest +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/.rubocop.yml +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/.togglerc +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/CONTRIBUTING.rdoc +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/History.rdoc +659 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/MIT-LICENSE +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/Manifest.txt +166 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/README.rdoc +139 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/Rakefile +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/bin/rake +33 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/command_line_usage.rdoc +158 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/example/Rakefile1 +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/example/Rakefile2 +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/example/a.c +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/example/b.c +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/example/main.c +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/glossary.rdoc +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/jamis.rb +591 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/proto_rake.rdoc +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/rake.1 +141 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/rakefile.rdoc +624 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/rational.rdoc +151 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.14.rdoc +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.4.15.rdoc +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.0.rdoc +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.3.rdoc +78 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.5.4.rdoc +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.6.0.rdoc +141 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.0.rdoc +119 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.1.rdoc +59 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.2.rdoc +121 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.7.3.rdoc +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.0.rdoc +114 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.2.rdoc +165 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.3.rdoc +112 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.4.rdoc +147 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.5.rdoc +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.6.rdoc +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.8.7.rdoc +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.0.rdoc +112 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.1.rdoc +52 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.2.rdoc +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.2.rdoc +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.3.rdoc +102 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.4.rdoc +60 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.5.rdoc +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-0.9.6.rdoc +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.0.rdoc +178 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.1.rdoc +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.2.rdoc +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.0.3.rdoc +191 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/doc/release_notes/rake-10.1.0.rdoc +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/alt_system.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/application.rb +790 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/backtrace.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/clean.rb +76 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/cloneable.rb +16 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/.document +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/compositepublisher.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/ftptools.rb +137 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/publisher.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/rubyforgepublisher.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/sshpublisher.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/contrib/sys.rb +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/cpu_counter.rb +125 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/default_loader.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/dsl_definition.rb +201 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/early_time.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/core.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/module.rb +2 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/pathname.rb +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/string.rb +175 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ext/time.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_creation_task.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_list.rb +428 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_task.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_utils.rb +128 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/file_utils_ext.rb +144 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/gempackagetask.rb +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/invocation_chain.rb +56 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/invocation_exception_mixin.rb +16 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/late_time.rb +17 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/linked_list.rb +103 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/loaders/makefile.rb +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/multi_task.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/name_space.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/packagetask.rb +199 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/pathmap.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/phony.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/private_reader.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/promise.rb +99 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/pseudo_status.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rake_module.rb +38 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rake_test_loader.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rdoctask.rb +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/ruby182_test_unit_fix.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/runtest.rb +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/scope.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task.rb +383 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task_argument_error.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task_arguments.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/task_manager.rb +307 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/tasklib.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/testtask.rb +213 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/thread_history_display.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/thread_pool.rb +164 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/trace_output.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/version.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake/win32.rb +56 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/lib/rake.rb +79 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/rakelib/publish.rake +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/rakelib/test_times.rake +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/file_creation.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/helper.rb +129 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/support/rakefile_definitions.rb +478 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/support/ruby_runner.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_private_reader.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_application.rb +643 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_application_options.rb +468 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_backtrace.rb +119 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_clean.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_cpu_counter.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_definitions.rb +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_directory_task.rb +76 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_dsl.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_early_time.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_extension.rb +59 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_creation_task.rb +56 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_list.rb +670 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_list_path_map.rb +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_task.rb +197 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_file_utils.rb +314 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_ftp_file.rb +74 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_functional.rb +482 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_invocation_chain.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_late_time.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_linked_list.rb +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_makefile_loader.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_multi_task.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_name_space.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_package_task.rb +79 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_path_map.rb +168 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_path_map_explode.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_path_map_partial.rb +18 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_pathname_extensions.rb +15 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_pseudo_status.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_rake_test_loader.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_reduce_compat.rb +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_require.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_rules.rb +388 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_scope.rb +44 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task.rb +393 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_argument_parsing.rb +119 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_arguments.rb +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_lib.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_manager.rb +178 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_manager_argument_resolution.rb +19 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_task_with_arguments.rb +172 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_test_task.rb +146 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_thread_pool.rb +145 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_top_level_functions.rb +71 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_rake_win32.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_thread_history_display.rb +101 -0
- data/vendor/bundle/ruby/2.5.0/gems/rake-10.5.0/test/test_trace_output.rb +52 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.8.0/LICENSE.md +27 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.8.0/README.md +43 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.8.0/lib/rspec/version.rb +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-3.8.0/lib/rspec.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/.yardopts +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/Changelog.md +2221 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/LICENSE.md +26 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/README.md +384 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/exe/rspec +4 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/autorun.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/coordinator.rb +62 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/example_minimizer.rb +173 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/fork_runner.rb +134 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/server.rb +61 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/shell_command.rb +126 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/shell_runner.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/bisect/utilities.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration.rb +2289 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/configuration_options.rb +233 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/drb.rb +113 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/dsl.rb +98 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/example.rb +653 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/example_group.rb +885 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/example_status_persister.rb +235 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/filter_manager.rb +231 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/flat_map.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_bisect_formatter.rb +45 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_formatter.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/base_text_formatter.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/bisect_drb_formatter.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/bisect_progress_formatter.rb +157 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/console_codes.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/deprecation_formatter.rb +223 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/documentation_formatter.rb +70 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/exception_presenter.rb +497 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/fallback_message_formatter.rb +28 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/helpers.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_formatter.rb +153 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_printer.rb +414 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/html_snippet_extractor.rb +120 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/json_formatter.rb +102 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/profile_formatter.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/progress_formatter.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/protocol.rb +182 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/snippet_extractor.rb +134 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters/syntax_highlighter.rb +91 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/formatters.rb +269 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/hooks.rb +624 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/invocations.rb +87 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/memoized_helpers.rb +535 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/metadata.rb +499 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/metadata_filter.rb +255 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/minitest_assertions_adapter.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/flexmock.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/mocha.rb +57 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/null.rb +14 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/rr.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/mocking_adapters/rspec.rb +32 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/notifications.rb +521 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/option_parser.rb +309 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/ordering.rb +158 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/output_wrapper.rb +29 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/pending.rb +165 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/profiler.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer/.rspec +1 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer/spec/spec_helper.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/project_initializer.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/rake_task.rb +168 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/reporter.rb +257 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/ruby_project.rb +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/runner.rb +199 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/sandbox.rb +37 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/set.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/shared_context.rb +55 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/shared_example_group.rb +269 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/shell_escape.rb +49 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/test_unit_assertions_adapter.rb +30 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/version.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/warnings.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core/world.rb +275 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-core-3.8.0/lib/rspec/core.rb +185 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/.yardopts +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/Changelog.md +1110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/LICENSE.md +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/README.md +305 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/block_snippet_extractor.rb +253 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/configuration.rb +215 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/expectation_target.rb +127 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/fail_with.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/failure_aggregator.rb +194 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/handler.rb +170 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/minitest_integration.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/syntax.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations/version.rb +8 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/expectations.rb +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/aliased_matcher.rb +116 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/all.rb +85 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/base_matcher.rb +193 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/be.rb +288 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/be_between.rb +77 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/be_instance_of.rb +22 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/be_kind_of.rb +16 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/be_within.rb +72 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/change.rb +426 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/compound.rb +271 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/contain_exactly.rb +302 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/cover.rb +24 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/eq.rb +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/eql.rb +34 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/equal.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/exist.rb +90 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/has.rb +103 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/have_attributes.rb +114 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/include.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/match.rb +106 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/operators.rb +128 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/output.rb +200 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/raise_error.rb +230 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/respond_to.rb +165 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/satisfy.rb +60 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/start_or_end_with.rb +94 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/throw_symbol.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in/yield.rb +432 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/built_in.rb +52 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/composable.rb +171 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/dsl.rb +527 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/english_phrasing.rb +58 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/expecteds_for_multiple_diffs.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/fail_matchers.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/generated_descriptions.rb +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/matcher_delegator.rb +35 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers/matcher_protocol.rb +99 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-expectations-3.8.1/lib/rspec/matchers.rb +1034 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/.document +5 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/.yardopts +6 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/Changelog.md +1100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/LICENSE.md +25 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/README.md +460 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/chain.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/error_generator.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/expect_chain_chain.rb +31 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/expectation_chain.rb +50 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/message_chains.rb +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/proxy.rb +116 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/recorder.rb +289 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/stub_chain.rb +51 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance/stub_chain_chain.rb +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/any_instance.rb +11 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/argument_list_matcher.rb +100 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/argument_matchers.rb +320 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/configuration.rb +212 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/error_generator.rb +369 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/example_methods.rb +434 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/instance_method_stasher.rb +146 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/marshal_extension.rb +41 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/expectation_customization.rb +20 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/have_received.rb +134 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive.rb +132 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive_message_chain.rb +82 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/matchers/receive_messages.rb +77 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/message_chain.rb +87 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/message_expectation.rb +741 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/method_double.rb +287 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/method_reference.rb +202 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/minitest_integration.rb +68 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/mutate_const.rb +339 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/object_reference.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/order_group.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/proxy.rb +485 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/space.rb +238 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/standalone.rb +3 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/syntax.rb +325 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/targets.rb +124 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/test_double.rb +171 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_double.rb +129 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_message_expectation.rb +54 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/verifying_proxy.rb +220 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks/version.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-mocks-3.8.0/lib/rspec/mocks.rb +130 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/Changelog.md +242 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/LICENSE.md +23 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/README.md +40 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/caller_filter.rb +83 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/comparable_version.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/differ.rb +215 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/directory_maker.rb +63 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/encoded_string.rb +165 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/fuzzy_matcher.rb +48 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/hunk_generator.rb +47 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/matcher_definition.rb +42 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/method_signature_verifier.rb +426 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/mutex.rb +73 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/object_formatter.rb +275 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/recursive_const_methods.rb +76 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/reentrant_mutex.rb +53 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/ruby_features.rb +176 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/source/location.rb +21 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/source/node.rb +110 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/source/token.rb +87 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/source.rb +75 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/deprecation_helpers.rb +64 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/formatting_support.rb +9 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/in_sub_process.rb +69 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/library_wide_checks.rb +150 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/shell_out.rb +84 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/stderr_splitter.rb +63 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/string_matcher.rb +46 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/with_isolated_directory.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec/with_isolated_stderr.rb +13 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/spec.rb +81 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/version.rb +7 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support/warnings.rb +39 -0
- data/vendor/bundle/ruby/2.5.0/gems/rspec-support-3.8.0/lib/rspec/support.rb +149 -0
- data/vendor/bundle/ruby/2.5.0/specifications/coderay-1.1.2.gemspec +26 -0
- data/vendor/bundle/ruby/2.5.0/specifications/diff-lcs-1.3.gemspec +61 -0
- data/vendor/bundle/ruby/2.5.0/specifications/method_source-0.9.0.gemspec +34 -0
- data/vendor/bundle/ruby/2.5.0/specifications/ox-2.10.0.gemspec +0 -0
- data/vendor/bundle/ruby/2.5.0/specifications/pry-0.11.3.gemspec +41 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rake-10.5.0.gemspec +43 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-3.8.0.gemspec +42 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-core-3.8.0.gemspec +62 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-expectations-3.8.1.gemspec +50 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-mocks-3.8.0.gemspec +50 -0
- data/vendor/bundle/ruby/2.5.0/specifications/rspec-support-3.8.0.gemspec +41 -0
- data/xaiml.gemspec +25 -0
- metadata +891 -0
@@ -0,0 +1,1562 @@
|
|
1
|
+
/* ox.c
|
2
|
+
* Copyright (c) 2011, Peter Ohler
|
3
|
+
* All rights reserved.
|
4
|
+
*/
|
5
|
+
|
6
|
+
#include <stdlib.h>
|
7
|
+
#include <errno.h>
|
8
|
+
#include <stdint.h>
|
9
|
+
#include <stdbool.h>
|
10
|
+
#include <stdio.h>
|
11
|
+
#include <string.h>
|
12
|
+
|
13
|
+
#include "ruby.h"
|
14
|
+
#include "ox.h"
|
15
|
+
#include "sax.h"
|
16
|
+
|
17
|
+
/* maximum to allocate on the stack, arbitrary limit */
|
18
|
+
#define SMALL_XML 4096
|
19
|
+
#define WITH_CACHE_TESTS 0
|
20
|
+
|
21
|
+
typedef struct _YesNoOpt {
|
22
|
+
VALUE sym;
|
23
|
+
char *attr;
|
24
|
+
} *YesNoOpt;
|
25
|
+
|
26
|
+
void Init_ox();
|
27
|
+
|
28
|
+
VALUE Ox = Qnil;
|
29
|
+
|
30
|
+
ID ox_abort_id;
|
31
|
+
ID ox_at_column_id;
|
32
|
+
ID ox_at_content_id;
|
33
|
+
ID ox_at_id;
|
34
|
+
ID ox_at_line_id;
|
35
|
+
ID ox_at_pos_id;
|
36
|
+
ID ox_at_value_id;
|
37
|
+
ID ox_attr_id;
|
38
|
+
ID ox_attr_value_id;
|
39
|
+
ID ox_attributes_id;
|
40
|
+
ID ox_attrs_done_id;
|
41
|
+
ID ox_beg_id;
|
42
|
+
ID ox_bigdecimal_id;
|
43
|
+
ID ox_call_id;
|
44
|
+
ID ox_cdata_id;
|
45
|
+
ID ox_comment_id;
|
46
|
+
ID ox_den_id;
|
47
|
+
ID ox_doctype_id;
|
48
|
+
ID ox_end_element_id;
|
49
|
+
ID ox_end_id;
|
50
|
+
ID ox_end_instruct_id;
|
51
|
+
ID ox_error_id;
|
52
|
+
ID ox_excl_id;
|
53
|
+
ID ox_external_encoding_id;
|
54
|
+
ID ox_fileno_id;
|
55
|
+
ID ox_force_encoding_id;
|
56
|
+
ID ox_inspect_id;
|
57
|
+
ID ox_instruct_id;
|
58
|
+
ID ox_jd_id;
|
59
|
+
ID ox_keys_id;
|
60
|
+
ID ox_local_id;
|
61
|
+
ID ox_mesg_id;
|
62
|
+
ID ox_message_id;
|
63
|
+
ID ox_new_id;
|
64
|
+
ID ox_nodes_id;
|
65
|
+
ID ox_num_id;
|
66
|
+
ID ox_parse_id;
|
67
|
+
ID ox_pos_id;
|
68
|
+
ID ox_read_id;
|
69
|
+
ID ox_readpartial_id;
|
70
|
+
ID ox_start_element_id;
|
71
|
+
ID ox_string_id;
|
72
|
+
ID ox_text_id;
|
73
|
+
ID ox_to_c_id;
|
74
|
+
ID ox_to_s_id;
|
75
|
+
ID ox_to_sym_id;
|
76
|
+
ID ox_tv_nsec_id;
|
77
|
+
ID ox_tv_sec_id;
|
78
|
+
ID ox_tv_usec_id;
|
79
|
+
ID ox_value_id;
|
80
|
+
|
81
|
+
VALUE ox_encoding_sym;
|
82
|
+
VALUE ox_version_sym;
|
83
|
+
VALUE ox_standalone_sym;
|
84
|
+
VALUE ox_indent_sym;
|
85
|
+
VALUE ox_size_sym;
|
86
|
+
|
87
|
+
VALUE ox_empty_string;
|
88
|
+
VALUE ox_zero_fixnum;
|
89
|
+
VALUE ox_sym_bank; // Array
|
90
|
+
|
91
|
+
VALUE ox_arg_error_class;
|
92
|
+
VALUE ox_bag_clas;
|
93
|
+
VALUE ox_bigdecimal_class;
|
94
|
+
VALUE ox_cdata_clas;
|
95
|
+
VALUE ox_comment_clas;
|
96
|
+
VALUE ox_raw_clas;
|
97
|
+
VALUE ox_date_class;
|
98
|
+
VALUE ox_doctype_clas;
|
99
|
+
VALUE ox_document_clas;
|
100
|
+
VALUE ox_element_clas;
|
101
|
+
VALUE ox_instruct_clas;
|
102
|
+
VALUE ox_parse_error_class;
|
103
|
+
VALUE ox_stringio_class;
|
104
|
+
VALUE ox_struct_class;
|
105
|
+
VALUE ox_time_class;
|
106
|
+
|
107
|
+
Cache ox_symbol_cache = 0;
|
108
|
+
Cache ox_class_cache = 0;
|
109
|
+
Cache ox_attr_cache = 0;
|
110
|
+
|
111
|
+
static VALUE abort_sym;
|
112
|
+
static VALUE active_sym;
|
113
|
+
static VALUE attr_key_mod_sym;
|
114
|
+
static VALUE auto_define_sym;
|
115
|
+
static VALUE auto_sym;
|
116
|
+
static VALUE block_sym;
|
117
|
+
static VALUE circular_sym;
|
118
|
+
static VALUE convert_special_sym;
|
119
|
+
static VALUE effort_sym;
|
120
|
+
static VALUE generic_sym;
|
121
|
+
static VALUE hash_no_attrs_sym;
|
122
|
+
static VALUE hash_sym;
|
123
|
+
static VALUE inactive_sym;
|
124
|
+
static VALUE invalid_replace_sym;
|
125
|
+
static VALUE limited_sym;
|
126
|
+
static VALUE margin_sym;
|
127
|
+
static VALUE mode_sym;
|
128
|
+
static VALUE nest_ok_sym;
|
129
|
+
static VALUE object_sym;
|
130
|
+
static VALUE off_sym;
|
131
|
+
static VALUE opt_format_sym;
|
132
|
+
static VALUE optimized_sym;
|
133
|
+
static VALUE overlay_sym;
|
134
|
+
static VALUE skip_none_sym;
|
135
|
+
static VALUE skip_off_sym;
|
136
|
+
static VALUE skip_return_sym;
|
137
|
+
static VALUE skip_sym;
|
138
|
+
static VALUE skip_white_sym;
|
139
|
+
static VALUE smart_sym;
|
140
|
+
static VALUE strict_sym;
|
141
|
+
static VALUE strip_namespace_sym;
|
142
|
+
static VALUE symbolize_keys_sym;
|
143
|
+
static VALUE symbolize_sym;
|
144
|
+
static VALUE tolerant_sym;
|
145
|
+
static VALUE trace_sym;
|
146
|
+
static VALUE with_dtd_sym;
|
147
|
+
static VALUE with_instruct_sym;
|
148
|
+
static VALUE with_xml_sym;
|
149
|
+
static VALUE xsd_date_sym;
|
150
|
+
static VALUE element_key_mod_sym;
|
151
|
+
|
152
|
+
static ID encoding_id;
|
153
|
+
static ID has_key_id;
|
154
|
+
|
155
|
+
#if HAS_ENCODING_SUPPORT
|
156
|
+
rb_encoding *ox_utf8_encoding = 0;
|
157
|
+
#elif HAS_PRIVATE_ENCODING
|
158
|
+
VALUE ox_utf8_encoding = Qnil;
|
159
|
+
#else
|
160
|
+
void *ox_utf8_encoding = 0;
|
161
|
+
#endif
|
162
|
+
|
163
|
+
struct _Options ox_default_options = {
|
164
|
+
{ '\0' }, // encoding
|
165
|
+
{ '\0' }, // margin
|
166
|
+
2, // indent
|
167
|
+
0, // trace
|
168
|
+
0, // margin_len
|
169
|
+
No, // with_dtd
|
170
|
+
No, // with_xml
|
171
|
+
No, // with_instruct
|
172
|
+
No, // circular
|
173
|
+
No, // xsd_date
|
174
|
+
NoMode, // mode
|
175
|
+
StrictEffort, // effort
|
176
|
+
Yes, // sym_keys
|
177
|
+
SpcSkip, // skip
|
178
|
+
No, // smart
|
179
|
+
1, // convert_special
|
180
|
+
No, // allow_invalid
|
181
|
+
{ '\0' }, // inv_repl
|
182
|
+
{ '\0' }, // strip_ns
|
183
|
+
NULL, // html_hints
|
184
|
+
Qnil, // attr_key_mod;
|
185
|
+
Qnil, // element_key_mod;
|
186
|
+
#if HAS_PRIVATE_ENCODING
|
187
|
+
Qnil // rb_enc
|
188
|
+
#else
|
189
|
+
0 // rb_enc
|
190
|
+
#endif
|
191
|
+
};
|
192
|
+
|
193
|
+
extern ParseCallbacks ox_obj_callbacks;
|
194
|
+
extern ParseCallbacks ox_gen_callbacks;
|
195
|
+
extern ParseCallbacks ox_limited_callbacks;
|
196
|
+
extern ParseCallbacks ox_nomode_callbacks;
|
197
|
+
extern ParseCallbacks ox_hash_callbacks;
|
198
|
+
extern ParseCallbacks ox_hash_no_attrs_callbacks;
|
199
|
+
|
200
|
+
static void parse_dump_options(VALUE ropts, Options copts);
|
201
|
+
|
202
|
+
static char*
|
203
|
+
defuse_bom(char *xml, Options options) {
|
204
|
+
switch ((uint8_t)*xml) {
|
205
|
+
case 0xEF: // UTF-8
|
206
|
+
if (0xBB == (uint8_t)xml[1] && 0xBF == (uint8_t)xml[2]) {
|
207
|
+
options->rb_enc = ox_utf8_encoding;
|
208
|
+
xml += 3;
|
209
|
+
} else {
|
210
|
+
rb_raise(ox_parse_error_class, "Invalid BOM in XML string.\n");
|
211
|
+
}
|
212
|
+
break;
|
213
|
+
#if 0
|
214
|
+
case 0xFE: // UTF-16BE
|
215
|
+
if (0xFF == (uint8_t)xml[1]) {
|
216
|
+
options->rb_enc = ox_utf16be_encoding;
|
217
|
+
xml += 2;
|
218
|
+
} else {
|
219
|
+
rb_raise(ox_parse_error_class, "Invalid BOM in XML string.\n");
|
220
|
+
}
|
221
|
+
break;
|
222
|
+
case 0xFF: // UTF-16LE or UTF-32LE
|
223
|
+
if (0xFE == (uint8_t)xml[1]) {
|
224
|
+
if (0x00 == (uint8_t)xml[2] && 0x00 == (uint8_t)xml[3]) {
|
225
|
+
options->rb_enc = ox_utf32le_encoding;
|
226
|
+
xml += 4;
|
227
|
+
} else {
|
228
|
+
options->rb_enc = ox_utf16le_encoding;
|
229
|
+
xml += 2;
|
230
|
+
}
|
231
|
+
} else {
|
232
|
+
rb_raise(ox_parse_error_class, "Invalid BOM in XML string.\n");
|
233
|
+
}
|
234
|
+
break;
|
235
|
+
case 0x00: // UTF-32BE
|
236
|
+
if (0x00 == (uint8_t)xml[1] && 0xFE == (uint8_t)xml[2] && 0xFF == (uint8_t)xml[3]) {
|
237
|
+
options->rb_enc = ox_utf32be_encoding;
|
238
|
+
xml += 4;
|
239
|
+
} else {
|
240
|
+
rb_raise(ox_parse_error_class, "Invalid BOM in XML string.\n");
|
241
|
+
}
|
242
|
+
break;
|
243
|
+
#endif
|
244
|
+
default:
|
245
|
+
// Let it fail if there is a BOM that is not UTF-8. Other BOM options
|
246
|
+
// are not ASCII compatible.
|
247
|
+
break;
|
248
|
+
}
|
249
|
+
return xml;
|
250
|
+
}
|
251
|
+
|
252
|
+
static VALUE
|
253
|
+
hints_to_overlay(Hints hints) {
|
254
|
+
volatile VALUE overlay = rb_hash_new();
|
255
|
+
Hint h;
|
256
|
+
int i;
|
257
|
+
VALUE ov;
|
258
|
+
|
259
|
+
for (i = hints->size, h = hints->hints; 0 < i; i--, h++) {
|
260
|
+
switch (h->overlay) {
|
261
|
+
case InactiveOverlay: ov = inactive_sym; break;
|
262
|
+
case BlockOverlay: ov = block_sym; break;
|
263
|
+
case OffOverlay: ov = off_sym; break;
|
264
|
+
case AbortOverlay: ov = abort_sym; break;
|
265
|
+
case NestOverlay: ov = nest_ok_sym; break;
|
266
|
+
case ActiveOverlay:
|
267
|
+
default: ov = active_sym; break;
|
268
|
+
}
|
269
|
+
rb_hash_aset(overlay, rb_str_new2(h->name), ov);
|
270
|
+
}
|
271
|
+
return overlay;
|
272
|
+
}
|
273
|
+
|
274
|
+
/* call-seq: default_options() => Hash
|
275
|
+
*
|
276
|
+
* Returns the default load and dump options as a Hash. The options are
|
277
|
+
* - _:margin_ [String] left margin to inset when dumping
|
278
|
+
* - _:indent_ [Fixnum] number of spaces to indent each element in an XML document
|
279
|
+
* - _:trace_ [Fixnum] trace level where 0 is silent
|
280
|
+
* - _:encoding_ [String] character encoding for the XML file
|
281
|
+
* - _:with_dtd_ [true|false|nil] include DTD in the dump
|
282
|
+
* - _:with_instruct_ [true|false|nil] include instructions in the dump
|
283
|
+
* - _:with_xml_ [true|false|nil] include XML prolog in the dump
|
284
|
+
* - _:circular_ [true|false|nil] support circular references while dumping
|
285
|
+
* - _:xsd_date_ [true|false|nil] use XSD date format instead of decimal format
|
286
|
+
* - _:mode_ [:object|:generic|:limited|:hash|:hash_no_attrs|nil] load method to use for XML
|
287
|
+
* - _:effort_ [:strict|:tolerant|:auto_define] set the tolerance level for loading
|
288
|
+
* - _:symbolize_keys_ [true|false|nil] symbolize element attribute keys or leave as Strings
|
289
|
+
* - _:element_key_mod_ [Proc|nil] converts element keys on parse if not nil
|
290
|
+
* - _:attr_key_mod_ [Proc|nil] converts attribute keys on parse if not nil
|
291
|
+
* - _:skip_ [:skip_none|:skip_return|:skip_white|:skip_off] determines how to handle white space in text
|
292
|
+
* - _:smart_ [true|false|nil] flag indicating the SAX parser uses hints if available (use with html)
|
293
|
+
* - _:convert_special_ [true|false|nil] flag indicating special characters like < are converted with the SAX parser
|
294
|
+
* - _:invalid_replace_ [nil|String] replacement string for invalid XML characters on dump. nil indicates include anyway as hex. A string, limited to 10 characters will replace the invalid character with the replace.
|
295
|
+
* - _:strip_namespace_ [String|true|false] false or "" results in no namespace stripping. A string of "*" or true will strip all namespaces. Any other non-empty string indicates that matching namespaces will be stripped.
|
296
|
+
* - _:overlay_ [Hash] a Hash of keys that match html element names and values that are one of
|
297
|
+
* - _:active_ - make the normal callback for the element
|
298
|
+
* - _:nest_ok_ - active but the nesting check is ignored
|
299
|
+
* - _:inactive_ - do not make the element start, end, or attribute callbacks for this element only
|
300
|
+
* - _:block_ - block this and all children callbacks
|
301
|
+
* - _:off_ - block this element and it's children unless the child element is active
|
302
|
+
* - _:abort_ - abort the html processing and return
|
303
|
+
*
|
304
|
+
* *return* [Hash] all current option settings.
|
305
|
+
*
|
306
|
+
* Note that an indent of less than zero will result in a tight one line output
|
307
|
+
* unless the text in the XML fields contain new line characters.
|
308
|
+
*/
|
309
|
+
static VALUE
|
310
|
+
get_def_opts(VALUE self) {
|
311
|
+
VALUE opts = rb_hash_new();
|
312
|
+
int elen = (int)strlen(ox_default_options.encoding);
|
313
|
+
|
314
|
+
rb_hash_aset(opts, ox_encoding_sym, (0 == elen) ? Qnil : rb_str_new(ox_default_options.encoding, elen));
|
315
|
+
rb_hash_aset(opts, margin_sym, rb_str_new(ox_default_options.margin, ox_default_options.margin_len));
|
316
|
+
rb_hash_aset(opts, ox_indent_sym, INT2FIX(ox_default_options.indent));
|
317
|
+
rb_hash_aset(opts, trace_sym, INT2FIX(ox_default_options.trace));
|
318
|
+
rb_hash_aset(opts, with_dtd_sym, (Yes == ox_default_options.with_dtd) ? Qtrue : ((No == ox_default_options.with_dtd) ? Qfalse : Qnil));
|
319
|
+
rb_hash_aset(opts, with_xml_sym, (Yes == ox_default_options.with_xml) ? Qtrue : ((No == ox_default_options.with_xml) ? Qfalse : Qnil));
|
320
|
+
rb_hash_aset(opts, with_instruct_sym, (Yes == ox_default_options.with_instruct) ? Qtrue : ((No == ox_default_options.with_instruct) ? Qfalse : Qnil));
|
321
|
+
rb_hash_aset(opts, circular_sym, (Yes == ox_default_options.circular) ? Qtrue : ((No == ox_default_options.circular) ? Qfalse : Qnil));
|
322
|
+
rb_hash_aset(opts, xsd_date_sym, (Yes == ox_default_options.xsd_date) ? Qtrue : ((No == ox_default_options.xsd_date) ? Qfalse : Qnil));
|
323
|
+
rb_hash_aset(opts, symbolize_keys_sym, (Yes == ox_default_options.sym_keys) ? Qtrue : ((No == ox_default_options.sym_keys) ? Qfalse : Qnil));
|
324
|
+
rb_hash_aset(opts, attr_key_mod_sym, ox_default_options.attr_key_mod);
|
325
|
+
rb_hash_aset(opts, element_key_mod_sym, ox_default_options.element_key_mod);
|
326
|
+
rb_hash_aset(opts, smart_sym, (Yes == ox_default_options.smart) ? Qtrue : ((No == ox_default_options.smart) ? Qfalse : Qnil));
|
327
|
+
rb_hash_aset(opts, convert_special_sym, (ox_default_options.convert_special) ? Qtrue : Qfalse);
|
328
|
+
switch (ox_default_options.mode) {
|
329
|
+
case ObjMode: rb_hash_aset(opts, mode_sym, object_sym); break;
|
330
|
+
case GenMode: rb_hash_aset(opts, mode_sym, generic_sym); break;
|
331
|
+
case LimMode: rb_hash_aset(opts, mode_sym, limited_sym); break;
|
332
|
+
case HashMode: rb_hash_aset(opts, mode_sym, hash_sym); break;
|
333
|
+
case HashNoAttrMode: rb_hash_aset(opts, mode_sym, hash_no_attrs_sym); break;
|
334
|
+
case NoMode:
|
335
|
+
default: rb_hash_aset(opts, mode_sym, Qnil); break;
|
336
|
+
}
|
337
|
+
switch (ox_default_options.effort) {
|
338
|
+
case StrictEffort: rb_hash_aset(opts, effort_sym, strict_sym); break;
|
339
|
+
case TolerantEffort: rb_hash_aset(opts, effort_sym, tolerant_sym); break;
|
340
|
+
case AutoEffort: rb_hash_aset(opts, effort_sym, auto_define_sym); break;
|
341
|
+
case NoEffort:
|
342
|
+
default: rb_hash_aset(opts, effort_sym, Qnil); break;
|
343
|
+
}
|
344
|
+
switch (ox_default_options.skip) {
|
345
|
+
case OffSkip: rb_hash_aset(opts, skip_sym, skip_off_sym); break;
|
346
|
+
case NoSkip: rb_hash_aset(opts, skip_sym, skip_none_sym); break;
|
347
|
+
case CrSkip: rb_hash_aset(opts, skip_sym, skip_return_sym); break;
|
348
|
+
case SpcSkip: rb_hash_aset(opts, skip_sym, skip_white_sym); break;
|
349
|
+
default: rb_hash_aset(opts, skip_sym, Qnil); break;
|
350
|
+
}
|
351
|
+
if (Yes == ox_default_options.allow_invalid) {
|
352
|
+
rb_hash_aset(opts, invalid_replace_sym, Qnil);
|
353
|
+
} else {
|
354
|
+
rb_hash_aset(opts, invalid_replace_sym, rb_str_new(ox_default_options.inv_repl + 1, (int)*ox_default_options.inv_repl));
|
355
|
+
}
|
356
|
+
if ('\0' == *ox_default_options.strip_ns) {
|
357
|
+
rb_hash_aset(opts, strip_namespace_sym, Qfalse);
|
358
|
+
} else if ('*' == *ox_default_options.strip_ns && '\0' == ox_default_options.strip_ns[1]) {
|
359
|
+
rb_hash_aset(opts, strip_namespace_sym, Qtrue);
|
360
|
+
} else {
|
361
|
+
rb_hash_aset(opts, strip_namespace_sym, rb_str_new(ox_default_options.strip_ns, strlen(ox_default_options.strip_ns)));
|
362
|
+
}
|
363
|
+
if (NULL == ox_default_options.html_hints) {
|
364
|
+
//rb_hash_aset(opts, overlay_sym, hints_to_overlay(ox_hints_html()));
|
365
|
+
rb_hash_aset(opts, overlay_sym, Qnil);
|
366
|
+
} else {
|
367
|
+
rb_hash_aset(opts, overlay_sym, hints_to_overlay(ox_default_options.html_hints));
|
368
|
+
}
|
369
|
+
return opts;
|
370
|
+
}
|
371
|
+
|
372
|
+
static int
|
373
|
+
set_overlay(VALUE key, VALUE value, VALUE ctx) {
|
374
|
+
Hints hints = (Hints)ctx;
|
375
|
+
Hint hint;
|
376
|
+
|
377
|
+
if (NULL != (hint = ox_hint_find(hints, StringValuePtr(key)))) {
|
378
|
+
if (active_sym == value) {
|
379
|
+
hint->overlay = ActiveOverlay;
|
380
|
+
} else if (inactive_sym == value) {
|
381
|
+
hint->overlay = InactiveOverlay;
|
382
|
+
} else if (block_sym == value) {
|
383
|
+
hint->overlay = BlockOverlay;
|
384
|
+
} else if (nest_ok_sym == value) {
|
385
|
+
hint->overlay = NestOverlay;
|
386
|
+
} else if (off_sym == value) {
|
387
|
+
hint->overlay = OffOverlay;
|
388
|
+
} else if (abort_sym == value) {
|
389
|
+
hint->overlay = AbortOverlay;
|
390
|
+
}
|
391
|
+
}
|
392
|
+
return ST_CONTINUE;
|
393
|
+
}
|
394
|
+
|
395
|
+
/* call-seq: sax_html_overlay() => Hash
|
396
|
+
*
|
397
|
+
* Returns an overlay hash that can be modified and used as an overlay in the
|
398
|
+
* default options or in the sax_html() function call. Values for the keys are:
|
399
|
+
* - _:active_ - make the normal callback for the element
|
400
|
+
* - _:nest_ok_ - active but ignore nest check
|
401
|
+
* - _:inactive_ - do not make the element start, end, or attribute callbacks for this element only
|
402
|
+
* - _:block_ - block this and all children callbacks
|
403
|
+
* - _:off_ - block this element and it's children unless the child element is active
|
404
|
+
* - _:abort_ - abort the html processing and return
|
405
|
+
*
|
406
|
+
* *return* [Hash] default SAX HTML settings
|
407
|
+
*/
|
408
|
+
static VALUE
|
409
|
+
sax_html_overlay(VALUE self) {
|
410
|
+
return hints_to_overlay(ox_hints_html());
|
411
|
+
}
|
412
|
+
|
413
|
+
/* call-seq: default_options=(opts)
|
414
|
+
*
|
415
|
+
* Sets the default options for load and dump.
|
416
|
+
* - +opts+ [Hash] opts options to change
|
417
|
+
* - _:margin_ [String] left margin to inset when dumping
|
418
|
+
* - _:indent_ [Fixnum] number of spaces to indent each element in an XML document
|
419
|
+
* - _:trace_ [Fixnum] trace level where 0 is silent
|
420
|
+
* - _:encoding_ [String] character encoding for the XML file
|
421
|
+
* - _:with_dtd_ [true|false|nil] include DTD in the dump
|
422
|
+
* - _:with_instruct_ [true|false|nil] include instructions in the dump
|
423
|
+
* - _:with_xml_ [true|false|nil] include XML prolog in the dump
|
424
|
+
* - _:circular_ [true|false|nil] support circular references while dumping
|
425
|
+
* - _:xsd_date_ [true|false|nil] use XSD date format instead of decimal format
|
426
|
+
* - _:mode_ [:object|:generic|:limited|:hash|:hash_no_attrs|nil] load method to use for XML
|
427
|
+
* - _:effort_ [:strict|:tolerant|:auto_define] set the tolerance level for loading
|
428
|
+
* - _:symbolize_keys_ [true|false|nil] symbolize element attribute keys or leave as Strings
|
429
|
+
* - _:element_key_mod_ [Proc|nil] converts element keys on parse if not nil
|
430
|
+
* - _:attr_key_mod_ [Proc|nil] converts attribute keys on parse if not nil
|
431
|
+
* - _:skip_ [:skip_none|:skip_return|:skip_white|:skip_off] determines how to handle white space in text
|
432
|
+
* - _:smart_ [true|false|nil] flag indicating the SAX parser uses hints if available (use with html)
|
433
|
+
* - _:invalid_replace_ [nil|String] replacement string for invalid XML characters on dump. nil indicates include anyway as hex. A string, limited to 10 characters will replace the invalid character with the replace.
|
434
|
+
* - _:strip_namespace_ [nil|String|true|false] "" or false result in no namespace stripping. A string of "*" or true will strip all namespaces. Any other non-empty string indicates that matching namespaces will be stripped.
|
435
|
+
* - _:overlay_ [Hash] a Hash of keys that match html element names and values that are one of
|
436
|
+
* - _:active_ - make the normal callback for the element
|
437
|
+
* - _:nest_ok_ - active but ignore nest check
|
438
|
+
* - _:inactive_ - do not make the element start, end, or attribute callbacks for this element only
|
439
|
+
* - _:block_ - block this and all children callbacks
|
440
|
+
* - _:off_ - block this element and it's children unless the child element is active
|
441
|
+
* - _:abort_ - abort the html processing and return
|
442
|
+
*
|
443
|
+
* *return* [nil]
|
444
|
+
*/
|
445
|
+
static VALUE
|
446
|
+
set_def_opts(VALUE self, VALUE opts) {
|
447
|
+
struct _YesNoOpt ynos[] = {
|
448
|
+
{ with_xml_sym, &ox_default_options.with_xml },
|
449
|
+
{ with_dtd_sym, &ox_default_options.with_dtd },
|
450
|
+
{ with_instruct_sym, &ox_default_options.with_instruct },
|
451
|
+
{ xsd_date_sym, &ox_default_options.xsd_date },
|
452
|
+
{ circular_sym, &ox_default_options.circular },
|
453
|
+
{ symbolize_keys_sym, &ox_default_options.sym_keys },
|
454
|
+
{ smart_sym, &ox_default_options.smart },
|
455
|
+
{ Qnil, 0 }
|
456
|
+
};
|
457
|
+
YesNoOpt o;
|
458
|
+
VALUE v;
|
459
|
+
|
460
|
+
Check_Type(opts, T_HASH);
|
461
|
+
|
462
|
+
v = rb_hash_aref(opts, ox_encoding_sym);
|
463
|
+
if (Qnil == v) {
|
464
|
+
*ox_default_options.encoding = '\0';
|
465
|
+
} else {
|
466
|
+
Check_Type(v, T_STRING);
|
467
|
+
strncpy(ox_default_options.encoding, StringValuePtr(v), sizeof(ox_default_options.encoding) - 1);
|
468
|
+
#if HAS_ENCODING_SUPPORT
|
469
|
+
ox_default_options.rb_enc = rb_enc_find(ox_default_options.encoding);
|
470
|
+
#elif HAS_PRIVATE_ENCODING
|
471
|
+
ox_default_options.rb_enc = rb_str_new2(ox_default_options.encoding);
|
472
|
+
rb_gc_register_address(&ox_default_options.rb_enc);
|
473
|
+
#endif
|
474
|
+
}
|
475
|
+
|
476
|
+
v = rb_hash_aref(opts, ox_indent_sym);
|
477
|
+
if (Qnil != v) {
|
478
|
+
Check_Type(v, T_FIXNUM);
|
479
|
+
ox_default_options.indent = FIX2INT(v);
|
480
|
+
}
|
481
|
+
|
482
|
+
v = rb_hash_aref(opts, trace_sym);
|
483
|
+
if (Qnil != v) {
|
484
|
+
Check_Type(v, T_FIXNUM);
|
485
|
+
ox_default_options.trace = FIX2INT(v);
|
486
|
+
}
|
487
|
+
|
488
|
+
v = rb_hash_aref(opts, mode_sym);
|
489
|
+
if (Qnil == v) {
|
490
|
+
ox_default_options.mode = NoMode;
|
491
|
+
} else if (object_sym == v) {
|
492
|
+
ox_default_options.mode = ObjMode;
|
493
|
+
} else if (generic_sym == v) {
|
494
|
+
ox_default_options.mode = GenMode;
|
495
|
+
} else if (limited_sym == v) {
|
496
|
+
ox_default_options.mode = LimMode;
|
497
|
+
} else if (hash_sym == v) {
|
498
|
+
ox_default_options.mode = HashMode;
|
499
|
+
} else if (hash_no_attrs_sym == v) {
|
500
|
+
ox_default_options.mode = HashNoAttrMode;
|
501
|
+
} else {
|
502
|
+
rb_raise(ox_parse_error_class, ":mode must be :object, :generic, :limited, :hash, :hash_no_attrs, or nil.\n");
|
503
|
+
}
|
504
|
+
|
505
|
+
v = rb_hash_aref(opts, effort_sym);
|
506
|
+
if (Qnil == v) {
|
507
|
+
ox_default_options.effort = NoEffort;
|
508
|
+
} else if (strict_sym == v) {
|
509
|
+
ox_default_options.effort = StrictEffort;
|
510
|
+
} else if (tolerant_sym == v) {
|
511
|
+
ox_default_options.effort = TolerantEffort;
|
512
|
+
} else if (auto_define_sym == v) {
|
513
|
+
ox_default_options.effort = AutoEffort;
|
514
|
+
} else {
|
515
|
+
rb_raise(ox_parse_error_class, ":effort must be :strict, :tolerant, :auto_define, or nil.\n");
|
516
|
+
}
|
517
|
+
|
518
|
+
v = rb_hash_aref(opts, skip_sym);
|
519
|
+
if (Qnil == v) {
|
520
|
+
ox_default_options.skip = NoSkip;
|
521
|
+
} else if (skip_off_sym == v) {
|
522
|
+
ox_default_options.skip = OffSkip;
|
523
|
+
} else if (skip_none_sym == v) {
|
524
|
+
ox_default_options.skip = NoSkip;
|
525
|
+
} else if (skip_return_sym == v) {
|
526
|
+
ox_default_options.skip = CrSkip;
|
527
|
+
} else if (skip_white_sym == v) {
|
528
|
+
ox_default_options.skip = SpcSkip;
|
529
|
+
} else {
|
530
|
+
rb_raise(ox_parse_error_class, ":skip must be :skip_none, :skip_return, :skip_white, :skip_off, or nil.\n");
|
531
|
+
}
|
532
|
+
|
533
|
+
v = rb_hash_lookup(opts, convert_special_sym);
|
534
|
+
if (Qnil == v) {
|
535
|
+
// no change
|
536
|
+
} else if (Qtrue == v) {
|
537
|
+
ox_default_options.convert_special = 1;
|
538
|
+
} else if (Qfalse == v) {
|
539
|
+
ox_default_options.convert_special = 0;
|
540
|
+
} else {
|
541
|
+
rb_raise(ox_parse_error_class, ":convert_special must be true or false.\n");
|
542
|
+
}
|
543
|
+
|
544
|
+
v = rb_hash_aref(opts, invalid_replace_sym);
|
545
|
+
if (Qnil == v) {
|
546
|
+
ox_default_options.allow_invalid = Yes;
|
547
|
+
} else {
|
548
|
+
long slen;
|
549
|
+
|
550
|
+
Check_Type(v, T_STRING);
|
551
|
+
slen = RSTRING_LEN(v);
|
552
|
+
if (sizeof(ox_default_options.inv_repl) - 2 < (size_t)slen) {
|
553
|
+
rb_raise(ox_parse_error_class, ":invalid_replace can be no longer than %d characters.",
|
554
|
+
(int)sizeof(ox_default_options.inv_repl) - 2);
|
555
|
+
}
|
556
|
+
strncpy(ox_default_options.inv_repl + 1, StringValuePtr(v), sizeof(ox_default_options.inv_repl) - 1);
|
557
|
+
ox_default_options.inv_repl[sizeof(ox_default_options.inv_repl) - 1] = '\0';
|
558
|
+
*ox_default_options.inv_repl = (char)slen;
|
559
|
+
ox_default_options.allow_invalid = No;
|
560
|
+
}
|
561
|
+
|
562
|
+
v = rb_hash_aref(opts, strip_namespace_sym);
|
563
|
+
if (Qfalse == v) {
|
564
|
+
*ox_default_options.strip_ns = '\0';
|
565
|
+
} else if (Qtrue == v) {
|
566
|
+
*ox_default_options.strip_ns = '*';
|
567
|
+
ox_default_options.strip_ns[1] = '\0';
|
568
|
+
} else if (Qnil != v) {
|
569
|
+
long slen;
|
570
|
+
|
571
|
+
Check_Type(v, T_STRING);
|
572
|
+
slen = RSTRING_LEN(v);
|
573
|
+
if (sizeof(ox_default_options.strip_ns) - 1 < (size_t)slen) {
|
574
|
+
rb_raise(ox_parse_error_class, ":strip_namespace can be no longer than %d characters.",
|
575
|
+
(int)sizeof(ox_default_options.strip_ns) - 1);
|
576
|
+
}
|
577
|
+
strncpy(ox_default_options.strip_ns, StringValuePtr(v), sizeof(ox_default_options.strip_ns) - 1);
|
578
|
+
ox_default_options.strip_ns[sizeof(ox_default_options.strip_ns) - 1] = '\0';
|
579
|
+
}
|
580
|
+
|
581
|
+
v = rb_hash_aref(opts, margin_sym);
|
582
|
+
if (Qnil != v) {
|
583
|
+
long slen;
|
584
|
+
|
585
|
+
Check_Type(v, T_STRING);
|
586
|
+
slen = RSTRING_LEN(v);
|
587
|
+
if (sizeof(ox_default_options.margin) - 1 < (size_t)slen) {
|
588
|
+
rb_raise(ox_parse_error_class, ":margin can be no longer than %d characters.",
|
589
|
+
(int)sizeof(ox_default_options.margin) - 1);
|
590
|
+
}
|
591
|
+
strncpy(ox_default_options.margin, StringValuePtr(v), sizeof(ox_default_options.margin) - 1);
|
592
|
+
ox_default_options.margin[sizeof(ox_default_options.margin) - 1] = '\0';
|
593
|
+
ox_default_options.margin_len = strlen(ox_default_options.margin);
|
594
|
+
}
|
595
|
+
|
596
|
+
for (o = ynos; 0 != o->attr; o++) {
|
597
|
+
v = rb_hash_lookup(opts, o->sym);
|
598
|
+
if (Qnil == v) {
|
599
|
+
*o->attr = NotSet;
|
600
|
+
} else if (Qtrue == v) {
|
601
|
+
*o->attr = Yes;
|
602
|
+
} else if (Qfalse == v) {
|
603
|
+
*o->attr = No;
|
604
|
+
} else {
|
605
|
+
rb_raise(ox_parse_error_class, "%s must be true or false.\n", rb_id2name(SYM2ID(o->sym)));
|
606
|
+
}
|
607
|
+
}
|
608
|
+
v = rb_hash_aref(opts, overlay_sym);
|
609
|
+
if (Qnil == v) {
|
610
|
+
ox_hints_destroy(ox_default_options.html_hints);
|
611
|
+
ox_default_options.html_hints = NULL;
|
612
|
+
} else {
|
613
|
+
int cnt;
|
614
|
+
|
615
|
+
Check_Type(v, T_HASH);
|
616
|
+
cnt = (int)RHASH_SIZE(v);
|
617
|
+
if (0 == cnt) {
|
618
|
+
ox_hints_destroy(ox_default_options.html_hints);
|
619
|
+
ox_default_options.html_hints = NULL;
|
620
|
+
} else {
|
621
|
+
ox_hints_destroy(ox_default_options.html_hints);
|
622
|
+
ox_default_options.html_hints = ox_hints_dup(ox_hints_html());
|
623
|
+
rb_hash_foreach(v, set_overlay, (VALUE)ox_default_options.html_hints);
|
624
|
+
}
|
625
|
+
}
|
626
|
+
ox_default_options.element_key_mod = rb_hash_lookup2(opts, element_key_mod_sym, ox_default_options.element_key_mod);
|
627
|
+
ox_default_options.attr_key_mod = rb_hash_lookup2(opts, attr_key_mod_sym, ox_default_options.attr_key_mod);
|
628
|
+
|
629
|
+
return Qnil;
|
630
|
+
}
|
631
|
+
|
632
|
+
/* call-seq: parse_obj(xml) => Object
|
633
|
+
*
|
634
|
+
* Parses an XML document String that is in the object format and returns an
|
635
|
+
* Object of the type represented by the XML. This function expects an
|
636
|
+
* optimized XML formated String. For other formats use the more generic
|
637
|
+
* Ox.load() method. Raises an exception if the XML is malformed or the
|
638
|
+
* classes specified in the file are not valid.
|
639
|
+
* - +xml+ [String] XML String in optimized Object format.
|
640
|
+
* *return* [Object] deserialized Object.
|
641
|
+
*/
|
642
|
+
static VALUE
|
643
|
+
to_obj(VALUE self, VALUE ruby_xml) {
|
644
|
+
char *xml, *x;
|
645
|
+
size_t len;
|
646
|
+
VALUE obj;
|
647
|
+
struct _Options options = ox_default_options;
|
648
|
+
struct _Err err;
|
649
|
+
|
650
|
+
err_init(&err);
|
651
|
+
Check_Type(ruby_xml, T_STRING);
|
652
|
+
/* the xml string gets modified so make a copy of it */
|
653
|
+
len = RSTRING_LEN(ruby_xml) + 1;
|
654
|
+
x = defuse_bom(StringValuePtr(ruby_xml), &options);
|
655
|
+
if (SMALL_XML < len) {
|
656
|
+
xml = ALLOC_N(char, len);
|
657
|
+
} else {
|
658
|
+
xml = ALLOCA_N(char, len);
|
659
|
+
}
|
660
|
+
memcpy(xml, x, len);
|
661
|
+
#if HAS_GC_GUARD
|
662
|
+
rb_gc_disable();
|
663
|
+
#endif
|
664
|
+
obj = ox_parse(xml, len - 1, ox_obj_callbacks, 0, &options, &err);
|
665
|
+
if (SMALL_XML < len) {
|
666
|
+
xfree(xml);
|
667
|
+
}
|
668
|
+
#if HAS_GC_GUARD
|
669
|
+
RB_GC_GUARD(obj);
|
670
|
+
rb_gc_enable();
|
671
|
+
#endif
|
672
|
+
if (err_has(&err)) {
|
673
|
+
ox_err_raise(&err);
|
674
|
+
}
|
675
|
+
return obj;
|
676
|
+
}
|
677
|
+
|
678
|
+
/* call-seq: parse(xml) => Ox::Document or Ox::Element
|
679
|
+
*
|
680
|
+
* Parses and XML document String into an Ox::Document or Ox::Element.
|
681
|
+
* - +xml+ [String] xml XML String
|
682
|
+
* *return* [Ox::Document or Ox::Element] parsed XML document.
|
683
|
+
*
|
684
|
+
* _raise_ [Exception] if the XML is malformed.
|
685
|
+
*/
|
686
|
+
static VALUE
|
687
|
+
to_gen(VALUE self, VALUE ruby_xml) {
|
688
|
+
char *xml, *x;
|
689
|
+
size_t len;
|
690
|
+
VALUE obj;
|
691
|
+
struct _Options options = ox_default_options;
|
692
|
+
struct _Err err;
|
693
|
+
|
694
|
+
err_init(&err);
|
695
|
+
Check_Type(ruby_xml, T_STRING);
|
696
|
+
/* the xml string gets modified so make a copy of it */
|
697
|
+
len = RSTRING_LEN(ruby_xml) + 1;
|
698
|
+
x = defuse_bom(StringValuePtr(ruby_xml), &options);
|
699
|
+
if (SMALL_XML < len) {
|
700
|
+
xml = ALLOC_N(char, len);
|
701
|
+
} else {
|
702
|
+
xml = ALLOCA_N(char, len);
|
703
|
+
}
|
704
|
+
memcpy(xml, x, len);
|
705
|
+
obj = ox_parse(xml, len - 1, ox_gen_callbacks, 0, &options, &err);
|
706
|
+
if (SMALL_XML < len) {
|
707
|
+
xfree(xml);
|
708
|
+
}
|
709
|
+
if (err_has(&err)) {
|
710
|
+
ox_err_raise(&err);
|
711
|
+
}
|
712
|
+
return obj;
|
713
|
+
}
|
714
|
+
|
715
|
+
static VALUE
|
716
|
+
load(char *xml, size_t len, int argc, VALUE *argv, VALUE self, VALUE encoding, Err err) {
|
717
|
+
VALUE obj;
|
718
|
+
struct _Options options = ox_default_options;
|
719
|
+
|
720
|
+
if (1 == argc && rb_cHash == rb_obj_class(*argv)) {
|
721
|
+
VALUE h = *argv;
|
722
|
+
VALUE v;
|
723
|
+
|
724
|
+
if (Qnil != (v = rb_hash_lookup(h, mode_sym))) {
|
725
|
+
if (object_sym == v) {
|
726
|
+
options.mode = ObjMode;
|
727
|
+
} else if (optimized_sym == v) {
|
728
|
+
options.mode = ObjMode;
|
729
|
+
} else if (generic_sym == v) {
|
730
|
+
options.mode = GenMode;
|
731
|
+
} else if (limited_sym == v) {
|
732
|
+
options.mode = LimMode;
|
733
|
+
} else if (hash_sym == v) {
|
734
|
+
options.mode = HashMode;
|
735
|
+
} else if (hash_no_attrs_sym == v) {
|
736
|
+
options.mode = HashNoAttrMode;
|
737
|
+
} else {
|
738
|
+
rb_raise(ox_parse_error_class, ":mode must be :generic, :object, :limited, :hash, :hash_no_attrs.\n");
|
739
|
+
}
|
740
|
+
}
|
741
|
+
if (Qnil != (v = rb_hash_lookup(h, effort_sym))) {
|
742
|
+
if (auto_define_sym == v) {
|
743
|
+
options.effort = AutoEffort;
|
744
|
+
} else if (tolerant_sym == v) {
|
745
|
+
options.effort = TolerantEffort;
|
746
|
+
} else if (strict_sym == v) {
|
747
|
+
options.effort = StrictEffort;
|
748
|
+
} else {
|
749
|
+
rb_raise(ox_parse_error_class, ":effort must be :strict, :tolerant, or :auto_define.\n");
|
750
|
+
}
|
751
|
+
}
|
752
|
+
if (Qnil != (v = rb_hash_lookup(h, skip_sym))) {
|
753
|
+
if (skip_none_sym == v) {
|
754
|
+
options.skip = NoSkip;
|
755
|
+
} else if (skip_off_sym == v) {
|
756
|
+
options.skip = OffSkip;
|
757
|
+
} else if (skip_return_sym == v) {
|
758
|
+
options.skip = CrSkip;
|
759
|
+
} else if (skip_white_sym == v) {
|
760
|
+
options.skip = SpcSkip;
|
761
|
+
} else {
|
762
|
+
rb_raise(ox_parse_error_class, ":skip must be :skip_none, :skip_return, :skip_white, or :skip_off.\n");
|
763
|
+
}
|
764
|
+
}
|
765
|
+
|
766
|
+
if (Qnil != (v = rb_hash_lookup(h, trace_sym))) {
|
767
|
+
Check_Type(v, T_FIXNUM);
|
768
|
+
options.trace = FIX2INT(v);
|
769
|
+
}
|
770
|
+
if (Qnil != (v = rb_hash_lookup(h, symbolize_keys_sym))) {
|
771
|
+
options.sym_keys = (Qfalse == v) ? No : Yes;
|
772
|
+
}
|
773
|
+
options.element_key_mod = rb_hash_lookup2(h, element_key_mod_sym, options.element_key_mod);
|
774
|
+
options.attr_key_mod = rb_hash_lookup2(h, attr_key_mod_sym, options.attr_key_mod);
|
775
|
+
|
776
|
+
if (Qnil != (v = rb_hash_lookup(h, convert_special_sym))) {
|
777
|
+
options.convert_special = (Qfalse != v);
|
778
|
+
}
|
779
|
+
|
780
|
+
v = rb_hash_lookup(h, invalid_replace_sym);
|
781
|
+
if (Qnil == v) {
|
782
|
+
if (Qtrue == rb_funcall(h, has_key_id, 1, invalid_replace_sym)) {
|
783
|
+
options.allow_invalid = Yes;
|
784
|
+
}
|
785
|
+
} else {
|
786
|
+
long slen;
|
787
|
+
|
788
|
+
Check_Type(v, T_STRING);
|
789
|
+
slen = RSTRING_LEN(v);
|
790
|
+
if (sizeof(options.inv_repl) - 2 < (size_t)slen) {
|
791
|
+
rb_raise(ox_parse_error_class, ":invalid_replace can be no longer than %d characters.",
|
792
|
+
(int)sizeof(options.inv_repl) - 2);
|
793
|
+
}
|
794
|
+
strncpy(options.inv_repl + 1, StringValuePtr(v), sizeof(options.inv_repl) - 1);
|
795
|
+
options.inv_repl[sizeof(options.inv_repl) - 1] = '\0';
|
796
|
+
*options.inv_repl = (char)slen;
|
797
|
+
options.allow_invalid = No;
|
798
|
+
}
|
799
|
+
v = rb_hash_lookup(h, strip_namespace_sym);
|
800
|
+
if (Qfalse == v) {
|
801
|
+
*options.strip_ns = '\0';
|
802
|
+
} else if (Qtrue == v) {
|
803
|
+
*options.strip_ns = '*';
|
804
|
+
options.strip_ns[1] = '\0';
|
805
|
+
} else if (Qnil != v) {
|
806
|
+
long slen;
|
807
|
+
|
808
|
+
Check_Type(v, T_STRING);
|
809
|
+
slen = RSTRING_LEN(v);
|
810
|
+
if (sizeof(options.strip_ns) - 1 < (size_t)slen) {
|
811
|
+
rb_raise(ox_parse_error_class, ":strip_namespace can be no longer than %d characters.",
|
812
|
+
(int)sizeof(options.strip_ns) - 1);
|
813
|
+
}
|
814
|
+
strncpy(options.strip_ns, StringValuePtr(v), sizeof(options.strip_ns) - 1);
|
815
|
+
options.strip_ns[sizeof(options.strip_ns) - 1] = '\0';
|
816
|
+
}
|
817
|
+
v = rb_hash_lookup(h, margin_sym);
|
818
|
+
if (Qnil != v) {
|
819
|
+
long slen;
|
820
|
+
|
821
|
+
Check_Type(v, T_STRING);
|
822
|
+
slen = RSTRING_LEN(v);
|
823
|
+
if (sizeof(options.margin) - 1 < (size_t)slen) {
|
824
|
+
rb_raise(ox_parse_error_class, ":margin can be no longer than %d characters.",
|
825
|
+
(int)sizeof(options.margin) - 1);
|
826
|
+
}
|
827
|
+
strncpy(options.margin, StringValuePtr(v), sizeof(options.margin) - 1);
|
828
|
+
options.margin[sizeof(options.margin) - 1] = '\0';
|
829
|
+
options.margin_len = strlen(options.margin);
|
830
|
+
}
|
831
|
+
}
|
832
|
+
#if HAS_ENCODING_SUPPORT
|
833
|
+
if ('\0' == *options.encoding) {
|
834
|
+
if (Qnil != encoding) {
|
835
|
+
options.rb_enc = rb_enc_from_index(rb_enc_get_index(encoding));
|
836
|
+
} else {
|
837
|
+
options.rb_enc = 0;
|
838
|
+
}
|
839
|
+
} else if (0 == options.rb_enc) {
|
840
|
+
options.rb_enc = rb_enc_find(options.encoding);
|
841
|
+
}
|
842
|
+
#elif HAS_PRIVATE_ENCODING
|
843
|
+
if ('\0' == *options.encoding) {
|
844
|
+
if (Qnil != encoding) {
|
845
|
+
options.rb_enc = encoding;
|
846
|
+
} else {
|
847
|
+
options.rb_enc = Qnil;
|
848
|
+
}
|
849
|
+
} else if (0 == options.rb_enc) {
|
850
|
+
options.rb_enc = rb_str_new2(options.encoding);
|
851
|
+
rb_gc_register_address(&options.rb_enc);
|
852
|
+
}
|
853
|
+
#endif
|
854
|
+
xml = defuse_bom(xml, &options);
|
855
|
+
switch (options.mode) {
|
856
|
+
case ObjMode:
|
857
|
+
#if HAS_GC_GUARD
|
858
|
+
rb_gc_disable();
|
859
|
+
#endif
|
860
|
+
obj = ox_parse(xml, len, ox_obj_callbacks, 0, &options, err);
|
861
|
+
#if HAS_GC_GUARD
|
862
|
+
RB_GC_GUARD(obj);
|
863
|
+
rb_gc_enable();
|
864
|
+
#endif
|
865
|
+
break;
|
866
|
+
case GenMode:
|
867
|
+
obj = ox_parse(xml, len, ox_gen_callbacks, 0, &options, err);
|
868
|
+
break;
|
869
|
+
case LimMode:
|
870
|
+
obj = ox_parse(xml, len, ox_limited_callbacks, 0, &options, err);
|
871
|
+
break;
|
872
|
+
case HashMode:
|
873
|
+
obj = ox_parse(xml, len, ox_hash_callbacks, 0, &options, err);
|
874
|
+
break;
|
875
|
+
case HashNoAttrMode:
|
876
|
+
obj = ox_parse(xml, len, ox_hash_no_attrs_callbacks, 0, &options, err);
|
877
|
+
break;
|
878
|
+
case NoMode:
|
879
|
+
obj = ox_parse(xml, len, ox_nomode_callbacks, 0, &options, err);
|
880
|
+
break;
|
881
|
+
default:
|
882
|
+
obj = ox_parse(xml, len, ox_gen_callbacks, 0, &options, err);
|
883
|
+
break;
|
884
|
+
}
|
885
|
+
return obj;
|
886
|
+
}
|
887
|
+
|
888
|
+
/* call-seq: load(xml, options) => Ox::Document or Ox::Element or Object
|
889
|
+
*
|
890
|
+
* Parses and XML document String into an Ox::Document, or Ox::Element, or
|
891
|
+
* Object depending on the options. Raises an exception if the XML is malformed
|
892
|
+
* or the classes specified are not valid. If a block is given it will be called
|
893
|
+
* on the completion of each complete top level entity with that entity as it's
|
894
|
+
* only argument.
|
895
|
+
*
|
896
|
+
* - +xml+ [String] XML String
|
897
|
+
* - +options+ [Hash] load options
|
898
|
+
* - *:mode* [:object|:generic|:limited] format expected
|
899
|
+
* - _:object_ - object format
|
900
|
+
* - _:generic_ - read as a generic XML file
|
901
|
+
* - _:limited_ - read as a generic XML file but with callbacks on text and elements events only
|
902
|
+
* - _:hash_ - read and convert to a Hash and core class objects only
|
903
|
+
* - _:hash_no_attrs_ - read and convert to a Hash and core class objects only without capturing attributes
|
904
|
+
* - *:effort* [:strict|:tolerant|:auto_define] effort to use when an undefined class is encountered, default: :strict
|
905
|
+
* - _:strict_ - raise an NameError for missing classes and modules
|
906
|
+
* - _:tolerant_ - return nil for missing classes and modules
|
907
|
+
* - _:auto_define_ - auto define missing classes and modules
|
908
|
+
* - *:trace* [Fixnum] trace level as a Fixnum, default: 0 (silent)
|
909
|
+
* - *:symbolize_keys* [true|false|nil] symbolize element attribute keys or leave as Strings
|
910
|
+
* - *:invalid_replace* [nil|String] replacement string for invalid XML characters on dump. nil indicates include anyway as hex. A string, limited to 10 characters will replace the invalid character with the replace.
|
911
|
+
* - *:strip_namespace* [String|true|false] "" or false result in no namespace stripping. A string of "*" or true will strip all namespaces. Any other non-empty string indicates that matching namespaces will be stripped.
|
912
|
+
*/
|
913
|
+
static VALUE
|
914
|
+
load_str(int argc, VALUE *argv, VALUE self) {
|
915
|
+
char *xml;
|
916
|
+
size_t len;
|
917
|
+
VALUE obj;
|
918
|
+
VALUE encoding;
|
919
|
+
struct _Err err;
|
920
|
+
|
921
|
+
err_init(&err);
|
922
|
+
Check_Type(*argv, T_STRING);
|
923
|
+
/* the xml string gets modified so make a copy of it */
|
924
|
+
len = RSTRING_LEN(*argv) + 1;
|
925
|
+
if (SMALL_XML < len) {
|
926
|
+
xml = ALLOC_N(char, len);
|
927
|
+
} else {
|
928
|
+
xml = ALLOCA_N(char, len);
|
929
|
+
}
|
930
|
+
#if HAS_ENCODING_SUPPORT
|
931
|
+
#ifdef MACRUBY_RUBY
|
932
|
+
encoding = rb_funcall(*argv, encoding_id, 0);
|
933
|
+
#else
|
934
|
+
encoding = rb_obj_encoding(*argv);
|
935
|
+
#endif
|
936
|
+
#elif HAS_PRIVATE_ENCODING
|
937
|
+
encoding = rb_funcall(*argv, encoding_id, 0);
|
938
|
+
#else
|
939
|
+
encoding = Qnil;
|
940
|
+
#endif
|
941
|
+
memcpy(xml, StringValuePtr(*argv), len);
|
942
|
+
xml[len - 1] = '\0';
|
943
|
+
obj = load(xml, len - 1, argc - 1, argv + 1, self, encoding, &err);
|
944
|
+
if (SMALL_XML < len) {
|
945
|
+
xfree(xml);
|
946
|
+
}
|
947
|
+
if (err_has(&err)) {
|
948
|
+
ox_err_raise(&err);
|
949
|
+
}
|
950
|
+
return obj;
|
951
|
+
}
|
952
|
+
|
953
|
+
/* call-seq: load_file(file_path, options) => Ox::Document or Ox::Element or Object
|
954
|
+
*
|
955
|
+
* Parses and XML document from a file into an Ox::Document, or Ox::Element,
|
956
|
+
* or Object depending on the options. Raises an exception if the XML is
|
957
|
+
* malformed or the classes specified are not valid.
|
958
|
+
* - +file_path+ [String] file path to read the XML document from
|
959
|
+
* - +options+ [Hash] load options
|
960
|
+
* - *:mode* [:object|:generic|:limited] format expected
|
961
|
+
* - _:object_ - object format
|
962
|
+
* - _:generic_ - read as a generic XML file
|
963
|
+
* - _:limited_ - read as a generic XML file but with callbacks on text and elements events only
|
964
|
+
* - _:hash_ - read and convert to a Hash and core class objects only
|
965
|
+
* - _:hash_no_attrs_ - read and convert to a Hash and core class objects only without capturing attributes
|
966
|
+
* - *:effort* [:strict|:tolerant|:auto_define] effort to use when an undefined class is encountered, default: :strict
|
967
|
+
* - _:strict_ - raise an NameError for missing classes and modules
|
968
|
+
* - _:tolerant_ - return nil for missing classes and modules
|
969
|
+
* - _:auto_define_ - auto define missing classes and modules
|
970
|
+
* - *:trace* [Fixnum] trace level as a Fixnum, default: 0 (silent)
|
971
|
+
* - *:symbolize_keys* [true|false|nil] symbolize element attribute keys or leave as Strings
|
972
|
+
* - *:invalid_replace* [nil|String] replacement string for invalid XML characters on dump. nil indicates include anyway as hex. A string, limited to 10 characters will replace the invalid character with the replace.
|
973
|
+
* - *:strip_namespace* [String|true|false] "" or false result in no namespace stripping. A string of "*" or true will strip all namespaces. Any other non-empty string indicates that matching namespaces will be stripped.
|
974
|
+
*/
|
975
|
+
static VALUE
|
976
|
+
load_file(int argc, VALUE *argv, VALUE self) {
|
977
|
+
char *path;
|
978
|
+
char *xml;
|
979
|
+
FILE *f;
|
980
|
+
size_t len;
|
981
|
+
VALUE obj;
|
982
|
+
struct _Err err;
|
983
|
+
|
984
|
+
err_init(&err);
|
985
|
+
Check_Type(*argv, T_STRING);
|
986
|
+
path = StringValuePtr(*argv);
|
987
|
+
if (0 == (f = fopen(path, "r"))) {
|
988
|
+
rb_raise(rb_eIOError, "%s\n", strerror(errno));
|
989
|
+
}
|
990
|
+
fseek(f, 0, SEEK_END);
|
991
|
+
len = ftell(f);
|
992
|
+
if (SMALL_XML < len) {
|
993
|
+
xml = ALLOC_N(char, len + 1);
|
994
|
+
} else {
|
995
|
+
xml = ALLOCA_N(char, len + 1);
|
996
|
+
}
|
997
|
+
fseek(f, 0, SEEK_SET);
|
998
|
+
if (len != fread(xml, 1, len, f)) {
|
999
|
+
ox_err_set(&err, rb_eLoadError, "Failed to read %ld bytes from %s.\n", (long)len, path);
|
1000
|
+
obj = Qnil;
|
1001
|
+
} else {
|
1002
|
+
xml[len] = '\0';
|
1003
|
+
obj = load(xml, len, argc - 1, argv + 1, self, Qnil, &err);
|
1004
|
+
}
|
1005
|
+
fclose(f);
|
1006
|
+
if (SMALL_XML < len) {
|
1007
|
+
xfree(xml);
|
1008
|
+
}
|
1009
|
+
if (err_has(&err)) {
|
1010
|
+
ox_err_raise(&err);
|
1011
|
+
}
|
1012
|
+
return obj;
|
1013
|
+
}
|
1014
|
+
|
1015
|
+
/* call-seq: sax_parse(handler, io, options)
|
1016
|
+
*
|
1017
|
+
* Parses an IO stream or file containing an XML document. Raises an exception
|
1018
|
+
* if the XML is malformed or the classes specified are not valid.
|
1019
|
+
* - +handler+ [Ox::Sax] SAX (responds to OX::Sax methods) like handler
|
1020
|
+
* - +io+ [IO|String] IO Object to read from
|
1021
|
+
* - +options+ [Hash] options parse options
|
1022
|
+
* - *:convert_special* [true|false] flag indicating special characters like < are converted
|
1023
|
+
* - *:symbolize* [true|false] flag indicating the parser symbolize element and attribute names
|
1024
|
+
* - *:smart* [true|false] flag indicating the parser uses hints if available (use with html)
|
1025
|
+
* - *:skip* [:skip_none|:skip_return|:skip_white|:skip_off] flag indicating the parser skips \\r or collpase white space into a single space. Default (skip space)
|
1026
|
+
* - *:strip_namespace* [nil|String|true|false] "" or false result in no namespace stripping. A string of "*" or true will strip all namespaces. Any other non-empty string indicates that matching namespaces will be stripped.
|
1027
|
+
*/
|
1028
|
+
static VALUE
|
1029
|
+
sax_parse(int argc, VALUE *argv, VALUE self) {
|
1030
|
+
struct _SaxOptions options;
|
1031
|
+
|
1032
|
+
options.symbolize = (No != ox_default_options.sym_keys);
|
1033
|
+
options.convert_special = ox_default_options.convert_special;
|
1034
|
+
options.smart = (Yes == ox_default_options.smart);
|
1035
|
+
options.skip = ox_default_options.skip;
|
1036
|
+
options.hints = NULL;
|
1037
|
+
strcpy(options.strip_ns, ox_default_options.strip_ns);
|
1038
|
+
|
1039
|
+
if (argc < 2) {
|
1040
|
+
rb_raise(ox_parse_error_class, "Wrong number of arguments to sax_parse.\n");
|
1041
|
+
}
|
1042
|
+
if (3 <= argc && rb_cHash == rb_obj_class(argv[2])) {
|
1043
|
+
VALUE h = argv[2];
|
1044
|
+
VALUE v;
|
1045
|
+
|
1046
|
+
if (Qnil != (v = rb_hash_lookup(h, convert_special_sym))) {
|
1047
|
+
options.convert_special = (Qtrue == v);
|
1048
|
+
}
|
1049
|
+
if (Qnil != (v = rb_hash_lookup(h, smart_sym))) {
|
1050
|
+
options.smart = (Qtrue == v);
|
1051
|
+
}
|
1052
|
+
if (Qnil != (v = rb_hash_lookup(h, symbolize_sym))) {
|
1053
|
+
options.symbolize = (Qtrue == v);
|
1054
|
+
}
|
1055
|
+
if (Qnil != (v = rb_hash_lookup(h, skip_sym))) {
|
1056
|
+
if (skip_return_sym == v) {
|
1057
|
+
options.skip = CrSkip;
|
1058
|
+
} else if (skip_white_sym == v) {
|
1059
|
+
options.skip = SpcSkip;
|
1060
|
+
} else if (skip_none_sym == v) {
|
1061
|
+
options.skip = NoSkip;
|
1062
|
+
} else if (skip_off_sym == v) {
|
1063
|
+
options.skip = OffSkip;
|
1064
|
+
}
|
1065
|
+
}
|
1066
|
+
if (Qnil != (v = rb_hash_lookup(h, strip_namespace_sym))) {
|
1067
|
+
if (Qfalse == v) {
|
1068
|
+
*options.strip_ns = '\0';
|
1069
|
+
} else if (Qtrue == v) {
|
1070
|
+
*options.strip_ns = '*';
|
1071
|
+
options.strip_ns[1] = '\0';
|
1072
|
+
} else {
|
1073
|
+
long slen;
|
1074
|
+
|
1075
|
+
Check_Type(v, T_STRING);
|
1076
|
+
slen = RSTRING_LEN(v);
|
1077
|
+
if (sizeof(options.strip_ns) - 1 < (size_t)slen) {
|
1078
|
+
rb_raise(ox_parse_error_class, ":strip_namespace can be no longer than %d characters.",
|
1079
|
+
(int)sizeof(options.strip_ns) - 1);
|
1080
|
+
}
|
1081
|
+
strncpy(options.strip_ns, StringValuePtr(v), sizeof(options.strip_ns) - 1);
|
1082
|
+
options.strip_ns[sizeof(options.strip_ns) - 1] = '\0';
|
1083
|
+
}
|
1084
|
+
}
|
1085
|
+
}
|
1086
|
+
ox_sax_parse(argv[0], argv[1], &options);
|
1087
|
+
|
1088
|
+
return Qnil;
|
1089
|
+
}
|
1090
|
+
|
1091
|
+
/* call-seq: sax_html(handler, io, options)
|
1092
|
+
*
|
1093
|
+
* Parses an IO stream or file containing an XML document. Raises an exception
|
1094
|
+
* if the XML is malformed or the classes specified are not valid.
|
1095
|
+
* - +handler+ [Ox::Sax] SAX (responds to OX::Sax methods) like handler
|
1096
|
+
* - +io+ [IO|String] IO Object to read from
|
1097
|
+
* - +options+ [Hash] options parse options
|
1098
|
+
* - *:convert_special* [true|false] flag indicating special characters like < are converted
|
1099
|
+
* - *:symbolize* [true|false] flag indicating the parser symbolize element and attribute names
|
1100
|
+
* - *:skip* [:skip_none|:skip_return|:skip_white|:skip_off] flag indicating the parser skips \\r or collapse white space into a single space. Default (skip space)
|
1101
|
+
* - *:overlay* [Hash] a Hash of keys that match html element names and values that are one of
|
1102
|
+
* - _:active_ - make the normal callback for the element
|
1103
|
+
* - _:nest_ok_ - active but ignore nest check
|
1104
|
+
* - _:inactive_ - do not make the element start, end, or attribute callbacks for this element only
|
1105
|
+
* - _:block_ - block this and all children callbacks
|
1106
|
+
* - _:off_ - block this element and it's children unless the child element is active
|
1107
|
+
* - _:abort_ - abort the html processing and return
|
1108
|
+
*/
|
1109
|
+
static VALUE
|
1110
|
+
sax_html(int argc, VALUE *argv, VALUE self) {
|
1111
|
+
struct _SaxOptions options;
|
1112
|
+
bool free_hints = false;
|
1113
|
+
|
1114
|
+
options.symbolize = (No != ox_default_options.sym_keys);
|
1115
|
+
options.convert_special = ox_default_options.convert_special;
|
1116
|
+
options.smart = true;
|
1117
|
+
options.skip = ox_default_options.skip;
|
1118
|
+
options.hints = ox_default_options.html_hints;
|
1119
|
+
if (NULL == options.hints) {
|
1120
|
+
options.hints = ox_hints_html();
|
1121
|
+
}
|
1122
|
+
*options.strip_ns = '\0';
|
1123
|
+
|
1124
|
+
if (argc < 2) {
|
1125
|
+
rb_raise(ox_parse_error_class, "Wrong number of arguments to sax_html.\n");
|
1126
|
+
}
|
1127
|
+
if (3 <= argc && rb_cHash == rb_obj_class(argv[2])) {
|
1128
|
+
volatile VALUE h = argv[2];
|
1129
|
+
volatile VALUE v;
|
1130
|
+
|
1131
|
+
if (Qnil != (v = rb_hash_lookup(h, convert_special_sym))) {
|
1132
|
+
options.convert_special = (Qtrue == v);
|
1133
|
+
}
|
1134
|
+
if (Qnil != (v = rb_hash_lookup(h, symbolize_sym))) {
|
1135
|
+
options.symbolize = (Qtrue == v);
|
1136
|
+
}
|
1137
|
+
if (Qnil != (v = rb_hash_lookup(h, skip_sym))) {
|
1138
|
+
if (skip_return_sym == v) {
|
1139
|
+
options.skip = CrSkip;
|
1140
|
+
} else if (skip_white_sym == v) {
|
1141
|
+
options.skip = SpcSkip;
|
1142
|
+
} else if (skip_none_sym == v) {
|
1143
|
+
options.skip = NoSkip;
|
1144
|
+
} else if (skip_off_sym == v) {
|
1145
|
+
options.skip = OffSkip;
|
1146
|
+
}
|
1147
|
+
}
|
1148
|
+
if (Qnil != (v = rb_hash_lookup(h, overlay_sym))) {
|
1149
|
+
int cnt;
|
1150
|
+
|
1151
|
+
Check_Type(v, T_HASH);
|
1152
|
+
cnt = (int)RHASH_SIZE(v);
|
1153
|
+
if (0 == cnt) {
|
1154
|
+
options.hints = ox_hints_html();
|
1155
|
+
} else {
|
1156
|
+
options.hints = ox_hints_dup(options.hints);
|
1157
|
+
free_hints = true;
|
1158
|
+
rb_hash_foreach(v, set_overlay, (VALUE)options.hints);
|
1159
|
+
}
|
1160
|
+
}
|
1161
|
+
}
|
1162
|
+
ox_sax_parse(argv[0], argv[1], &options);
|
1163
|
+
if (free_hints) {
|
1164
|
+
ox_hints_destroy(options.hints);
|
1165
|
+
}
|
1166
|
+
return Qnil;
|
1167
|
+
}
|
1168
|
+
|
1169
|
+
static void
|
1170
|
+
parse_dump_options(VALUE ropts, Options copts) {
|
1171
|
+
struct _YesNoOpt ynos[] = {
|
1172
|
+
{ with_xml_sym, &copts->with_xml },
|
1173
|
+
{ with_dtd_sym, &copts->with_dtd },
|
1174
|
+
{ with_instruct_sym, &copts->with_instruct },
|
1175
|
+
{ xsd_date_sym, &copts->xsd_date },
|
1176
|
+
{ circular_sym, &copts->circular },
|
1177
|
+
{ Qnil, 0 }
|
1178
|
+
};
|
1179
|
+
YesNoOpt o;
|
1180
|
+
|
1181
|
+
if (rb_cHash == rb_obj_class(ropts)) {
|
1182
|
+
VALUE v;
|
1183
|
+
|
1184
|
+
if (Qnil != (v = rb_hash_lookup(ropts, ox_indent_sym))) {
|
1185
|
+
#ifdef RUBY_INTEGER_UNIFICATION
|
1186
|
+
if (rb_cInteger != rb_obj_class(v) && T_FIXNUM != rb_type(v)) {
|
1187
|
+
#else
|
1188
|
+
if (rb_cFixnum != rb_obj_class(v)) {
|
1189
|
+
#endif
|
1190
|
+
rb_raise(ox_parse_error_class, ":indent must be a Fixnum.\n");
|
1191
|
+
}
|
1192
|
+
copts->indent = NUM2INT(v);
|
1193
|
+
}
|
1194
|
+
if (Qnil != (v = rb_hash_lookup(ropts, trace_sym))) {
|
1195
|
+
#ifdef RUBY_INTEGER_UNIFICATION
|
1196
|
+
if (rb_cInteger != rb_obj_class(v) && T_FIXNUM != rb_type(v)) {
|
1197
|
+
#else
|
1198
|
+
if (rb_cFixnum != rb_obj_class(v)) {
|
1199
|
+
#endif
|
1200
|
+
rb_raise(ox_parse_error_class, ":trace must be a Fixnum.\n");
|
1201
|
+
}
|
1202
|
+
copts->trace = NUM2INT(v);
|
1203
|
+
}
|
1204
|
+
if (Qnil != (v = rb_hash_lookup(ropts, ox_encoding_sym))) {
|
1205
|
+
if (rb_cString != rb_obj_class(v)) {
|
1206
|
+
rb_raise(ox_parse_error_class, ":encoding must be a String.\n");
|
1207
|
+
}
|
1208
|
+
strncpy(copts->encoding, StringValuePtr(v), sizeof(copts->encoding) - 1);
|
1209
|
+
}
|
1210
|
+
if (Qnil != (v = rb_hash_lookup(ropts, effort_sym))) {
|
1211
|
+
if (auto_define_sym == v) {
|
1212
|
+
copts->effort = AutoEffort;
|
1213
|
+
} else if (tolerant_sym == v) {
|
1214
|
+
copts->effort = TolerantEffort;
|
1215
|
+
} else if (strict_sym == v) {
|
1216
|
+
copts->effort = StrictEffort;
|
1217
|
+
} else {
|
1218
|
+
rb_raise(ox_parse_error_class, ":effort must be :strict, :tolerant, or :auto_define.\n");
|
1219
|
+
}
|
1220
|
+
}
|
1221
|
+
v = rb_hash_lookup(ropts, invalid_replace_sym);
|
1222
|
+
if (Qnil == v) {
|
1223
|
+
if (Qtrue == rb_funcall(ropts, has_key_id, 1, invalid_replace_sym)) {
|
1224
|
+
copts->allow_invalid = Yes;
|
1225
|
+
}
|
1226
|
+
} else {
|
1227
|
+
long slen;
|
1228
|
+
|
1229
|
+
Check_Type(v, T_STRING);
|
1230
|
+
slen = RSTRING_LEN(v);
|
1231
|
+
if (sizeof(copts->inv_repl) - 2 < (size_t)slen) {
|
1232
|
+
rb_raise(ox_parse_error_class, ":invalid_replace can be no longer than %d characters.",
|
1233
|
+
(int)sizeof(copts->inv_repl) - 2);
|
1234
|
+
}
|
1235
|
+
strncpy(copts->inv_repl + 1, StringValuePtr(v), sizeof(copts->inv_repl) - 1);
|
1236
|
+
copts->inv_repl[sizeof(copts->inv_repl) - 1] = '\0';
|
1237
|
+
*copts->inv_repl = (char)slen;
|
1238
|
+
copts->allow_invalid = No;
|
1239
|
+
}
|
1240
|
+
v = rb_hash_lookup(ropts, margin_sym);
|
1241
|
+
if (Qnil != v) {
|
1242
|
+
long slen;
|
1243
|
+
|
1244
|
+
Check_Type(v, T_STRING);
|
1245
|
+
slen = RSTRING_LEN(v);
|
1246
|
+
if (sizeof(copts->margin) - 2 < (size_t)slen) {
|
1247
|
+
rb_raise(ox_parse_error_class, ":margin can be no longer than %d characters.",
|
1248
|
+
(int)sizeof(copts->margin) - 2);
|
1249
|
+
}
|
1250
|
+
strncpy(copts->margin, StringValuePtr(v), sizeof(copts->margin) - 1);
|
1251
|
+
copts->margin[sizeof(copts->margin) - 1] = '\0';
|
1252
|
+
copts->margin_len = (char)slen;
|
1253
|
+
}
|
1254
|
+
|
1255
|
+
for (o = ynos; 0 != o->attr; o++) {
|
1256
|
+
if (Qnil != (v = rb_hash_lookup(ropts, o->sym))) {
|
1257
|
+
VALUE c = rb_obj_class(v);
|
1258
|
+
|
1259
|
+
if (rb_cTrueClass == c) {
|
1260
|
+
*o->attr = Yes;
|
1261
|
+
} else if (rb_cFalseClass == c) {
|
1262
|
+
*o->attr = No;
|
1263
|
+
} else {
|
1264
|
+
rb_raise(ox_parse_error_class, "%s must be true or false.\n", rb_id2name(SYM2ID(o->sym)));
|
1265
|
+
}
|
1266
|
+
}
|
1267
|
+
}
|
1268
|
+
}
|
1269
|
+
}
|
1270
|
+
|
1271
|
+
/* call-seq: dump(obj, options) => xml-string
|
1272
|
+
*
|
1273
|
+
* Dumps an Object (obj) to a string.
|
1274
|
+
* - +obj+ [Object] Object to serialize as an XML document String
|
1275
|
+
* - +options+ [Hash] formating options
|
1276
|
+
* - *:indent* [Fixnum] format expected
|
1277
|
+
* - *:xsd_date* [true|false] use XSD date format if true, default: false
|
1278
|
+
* - *:circular* [true|false] allow circular references, default: false
|
1279
|
+
* - *:strict|:tolerant]* [ :effort effort to use when an undumpable object (e.g., IO) is encountered, default: :strict
|
1280
|
+
* - _:strict_ - raise an NotImplementedError if an undumpable object is encountered
|
1281
|
+
* - _:tolerant_ - replaces undumplable objects with nil
|
1282
|
+
*
|
1283
|
+
* Note that an indent of less than zero will result in a tight one line output
|
1284
|
+
* unless the text in the XML fields contain new line characters.
|
1285
|
+
*/
|
1286
|
+
static VALUE
|
1287
|
+
dump(int argc, VALUE *argv, VALUE self) {
|
1288
|
+
char *xml;
|
1289
|
+
struct _Options copts = ox_default_options;
|
1290
|
+
VALUE rstr;
|
1291
|
+
|
1292
|
+
if (2 == argc) {
|
1293
|
+
parse_dump_options(argv[1], &copts);
|
1294
|
+
}
|
1295
|
+
if (0 == (xml = ox_write_obj_to_str(*argv, &copts))) {
|
1296
|
+
rb_raise(rb_eNoMemError, "Not enough memory.\n");
|
1297
|
+
}
|
1298
|
+
rstr = rb_str_new2(xml);
|
1299
|
+
#if HAS_ENCODING_SUPPORT
|
1300
|
+
if ('\0' != *copts.encoding) {
|
1301
|
+
rb_enc_associate(rstr, rb_enc_find(copts.encoding));
|
1302
|
+
}
|
1303
|
+
#elif HAS_PRIVATE_ENCODING
|
1304
|
+
if ('\0' != *copts.encoding) {
|
1305
|
+
rb_funcall(rstr, ox_force_encoding_id, 1, rb_str_new2(copts.encoding));
|
1306
|
+
}
|
1307
|
+
#endif
|
1308
|
+
xfree(xml);
|
1309
|
+
|
1310
|
+
return rstr;
|
1311
|
+
}
|
1312
|
+
|
1313
|
+
/* call-seq: to_file(file_path, obj, options)
|
1314
|
+
*
|
1315
|
+
* Dumps an Object to the specified file.
|
1316
|
+
* - +file_path+ [String] file path to write the XML document to
|
1317
|
+
* - +obj+ [Object] Object to serialize as an XML document String
|
1318
|
+
* - +options+ [Hash] formating options
|
1319
|
+
* - *:indent* [Fixnum] format expected
|
1320
|
+
* - *:xsd_date* [true|false] use XSD date format if true, default: false
|
1321
|
+
* - *:circular* [true|false] allow circular references, default: false
|
1322
|
+
* - *:strict|:tolerant]* [ :effort effort to use when an undumpable object (e.g., IO) is encountered, default: :strict
|
1323
|
+
* - _:strict_ - raise an NotImplementedError if an undumpable object is encountered
|
1324
|
+
* - _:tolerant_ - replaces undumplable objects with nil
|
1325
|
+
*
|
1326
|
+
* Note that an indent of less than zero will result in a tight one line output
|
1327
|
+
* unless the text in the XML fields contain new line characters.
|
1328
|
+
*/
|
1329
|
+
static VALUE
|
1330
|
+
to_file(int argc, VALUE *argv, VALUE self) {
|
1331
|
+
struct _Options copts = ox_default_options;
|
1332
|
+
|
1333
|
+
if (3 == argc) {
|
1334
|
+
parse_dump_options(argv[2], &copts);
|
1335
|
+
}
|
1336
|
+
Check_Type(*argv, T_STRING);
|
1337
|
+
ox_write_obj_to_file(argv[1], StringValuePtr(*argv), &copts);
|
1338
|
+
|
1339
|
+
return Qnil;
|
1340
|
+
}
|
1341
|
+
|
1342
|
+
#if WITH_CACHE_TESTS
|
1343
|
+
extern void ox_cache_test(void);
|
1344
|
+
|
1345
|
+
static VALUE
|
1346
|
+
cache_test(VALUE self) {
|
1347
|
+
ox_cache_test();
|
1348
|
+
return Qnil;
|
1349
|
+
}
|
1350
|
+
|
1351
|
+
extern void ox_cache8_test(void);
|
1352
|
+
|
1353
|
+
static VALUE
|
1354
|
+
cache8_test(VALUE self) {
|
1355
|
+
ox_cache8_test();
|
1356
|
+
return Qnil;
|
1357
|
+
}
|
1358
|
+
#endif
|
1359
|
+
|
1360
|
+
void Init_ox() {
|
1361
|
+
Ox = rb_define_module("Ox");
|
1362
|
+
|
1363
|
+
rb_define_module_function(Ox, "default_options", get_def_opts, 0);
|
1364
|
+
rb_define_module_function(Ox, "default_options=", set_def_opts, 1);
|
1365
|
+
|
1366
|
+
rb_define_module_function(Ox, "parse_obj", to_obj, 1);
|
1367
|
+
rb_define_module_function(Ox, "parse", to_gen, 1);
|
1368
|
+
rb_define_module_function(Ox, "load", load_str, -1);
|
1369
|
+
rb_define_module_function(Ox, "sax_parse", sax_parse, -1);
|
1370
|
+
rb_define_module_function(Ox, "sax_html", sax_html, -1);
|
1371
|
+
|
1372
|
+
rb_define_module_function(Ox, "to_xml", dump, -1);
|
1373
|
+
rb_define_module_function(Ox, "dump", dump, -1);
|
1374
|
+
|
1375
|
+
rb_define_module_function(Ox, "load_file", load_file, -1);
|
1376
|
+
rb_define_module_function(Ox, "to_file", to_file, -1);
|
1377
|
+
|
1378
|
+
rb_define_module_function(Ox, "sax_html_overlay", sax_html_overlay, 0);
|
1379
|
+
|
1380
|
+
ox_init_builder(Ox);
|
1381
|
+
|
1382
|
+
rb_require("time");
|
1383
|
+
rb_require("date");
|
1384
|
+
rb_require("bigdecimal");
|
1385
|
+
rb_require("stringio");
|
1386
|
+
|
1387
|
+
ox_abort_id = rb_intern("abort");
|
1388
|
+
ox_at_column_id = rb_intern("@column");
|
1389
|
+
ox_at_content_id = rb_intern("@content");
|
1390
|
+
ox_at_id = rb_intern("at");
|
1391
|
+
ox_at_line_id = rb_intern("@line");
|
1392
|
+
ox_at_pos_id = rb_intern("@pos");
|
1393
|
+
ox_at_value_id = rb_intern("@value");
|
1394
|
+
ox_attr_id = rb_intern("attr");
|
1395
|
+
ox_attr_value_id = rb_intern("attr_value");
|
1396
|
+
ox_attributes_id = rb_intern("@attributes");
|
1397
|
+
ox_attrs_done_id = rb_intern("attrs_done");
|
1398
|
+
ox_beg_id = rb_intern("@beg");
|
1399
|
+
ox_bigdecimal_id = rb_intern("BigDecimal");
|
1400
|
+
ox_call_id = rb_intern("call");
|
1401
|
+
ox_cdata_id = rb_intern("cdata");
|
1402
|
+
ox_comment_id = rb_intern("comment");
|
1403
|
+
ox_den_id = rb_intern("@den");
|
1404
|
+
ox_doctype_id = rb_intern("doctype");
|
1405
|
+
ox_end_element_id = rb_intern("end_element");
|
1406
|
+
ox_end_id = rb_intern("@end");
|
1407
|
+
ox_end_instruct_id = rb_intern("end_instruct");
|
1408
|
+
ox_error_id = rb_intern("error");
|
1409
|
+
ox_excl_id = rb_intern("@excl");
|
1410
|
+
ox_external_encoding_id = rb_intern("external_encoding");
|
1411
|
+
ox_fileno_id = rb_intern("fileno");
|
1412
|
+
ox_force_encoding_id = rb_intern("force_encoding");
|
1413
|
+
ox_inspect_id = rb_intern("inspect");
|
1414
|
+
ox_instruct_id = rb_intern("instruct");
|
1415
|
+
ox_jd_id = rb_intern("jd");
|
1416
|
+
ox_keys_id = rb_intern("keys");
|
1417
|
+
ox_local_id = rb_intern("local");
|
1418
|
+
ox_mesg_id = rb_intern("mesg");
|
1419
|
+
ox_message_id = rb_intern("message");
|
1420
|
+
ox_nodes_id = rb_intern("@nodes");
|
1421
|
+
ox_new_id = rb_intern("new");
|
1422
|
+
ox_num_id = rb_intern("@num");
|
1423
|
+
ox_parse_id = rb_intern("parse");
|
1424
|
+
ox_pos_id = rb_intern("pos");
|
1425
|
+
ox_read_id = rb_intern("read");
|
1426
|
+
ox_readpartial_id = rb_intern("readpartial");
|
1427
|
+
ox_start_element_id = rb_intern("start_element");
|
1428
|
+
ox_string_id = rb_intern("string");
|
1429
|
+
ox_text_id = rb_intern("text");
|
1430
|
+
ox_to_c_id = rb_intern("to_c");
|
1431
|
+
ox_to_s_id = rb_intern("to_s");
|
1432
|
+
ox_to_sym_id = rb_intern("to_sym");
|
1433
|
+
ox_tv_nsec_id = rb_intern("tv_nsec");
|
1434
|
+
ox_tv_sec_id = rb_intern("tv_sec");
|
1435
|
+
ox_tv_usec_id = rb_intern("tv_usec");
|
1436
|
+
ox_value_id = rb_intern("value");
|
1437
|
+
|
1438
|
+
encoding_id = rb_intern("encoding");
|
1439
|
+
has_key_id = rb_intern("has_key?");
|
1440
|
+
|
1441
|
+
rb_require("ox/version");
|
1442
|
+
rb_require("ox/error");
|
1443
|
+
rb_require("ox/hasattrs");
|
1444
|
+
rb_require("ox/node");
|
1445
|
+
rb_require("ox/comment");
|
1446
|
+
rb_require("ox/instruct");
|
1447
|
+
rb_require("ox/cdata");
|
1448
|
+
rb_require("ox/doctype");
|
1449
|
+
rb_require("ox/element");
|
1450
|
+
rb_require("ox/document");
|
1451
|
+
rb_require("ox/bag");
|
1452
|
+
rb_require("ox/sax");
|
1453
|
+
|
1454
|
+
ox_time_class = rb_const_get(rb_cObject, rb_intern("Time"));
|
1455
|
+
ox_date_class = rb_const_get(rb_cObject, rb_intern("Date"));
|
1456
|
+
ox_parse_error_class = rb_const_get_at(Ox, rb_intern("ParseError"));
|
1457
|
+
ox_arg_error_class = rb_const_get_at(Ox, rb_intern("ArgError"));
|
1458
|
+
ox_struct_class = rb_const_get(rb_cObject, rb_intern("Struct"));
|
1459
|
+
ox_stringio_class = rb_const_get(rb_cObject, rb_intern("StringIO"));
|
1460
|
+
ox_bigdecimal_class = rb_const_get(rb_cObject, rb_intern("BigDecimal"));
|
1461
|
+
|
1462
|
+
abort_sym = ID2SYM(rb_intern("abort")); rb_gc_register_address(&abort_sym);
|
1463
|
+
active_sym = ID2SYM(rb_intern("active")); rb_gc_register_address(&active_sym);
|
1464
|
+
attr_key_mod_sym = ID2SYM(rb_intern("attr_key_mod")); rb_gc_register_address(&attr_key_mod_sym);
|
1465
|
+
auto_define_sym = ID2SYM(rb_intern("auto_define")); rb_gc_register_address(&auto_define_sym);
|
1466
|
+
auto_sym = ID2SYM(rb_intern("auto")); rb_gc_register_address(&auto_sym);
|
1467
|
+
block_sym = ID2SYM(rb_intern("block")); rb_gc_register_address(&block_sym);
|
1468
|
+
circular_sym = ID2SYM(rb_intern("circular")); rb_gc_register_address(&circular_sym);
|
1469
|
+
convert_special_sym = ID2SYM(rb_intern("convert_special")); rb_gc_register_address(&convert_special_sym);
|
1470
|
+
effort_sym = ID2SYM(rb_intern("effort")); rb_gc_register_address(&effort_sym);
|
1471
|
+
element_key_mod_sym = ID2SYM(rb_intern("element_key_mod")); rb_gc_register_address(&element_key_mod_sym);
|
1472
|
+
generic_sym = ID2SYM(rb_intern("generic")); rb_gc_register_address(&generic_sym);
|
1473
|
+
hash_no_attrs_sym = ID2SYM(rb_intern("hash_no_attrs")); rb_gc_register_address(&hash_no_attrs_sym);
|
1474
|
+
hash_sym = ID2SYM(rb_intern("hash")); rb_gc_register_address(&hash_sym);
|
1475
|
+
inactive_sym = ID2SYM(rb_intern("inactive")); rb_gc_register_address(&inactive_sym);
|
1476
|
+
invalid_replace_sym = ID2SYM(rb_intern("invalid_replace")); rb_gc_register_address(&invalid_replace_sym);
|
1477
|
+
limited_sym = ID2SYM(rb_intern("limited")); rb_gc_register_address(&limited_sym);
|
1478
|
+
margin_sym = ID2SYM(rb_intern("margin")); rb_gc_register_address(&margin_sym);
|
1479
|
+
mode_sym = ID2SYM(rb_intern("mode")); rb_gc_register_address(&mode_sym);
|
1480
|
+
nest_ok_sym = ID2SYM(rb_intern("nest_ok")); rb_gc_register_address(&nest_ok_sym);
|
1481
|
+
object_sym = ID2SYM(rb_intern("object")); rb_gc_register_address(&object_sym);
|
1482
|
+
off_sym = ID2SYM(rb_intern("off")); rb_gc_register_address(&off_sym);
|
1483
|
+
opt_format_sym = ID2SYM(rb_intern("opt_format")); rb_gc_register_address(&opt_format_sym);
|
1484
|
+
optimized_sym = ID2SYM(rb_intern("optimized")); rb_gc_register_address(&optimized_sym);
|
1485
|
+
overlay_sym = ID2SYM(rb_intern("overlay")); rb_gc_register_address(&overlay_sym);
|
1486
|
+
ox_encoding_sym = ID2SYM(rb_intern("encoding")); rb_gc_register_address(&ox_encoding_sym);
|
1487
|
+
ox_indent_sym = ID2SYM(rb_intern("indent")); rb_gc_register_address(&ox_indent_sym);
|
1488
|
+
ox_size_sym = ID2SYM(rb_intern("size")); rb_gc_register_address(&ox_size_sym);
|
1489
|
+
ox_standalone_sym = ID2SYM(rb_intern("standalone")); rb_gc_register_address(&ox_standalone_sym);
|
1490
|
+
ox_version_sym = ID2SYM(rb_intern("version")); rb_gc_register_address(&ox_version_sym);
|
1491
|
+
skip_none_sym = ID2SYM(rb_intern("skip_none")); rb_gc_register_address(&skip_none_sym);
|
1492
|
+
skip_off_sym = ID2SYM(rb_intern("skip_off")); rb_gc_register_address(&skip_off_sym);
|
1493
|
+
skip_return_sym = ID2SYM(rb_intern("skip_return")); rb_gc_register_address(&skip_return_sym);
|
1494
|
+
skip_sym = ID2SYM(rb_intern("skip")); rb_gc_register_address(&skip_sym);
|
1495
|
+
skip_white_sym = ID2SYM(rb_intern("skip_white")); rb_gc_register_address(&skip_white_sym);
|
1496
|
+
smart_sym = ID2SYM(rb_intern("smart")); rb_gc_register_address(&smart_sym);
|
1497
|
+
strict_sym = ID2SYM(rb_intern("strict")); rb_gc_register_address(&strict_sym);
|
1498
|
+
strip_namespace_sym = ID2SYM(rb_intern("strip_namespace")); rb_gc_register_address(&strip_namespace_sym);
|
1499
|
+
symbolize_keys_sym = ID2SYM(rb_intern("symbolize_keys")); rb_gc_register_address(&symbolize_keys_sym);
|
1500
|
+
symbolize_sym = ID2SYM(rb_intern("symbolize")); rb_gc_register_address(&symbolize_sym);
|
1501
|
+
tolerant_sym = ID2SYM(rb_intern("tolerant")); rb_gc_register_address(&tolerant_sym);
|
1502
|
+
trace_sym = ID2SYM(rb_intern("trace")); rb_gc_register_address(&trace_sym);
|
1503
|
+
with_dtd_sym = ID2SYM(rb_intern("with_dtd")); rb_gc_register_address(&with_dtd_sym);
|
1504
|
+
with_instruct_sym = ID2SYM(rb_intern("with_instructions")); rb_gc_register_address(&with_instruct_sym);
|
1505
|
+
with_xml_sym = ID2SYM(rb_intern("with_xml")); rb_gc_register_address(&with_xml_sym);
|
1506
|
+
xsd_date_sym = ID2SYM(rb_intern("xsd_date")); rb_gc_register_address(&xsd_date_sym);
|
1507
|
+
|
1508
|
+
ox_empty_string = rb_str_new2(""); rb_gc_register_address(&ox_empty_string);
|
1509
|
+
ox_zero_fixnum = INT2NUM(0); rb_gc_register_address(&ox_zero_fixnum);
|
1510
|
+
ox_sym_bank = rb_ary_new(); rb_gc_register_address(&ox_sym_bank);
|
1511
|
+
|
1512
|
+
ox_document_clas = rb_const_get_at(Ox, rb_intern("Document"));
|
1513
|
+
ox_element_clas = rb_const_get_at(Ox, rb_intern("Element"));
|
1514
|
+
ox_instruct_clas = rb_const_get_at(Ox, rb_intern("Instruct"));
|
1515
|
+
ox_comment_clas = rb_const_get_at(Ox, rb_intern("Comment"));
|
1516
|
+
ox_raw_clas = rb_const_get_at(Ox, rb_intern("Raw"));
|
1517
|
+
ox_doctype_clas = rb_const_get_at(Ox, rb_intern("DocType"));
|
1518
|
+
ox_cdata_clas = rb_const_get_at(Ox, rb_intern("CData"));
|
1519
|
+
ox_bag_clas = rb_const_get_at(Ox, rb_intern("Bag"));
|
1520
|
+
|
1521
|
+
ox_cache_new(&ox_symbol_cache);
|
1522
|
+
ox_cache_new(&ox_class_cache);
|
1523
|
+
ox_cache_new(&ox_attr_cache);
|
1524
|
+
|
1525
|
+
ox_sax_define();
|
1526
|
+
|
1527
|
+
#if WITH_CACHE_TESTS
|
1528
|
+
// space added to stop yardoc from trying to document
|
1529
|
+
rb_define _module_function(Ox, "cache_test", cache_test, 0);
|
1530
|
+
rb_define _module_function(Ox, "cache8_test", cache8_test, 0);
|
1531
|
+
#endif
|
1532
|
+
|
1533
|
+
#if HAS_ENCODING_SUPPORT
|
1534
|
+
ox_utf8_encoding = rb_enc_find("UTF-8");
|
1535
|
+
#elif HAS_PRIVATE_ENCODING
|
1536
|
+
ox_utf8_encoding = rb_str_new2("UTF-8");
|
1537
|
+
rb_gc_register_address(&ox_utf8_encoding);
|
1538
|
+
#endif
|
1539
|
+
}
|
1540
|
+
|
1541
|
+
#if __GNUC__ > 4
|
1542
|
+
_Noreturn void
|
1543
|
+
#else
|
1544
|
+
void
|
1545
|
+
#endif
|
1546
|
+
_ox_raise_error(const char *msg, const char *xml, const char *current, const char* file, int line) {
|
1547
|
+
int xline = 1;
|
1548
|
+
int col = 1;
|
1549
|
+
|
1550
|
+
for (; xml < current && '\n' != *current; current--) {
|
1551
|
+
col++;
|
1552
|
+
}
|
1553
|
+
for (; xml < current; current--) {
|
1554
|
+
if ('\n' == *current) {
|
1555
|
+
xline++;
|
1556
|
+
}
|
1557
|
+
}
|
1558
|
+
#if HAS_GC_GUARD
|
1559
|
+
rb_gc_enable();
|
1560
|
+
#endif
|
1561
|
+
rb_raise(ox_parse_error_class, "%s at line %d, column %d [%s:%d]\n", msg, xline, col, file, line);
|
1562
|
+
}
|