paynow_sdk 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 +8 -0
- data/.travis.yml +6 -0
- data/Gemfile +8 -0
- data/Gemfile.lock +30 -0
- data/README.md +36 -0
- data/Rakefile +10 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/lib/paynow_sdk.rb +269 -0
- data/lib/paynow_sdk/version.rb +3 -0
- data/paynow_sdk.gemspec +27 -0
- data/vendor/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/minitest-5.14.1.gem +0 -0
- data/vendor/cache/minitest-reporters-1.4.2.gem +0 -0
- data/vendor/cache/rake-12.3.3.gem +0 -0
- data/vendor/cache/ruby-progressbar-1.10.1.gem +0 -0
- data/vendor/cache/ruby/2.7.0/bin/rake +27 -0
- data/vendor/cache/ruby/2.7.0/cache/ansi-1.5.0.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/builder-3.2.4.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/minitest-5.14.1.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/minitest-reporters-1.4.2.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/rake-12.3.3.gem +0 -0
- data/vendor/cache/ruby/2.7.0/cache/ruby-progressbar-1.10.1.gem +0 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/.index +77 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/.yardopts +8 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/DEMO.md +451 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/HISTORY.md +217 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/LICENSE.txt +23 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/NOTICE.md +170 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/README.md +91 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/01_ansicode.md +65 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/02_core.md +11 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/03_logger.md +30 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/04_progressbar.md +62 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/05_mixin.md +37 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/06_string.md +56 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/07_columns.md +89 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/08_table.md +28 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/09_diff.md +47 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/10_bbcode.md +24 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/11_terminal.md +8 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/applique/ae.rb +1 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/demo/applique/output.rb +5 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi.yml +77 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/bbcode.rb +334 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/chain.rb +50 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/chart.rb +100 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/code.rb +349 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/columns.rb +197 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/constants.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/core.rb +30 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/diff.rb +215 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/hexdump.rb +122 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/logger.rb +211 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/mixin.rb +121 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/progressbar.rb +292 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/string.rb +254 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/table.rb +179 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal.rb +44 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/curses.rb +26 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/stty.rb +62 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/termios.rb +68 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/terminal/win32.rb +107 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/lib/ansi/version.rb +15 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_ansicode.rb +43 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_bbcode.rb +35 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_mixin.rb +35 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/case_progressbar.rb +21 -0
- data/vendor/cache/ruby/2.7.0/gems/ansi-1.5.0/test/test_helper.rb +3 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/CHANGES +119 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/MIT-LICENSE +20 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/README.md +258 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/Rakefile +194 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/builder.blurb +27 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/builder.gemspec +45 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/jamis.rb +592 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-1.2.4.rdoc +31 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-2.0.0.rdoc +46 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/doc/releases/builder-2.1.1.rdoc +58 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/blankslate.rb +138 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/blankslate.rb +24 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/version.rb +9 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xchar.rb +198 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlbase.rb +200 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlevents.rb +64 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/lib/builder/xmlmarkup.rb +345 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/publish.rake +21 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/tags.rake +63 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/rakelib/testing.rake +8 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/helper.rb +13 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/performance.rb +42 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/preload.rb +40 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_blankslate.rb +208 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_eventbuilder.rb +151 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_markupbuilder.rb +617 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_method_caching.rb +63 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_namecollision.rb +40 -0
- data/vendor/cache/ruby/2.7.0/gems/builder-3.2.4/test/test_xchar.rb +85 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/.autotest +34 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/History.rdoc +1392 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/Manifest.txt +27 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/README.rdoc +764 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/Rakefile +74 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/design_rationale.rb +52 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/hoe/minitest.rb +32 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest.rb +1056 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/assertions.rb +807 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/autorun.rb +13 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/benchmark.rb +455 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/expectations.rb +303 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/hell.rb +11 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/mock.rb +240 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/parallel.rb +70 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/pride.rb +4 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/pride_plugin.rb +142 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/spec.rb +342 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/test.rb +220 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/lib/minitest/unit.rb +45 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/metametameta.rb +136 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_assertions.rb +1567 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_benchmark.rb +137 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_mock.rb +872 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_reporter.rb +299 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_spec.rb +1061 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-5.14.1/test/minitest/test_minitest_test.rb +1084 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.gitignore +28 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.rubocop.yml +77 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.ruby-gemset +1 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.travis.yml +15 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/.yardopts +6 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/CHANGELOG.md +120 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/Gemfile +2 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/LICENSE +20 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/README.md +135 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/Rakefile +70 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/appveyor.yml +22 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/default-reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/mean_time_reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/progress-reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/assets/spec-reporter.png +0 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/extensible_backtrace_filter.rb +67 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/minitest_reporter_plugin.rb +82 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/old_activesupport_fix.rb +24 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/relative_position.rb +26 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters.rb +91 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/ansi.rb +30 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/base_reporter.rb +136 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/default_reporter.rb +245 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/html_reporter.rb +224 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/junit_reporter.rb +174 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/mean_time_reporter.rb +388 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/progress_reporter.rb +104 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/ruby_mate_reporter.rb +54 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/rubymine_reporter.rb +116 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/spec_reporter.rb +61 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/reporters/version.rb +5 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/lib/minitest/templates/index.html.erb +85 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/minitest-reporters.gemspec +31 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/junit_filename_bug_example_test.rb +41 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/mean_time_test.rb +36 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/progress_detailed_skip_test.rb +8 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/progress_test.rb +8 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/sample_test.rb +15 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/fixtures/spec_test.rb +18 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/gallery/bad_test.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/gallery/good_test.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/junit_reporter_test.rb +12 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/mean_time_reporter_test.rb +7 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/integration/reporters/progress_reporter_test.rb +40 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/test_helper.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/extensible_backtrace_filter_test.rb +42 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/junit_reporter_test.rb +46 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/mean_time_reporter_unit_test.rb +149 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/minitest_reporter_plugin_test.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/reporters_test.rb +65 -0
- data/vendor/cache/ruby/2.7.0/gems/minitest-reporters-1.4.2/test/unit/minitest/spec_reporter_test.rb +62 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/CONTRIBUTING.rdoc +43 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/Gemfile +3 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/History.rdoc +2344 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/MIT-LICENSE +21 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/README.rdoc +156 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/Rakefile +41 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/azure-pipelines.yml +11 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/bundle +105 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/console +7 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rake +29 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rdoc +29 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/rubocop +29 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/bin/setup +6 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/command_line_usage.rdoc +158 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile1 +38 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/Rakefile2 +35 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/a.c +6 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/b.c +6 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/example/main.c +11 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/glossary.rdoc +42 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/jamis.rb +592 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/proto_rake.rdoc +127 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rake.1 +156 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rakefile.rdoc +622 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/doc/rational.rdoc +151 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/exe/rake +27 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake.rb +71 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/application.rb +824 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/backtrace.rb +24 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/clean.rb +78 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cloneable.rb +17 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/cpu_counter.rb +107 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/default_loader.rb +15 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/dsl_definition.rb +195 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/early_time.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/core.rb +26 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/ext/string.rb +176 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_creation_task.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_list.rb +435 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_task.rb +54 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils.rb +137 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/file_utils_ext.rb +145 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_chain.rb +57 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/invocation_exception_mixin.rb +17 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/late_time.rb +18 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/linked_list.rb +112 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/loaders/makefile.rb +54 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/multi_task.rb +14 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/name_space.rb +38 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/packagetask.rb +207 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/phony.rb +16 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/private_reader.rb +21 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/promise.rb +100 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/pseudo_status.rb +30 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_module.rb +67 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rake_test_loader.rb +27 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/rule_recursion_overflow_error.rb +20 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/scope.rb +43 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task.rb +413 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_argument_error.rb +8 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_arguments.rb +109 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/task_manager.rb +324 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/tasklib.rb +12 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/testtask.rb +224 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_history_display.rb +49 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/thread_pool.rb +163 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/trace_output.rb +23 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/version.rb +10 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/lib/rake/win32.rb +51 -0
- data/vendor/cache/ruby/2.7.0/gems/rake-12.3.3/rake.gemspec +42 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/LICENSE.txt +19 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/README.md +38 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/Rakefile +2 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar.rb +22 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/base.rb +183 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/length.rb +100 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/calculators/running_average.rb +9 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components.rb +5 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/bar.rb +102 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/percentage.rb +29 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/rate.rb +43 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/time.rb +107 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/components/title.rb +13 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/errors/invalid_progress_error.rb +4 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format.rb +3 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/formatter.rb +27 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/molecule.rb +60 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/format/string.rb +36 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/output.rb +68 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/non_tty.rb +47 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/null.rb +33 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/outputs/tty.rb +32 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/progress.rb +118 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements.rb +1 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/refinements/enumerator.rb +23 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/throttle.rb +25 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/time.rb +32 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/timer.rb +72 -0
- data/vendor/cache/ruby/2.7.0/gems/ruby-progressbar-1.10.1/lib/ruby-progressbar/version.rb +3 -0
- data/vendor/cache/ruby/2.7.0/specifications/ansi-1.5.0.gemspec +42 -0
- data/vendor/cache/ruby/2.7.0/specifications/builder-3.2.4.gemspec +23 -0
- data/vendor/cache/ruby/2.7.0/specifications/minitest-5.14.1.gemspec +38 -0
- data/vendor/cache/ruby/2.7.0/specifications/minitest-reporters-1.4.2.gemspec +43 -0
- data/vendor/cache/ruby/2.7.0/specifications/rake-12.3.3.gemspec +43 -0
- data/vendor/cache/ruby/2.7.0/specifications/ruby-progressbar-1.10.1.gemspec +40 -0
- metadata +330 -0
@@ -0,0 +1,197 @@
|
|
1
|
+
require 'ansi/terminal'
|
2
|
+
|
3
|
+
module ANSI
|
4
|
+
|
5
|
+
#
|
6
|
+
class Columns
|
7
|
+
|
8
|
+
# Create a column-based layout.
|
9
|
+
#
|
10
|
+
# @param [String,Array] list
|
11
|
+
# Multiline String or Array of strings to columnize.
|
12
|
+
#
|
13
|
+
# @param [Hash] options
|
14
|
+
# Options to customize columnization.
|
15
|
+
#
|
16
|
+
# @option options [Fixnum] :columns
|
17
|
+
# Number of columns.
|
18
|
+
#
|
19
|
+
# @option options [Symbol] :align
|
20
|
+
# Column alignment, either :left, :right or :center.
|
21
|
+
#
|
22
|
+
# @option options [String,Fixnum] :padding
|
23
|
+
# String or number or spaces to append to each column.
|
24
|
+
#
|
25
|
+
# The +format+ block MUST return ANSI codes.
|
26
|
+
def initialize(list, options={}, &format)
|
27
|
+
self.list = list
|
28
|
+
|
29
|
+
self.columns = options[:columns] || options[:cols]
|
30
|
+
self.padding = options[:padding] || 1
|
31
|
+
self.align = options[:align] || :left
|
32
|
+
#self.ansi = options[:ansi]
|
33
|
+
self.format = format
|
34
|
+
|
35
|
+
#@columns = nil if @columns == 0
|
36
|
+
end
|
37
|
+
|
38
|
+
#
|
39
|
+
def inspect
|
40
|
+
"#<#{self.class}:#{object_id} #{list.inspect} x #{columns}>"
|
41
|
+
end
|
42
|
+
|
43
|
+
# List layout into columns. Each new line is taken to be
|
44
|
+
# a row-column cell.
|
45
|
+
attr :list
|
46
|
+
|
47
|
+
def list=(list)
|
48
|
+
case list
|
49
|
+
when ::String
|
50
|
+
@list = list.lines.to_a.map{ |e| e.chomp("\n") }
|
51
|
+
when ::Array
|
52
|
+
@list = list.map{ |e| e.to_s }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# Default number of columns to display. If nil then the number
|
57
|
+
# of coumns is estimated from the size of the terminal.
|
58
|
+
attr :columns
|
59
|
+
|
60
|
+
# Set column count ensuring value is either an integer or nil.
|
61
|
+
# The the value given is zero, it will be taken to mean the same
|
62
|
+
# as nil, which means fit-to-screen.
|
63
|
+
def columns=(integer)
|
64
|
+
integer = integer.to_i
|
65
|
+
@columns = (integer.zero? ? nil : integer)
|
66
|
+
end
|
67
|
+
|
68
|
+
# Padding size to apply to cells.
|
69
|
+
attr :padding
|
70
|
+
|
71
|
+
# Set padding to string or number (of spaces).
|
72
|
+
def padding=(pad)
|
73
|
+
case pad
|
74
|
+
when Numeric
|
75
|
+
@padding = ' ' * pad.to_i
|
76
|
+
else
|
77
|
+
@padding = pad.to_s
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
# Alignment to apply to cells.
|
82
|
+
attr :align
|
83
|
+
|
84
|
+
# Set alignment ensuring value is a symbol.
|
85
|
+
#
|
86
|
+
# @param [#to_sym] symbol
|
87
|
+
# Either `:right`, `:left` or `:center`.
|
88
|
+
#
|
89
|
+
# @return [Symbol] The given symbol.
|
90
|
+
def align=(symbol)
|
91
|
+
symbol = symbol.to_sym
|
92
|
+
raise ArgumentError, "invalid alignment -- #{symbol.inspect}" \
|
93
|
+
unless [:left, :right, :center].include?(symbol)
|
94
|
+
@align = symbol
|
95
|
+
end
|
96
|
+
|
97
|
+
# Formating to apply to cells.
|
98
|
+
attr :format
|
99
|
+
|
100
|
+
# Set formatting procedure. The procedure must return
|
101
|
+
# ANSI codes, suitable for passing to String#ansi method.
|
102
|
+
def format=(procedure)
|
103
|
+
@format = procedure ? procedure.to_proc : nil
|
104
|
+
end
|
105
|
+
|
106
|
+
# TODO: Should #to_s also take options and formatting block?
|
107
|
+
# Maybe instead have hoin take all these and leave #to_s bare.
|
108
|
+
|
109
|
+
# Return string in column layout. The number of columns is determined
|
110
|
+
# by the `columns` property or overriden by +cols+ argument.
|
111
|
+
def to_s(cols=nil)
|
112
|
+
to_s_columns(cols || columns)
|
113
|
+
end
|
114
|
+
|
115
|
+
#
|
116
|
+
def join(cols=nil)
|
117
|
+
to_s_columns(cols || columns)
|
118
|
+
end
|
119
|
+
|
120
|
+
private
|
121
|
+
|
122
|
+
# Layout string lines into columns.
|
123
|
+
#
|
124
|
+
# @todo Put in empty strings for blank cells.
|
125
|
+
# @todo Centering look like it's off by one to the right.
|
126
|
+
#
|
127
|
+
def to_s_columns(columns=nil)
|
128
|
+
lines = list.to_a
|
129
|
+
count = lines.size
|
130
|
+
max = lines.map{ |l| l.size }.max
|
131
|
+
|
132
|
+
if columns.nil?
|
133
|
+
width = Terminal.terminal_width
|
134
|
+
columns = (width / (max + padding.size)).to_i
|
135
|
+
end
|
136
|
+
|
137
|
+
rows = []
|
138
|
+
mod = (count / columns.to_f).to_i
|
139
|
+
mod += 1 if count % columns != 0
|
140
|
+
|
141
|
+
lines.each_with_index do |line, index|
|
142
|
+
(rows[index % mod] ||=[]) << line.strip
|
143
|
+
end
|
144
|
+
|
145
|
+
pad = padding
|
146
|
+
tmp = template(max, pad)
|
147
|
+
str = ""
|
148
|
+
rows.each_with_index do |row, ri|
|
149
|
+
row.each_with_index do |cell, ci|
|
150
|
+
ansi_codes = ansi_formatting(cell, ci, ri)
|
151
|
+
if ansi_codes.empty?
|
152
|
+
str << (tmp % cell)
|
153
|
+
else
|
154
|
+
str << (tmp % cell).ansi(*ansi_codes)
|
155
|
+
end
|
156
|
+
end
|
157
|
+
str.rstrip!
|
158
|
+
str << "\n"
|
159
|
+
end
|
160
|
+
str
|
161
|
+
end
|
162
|
+
|
163
|
+
# Aligns the cell left or right.
|
164
|
+
def template(max, pad)
|
165
|
+
case align
|
166
|
+
when :center, 'center'
|
167
|
+
offset = " " * (max / 2)
|
168
|
+
"#{offset}%#{max}s#{offset}#{pad}"
|
169
|
+
when :right, 'right'
|
170
|
+
"%#{max}s#{pad}"
|
171
|
+
else
|
172
|
+
"%-#{max}s#{pad}"
|
173
|
+
end
|
174
|
+
end
|
175
|
+
|
176
|
+
# Used to apply ANSI formatting to each cell.
|
177
|
+
def ansi_formatting(cell, col, row)
|
178
|
+
if @format
|
179
|
+
case @format.arity
|
180
|
+
when 0
|
181
|
+
f = @format[]
|
182
|
+
when 1
|
183
|
+
f = @format[cell]
|
184
|
+
when 2
|
185
|
+
f = @format[col, row]
|
186
|
+
else
|
187
|
+
f = @format[cell, col, row]
|
188
|
+
end
|
189
|
+
else
|
190
|
+
f = nil
|
191
|
+
end
|
192
|
+
[f].flatten.compact
|
193
|
+
end
|
194
|
+
|
195
|
+
end
|
196
|
+
|
197
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module ANSI
|
2
|
+
|
3
|
+
require 'ansi/chart'
|
4
|
+
|
5
|
+
# Converts {CHART} and {SPECIAL_CHART} entries into constants.
|
6
|
+
# So for example, the CHART entry for :red becomes:
|
7
|
+
#
|
8
|
+
# ANSI::Constants::RED #=> "\e[31m"
|
9
|
+
#
|
10
|
+
# The ANSI Constants are include into ANSI::Code and can be included
|
11
|
+
# any where will they would be of use.
|
12
|
+
#
|
13
|
+
module Constants
|
14
|
+
|
15
|
+
CHART.each do |name, code|
|
16
|
+
const_set(name.to_s.upcase, "\e[#{code}m")
|
17
|
+
end
|
18
|
+
|
19
|
+
SPECIAL_CHART.each do |name, code|
|
20
|
+
const_set(name.to_s.upcase, code)
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'ansi/code'
|
2
|
+
require 'ansi/chain'
|
3
|
+
|
4
|
+
class ::String
|
5
|
+
|
6
|
+
#
|
7
|
+
def ansi(*codes)
|
8
|
+
if codes.empty?
|
9
|
+
ANSI::Chain.new(self)
|
10
|
+
else
|
11
|
+
ANSI::Code.ansi(self, *codes)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
#
|
16
|
+
def ansi!(*codes)
|
17
|
+
replace(ansi(*codes))
|
18
|
+
end
|
19
|
+
|
20
|
+
#
|
21
|
+
def unansi
|
22
|
+
ANSI::Code.unansi(self)
|
23
|
+
end
|
24
|
+
|
25
|
+
#
|
26
|
+
def unansi!
|
27
|
+
replace(unansi)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
@@ -0,0 +1,215 @@
|
|
1
|
+
require 'ansi/code'
|
2
|
+
|
3
|
+
module ANSI
|
4
|
+
|
5
|
+
# Diff produces colorized differences of two string or objects.
|
6
|
+
#
|
7
|
+
class Diff
|
8
|
+
|
9
|
+
# Highlights the differnce between two strings.
|
10
|
+
#
|
11
|
+
# This class method is equivalent to calling:
|
12
|
+
#
|
13
|
+
# ANSI::Diff.new(object1, object2).to_a
|
14
|
+
#
|
15
|
+
def self.diff(object1, object2, options={})
|
16
|
+
new(object1, object2, options={}).to_a
|
17
|
+
end
|
18
|
+
|
19
|
+
# Setup new Diff object. If the objects given are not Strings
|
20
|
+
# and do not have `#to_str` defined to coerce them to such, then
|
21
|
+
# their `#inspect` methods are used to convert them to strings
|
22
|
+
# for comparison.
|
23
|
+
#
|
24
|
+
# @param [Object] object1
|
25
|
+
# First object to compare.
|
26
|
+
#
|
27
|
+
# @param [Object] object2
|
28
|
+
# Second object to compare.
|
29
|
+
#
|
30
|
+
# @param [Hash] options
|
31
|
+
# Options for contoller the way difference is shown. (Not yet used.)
|
32
|
+
#
|
33
|
+
def initialize(object1, object2, options={})
|
34
|
+
@object1 = convert(object1)
|
35
|
+
@object2 = convert(object2)
|
36
|
+
|
37
|
+
@diff1, @diff2 = diff_string(@object1, @object2)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Returns the first object's difference string.
|
41
|
+
def diff1
|
42
|
+
@diff1
|
43
|
+
end
|
44
|
+
|
45
|
+
# Returns the second object's difference string.
|
46
|
+
def diff2
|
47
|
+
@diff2
|
48
|
+
end
|
49
|
+
|
50
|
+
# Returns both first and second difference strings separated by a
|
51
|
+
# new line character.
|
52
|
+
#
|
53
|
+
# @todo Should we use `$/` record separator instead?
|
54
|
+
#
|
55
|
+
# @return [String] Joined difference strings.
|
56
|
+
def to_s
|
57
|
+
"#{@diff1}\n#{@diff2}"
|
58
|
+
end
|
59
|
+
|
60
|
+
# Returns both first and second difference strings separated by a
|
61
|
+
# the given `separator`. The default is `$/`, the record separator.
|
62
|
+
#
|
63
|
+
# @param [String] separator
|
64
|
+
# The string to use as the separtor between the difference strings.
|
65
|
+
#
|
66
|
+
# @return [String] Joined difference strings.
|
67
|
+
def join(separator=$/)
|
68
|
+
"#{@diff1}#{separator}#{@diff2}"
|
69
|
+
end
|
70
|
+
|
71
|
+
# Returns the first and second difference strings in an array.
|
72
|
+
#
|
73
|
+
# @return [Array] Both difference strings.
|
74
|
+
def to_a
|
75
|
+
[diff1, diff2]
|
76
|
+
end
|
77
|
+
|
78
|
+
private
|
79
|
+
|
80
|
+
# Take two plain strings and produce colorized
|
81
|
+
# versions of each highlighting their differences.
|
82
|
+
#
|
83
|
+
# @param [String] string1
|
84
|
+
# First string to compare.
|
85
|
+
#
|
86
|
+
# @param [String] string2
|
87
|
+
# Second string to compare.
|
88
|
+
#
|
89
|
+
# @return [Array<String>] The two difference strings.
|
90
|
+
def diff_string(string1, string2)
|
91
|
+
compare(string1, string2)
|
92
|
+
end
|
93
|
+
|
94
|
+
# Ensure the object of comparison is a string. If +object+ is not
|
95
|
+
# an instance of String then it wll be converted to one by calling
|
96
|
+
# either #to_str, if the object responds to it, or #inspect.
|
97
|
+
def convert(object)
|
98
|
+
if String === object
|
99
|
+
object
|
100
|
+
elsif object.respond_to?(:to_str)
|
101
|
+
object.to_str
|
102
|
+
else
|
103
|
+
object.inspect
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
# Rotation of colors for diff output.
|
108
|
+
COLORS = [:red, :yellow, :magenta]
|
109
|
+
|
110
|
+
# Take two plain strings and produce colorized
|
111
|
+
# versions of each highlighting their differences.
|
112
|
+
#
|
113
|
+
# @param [String] x
|
114
|
+
# First string to compare.
|
115
|
+
#
|
116
|
+
# @param [String] y
|
117
|
+
# Second string to compare.
|
118
|
+
#
|
119
|
+
# @return [Array<String>] The two difference strings.
|
120
|
+
def compare(x, y)
|
121
|
+
c = common(x, y)
|
122
|
+
a = x.dup
|
123
|
+
b = y.dup
|
124
|
+
oi = 0
|
125
|
+
oj = 0
|
126
|
+
c.each_with_index do |m, q|
|
127
|
+
i = a.index(m, oi)
|
128
|
+
j = b.index(m, oj)
|
129
|
+
a[i,m.size] = ANSI.ansi(m, COLORS[q%3]) if i
|
130
|
+
b[j,m.size] = ANSI.ansi(m, COLORS[q%3]) if j
|
131
|
+
oi = i + m.size if i
|
132
|
+
oj = j + m.size if j
|
133
|
+
end
|
134
|
+
return a, b
|
135
|
+
end
|
136
|
+
|
137
|
+
# Oh, I should have documented this will I knew what the
|
138
|
+
# hell it was doing ;)
|
139
|
+
def common(x,y)
|
140
|
+
c = lcs(x, y)
|
141
|
+
|
142
|
+
i = x.index(c)
|
143
|
+
j = y.index(c)
|
144
|
+
|
145
|
+
ix = i + c.size
|
146
|
+
jx = j + c.size
|
147
|
+
|
148
|
+
if i == 0
|
149
|
+
l = y[0...j]
|
150
|
+
elsif j == 0
|
151
|
+
l = x[0...i]
|
152
|
+
else
|
153
|
+
l = common(x[0...i], y[0...j])
|
154
|
+
end
|
155
|
+
|
156
|
+
if ix == x.size - 1
|
157
|
+
r = y[jx..-1]
|
158
|
+
elsif jx = y.size - 1
|
159
|
+
r = x[ix..-1]
|
160
|
+
else
|
161
|
+
r = common(x[ix..-1], y[jx..-1])
|
162
|
+
end
|
163
|
+
|
164
|
+
[l, c, r].flatten.reject{ |s| s.empty? }
|
165
|
+
end
|
166
|
+
|
167
|
+
# Least common string.
|
168
|
+
def lcs(s1, s2)
|
169
|
+
res=""
|
170
|
+
num=Array.new(s1.size){Array.new(s2.size)}
|
171
|
+
len,ans=0
|
172
|
+
lastsub=0
|
173
|
+
s1.scan(/./).each_with_index do |l1,i |
|
174
|
+
s2.scan(/./).each_with_index do |l2,j |
|
175
|
+
unless l1==l2
|
176
|
+
num[i][j]=0
|
177
|
+
else
|
178
|
+
(i==0 || j==0)? num[i][j]=1 : num[i][j]=1 + num[i-1][j-1]
|
179
|
+
if num[i][j] > len
|
180
|
+
len = ans = num[i][j]
|
181
|
+
thissub = i
|
182
|
+
thissub -= num[i-1][j-1] unless num[i-1][j-1].nil?
|
183
|
+
if lastsub==thissub
|
184
|
+
res+=s1[i,1]
|
185
|
+
else
|
186
|
+
lastsub=thissub
|
187
|
+
res=s1[lastsub, (i+1)-lastsub]
|
188
|
+
end
|
189
|
+
end
|
190
|
+
end
|
191
|
+
end
|
192
|
+
end
|
193
|
+
res
|
194
|
+
end
|
195
|
+
|
196
|
+
# Hmm... is this even useful?
|
197
|
+
def lcs_size(s1, s2)
|
198
|
+
num=Array.new(s1.size){Array.new(s2.size)}
|
199
|
+
len,ans=0,0
|
200
|
+
s1.scan(/./).each_with_index do |l1,i |
|
201
|
+
s2.scan(/./).each_with_index do |l2,j |
|
202
|
+
unless l1==l2
|
203
|
+
num[i][j]=0
|
204
|
+
else
|
205
|
+
(i==0 || j==0)? num[i][j]=1 : num[i][j]=1 + num[i-1][j-1]
|
206
|
+
len = ans = num[i][j] if num[i][j] > len
|
207
|
+
end
|
208
|
+
end
|
209
|
+
end
|
210
|
+
ans
|
211
|
+
end
|
212
|
+
|
213
|
+
end
|
214
|
+
|
215
|
+
end
|