redcar 0.3.2dev → 0.3.3
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.
- data/CHANGES +49 -2
- data/README.md +2 -7
- data/ROADMAP.md +8 -9
- data/Rakefile +29 -44
- data/bin/redcar +11 -2
- data/lib/openssl/History.txt +75 -0
- data/lib/openssl/License.txt +30 -0
- data/lib/openssl/Manifest.txt +99 -0
- data/lib/openssl/README.txt +24 -0
- data/lib/openssl/Rakefile +71 -0
- data/lib/openssl/build.properties.SAMPLE +7 -0
- data/lib/openssl/build.xml +57 -0
- data/lib/openssl/lib/jopenssl/version.rb +5 -0
- data/lib/openssl/lib/openssl.rb +24 -0
- data/lib/openssl/lib/openssl/bn.rb +33 -0
- data/lib/openssl/lib/openssl/buffering.rb +239 -0
- data/lib/openssl/lib/openssl/cipher.rb +56 -0
- data/lib/openssl/lib/openssl/digest.rb +46 -0
- data/lib/openssl/lib/openssl/dummy.rb +34 -0
- data/lib/openssl/lib/openssl/dummyssl.rb +13 -0
- data/lib/openssl/lib/openssl/ssl.rb +135 -0
- data/lib/openssl/lib/openssl/x509.rb +154 -0
- data/lib/openssl/mocha/COPYING +3 -0
- data/lib/openssl/mocha/MIT-LICENSE +7 -0
- data/lib/openssl/mocha/README +35 -0
- data/lib/openssl/mocha/RELEASE +171 -0
- data/lib/openssl/mocha/Rakefile +147 -0
- data/lib/openssl/mocha/TODO +48 -0
- data/lib/openssl/mocha/examples/misc.rb +36 -0
- data/lib/openssl/mocha/examples/mocha.rb +26 -0
- data/lib/openssl/mocha/examples/stubba.rb +65 -0
- data/lib/openssl/mocha/init.rb +3 -0
- data/lib/openssl/mocha/lib/mocha.rb +19 -0
- data/lib/openssl/mocha/lib/mocha/any_instance_method.rb +35 -0
- data/lib/openssl/mocha/lib/mocha/auto_verify.rb +111 -0
- data/lib/openssl/mocha/lib/mocha/central.rb +35 -0
- data/lib/openssl/mocha/lib/mocha/class_method.rb +62 -0
- data/lib/openssl/mocha/lib/mocha/deprecation.rb +22 -0
- data/lib/openssl/mocha/lib/mocha/exception_raiser.rb +17 -0
- data/lib/openssl/mocha/lib/mocha/expectation.rb +382 -0
- data/lib/openssl/mocha/lib/mocha/expectation_error.rb +6 -0
- data/lib/openssl/mocha/lib/mocha/expectation_list.rb +45 -0
- data/lib/openssl/mocha/lib/mocha/infinite_range.rb +25 -0
- data/lib/openssl/mocha/lib/mocha/inspect.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/instance_method.rb +8 -0
- data/lib/openssl/mocha/lib/mocha/is_a.rb +9 -0
- data/lib/openssl/mocha/lib/mocha/metaclass.rb +7 -0
- data/lib/openssl/mocha/lib/mocha/missing_expectation.rb +27 -0
- data/lib/openssl/mocha/lib/mocha/mock.rb +200 -0
- data/lib/openssl/mocha/lib/mocha/multiple_yields.rb +20 -0
- data/lib/openssl/mocha/lib/mocha/no_yields.rb +11 -0
- data/lib/openssl/mocha/lib/mocha/object.rb +110 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers.rb +9 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/all_of.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/any_of.rb +44 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/anything.rb +30 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/has_entry.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/has_key.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/has_value.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/includes.rb +37 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/instance_of.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/parameter_matchers/kind_of.rb +39 -0
- data/lib/openssl/mocha/lib/mocha/pretty_parameters.rb +28 -0
- data/lib/openssl/mocha/lib/mocha/return_values.rb +31 -0
- data/lib/openssl/mocha/lib/mocha/setup_and_teardown.rb +23 -0
- data/lib/openssl/mocha/lib/mocha/single_return_value.rb +24 -0
- data/lib/openssl/mocha/lib/mocha/single_yield.rb +18 -0
- data/lib/openssl/mocha/lib/mocha/standalone.rb +32 -0
- data/lib/openssl/mocha/lib/mocha/stub.rb +18 -0
- data/lib/openssl/mocha/lib/mocha/test_case_adapter.rb +49 -0
- data/lib/openssl/mocha/lib/mocha/yield_parameters.rb +31 -0
- data/lib/openssl/mocha/lib/mocha_standalone.rb +2 -0
- data/lib/openssl/mocha/lib/stubba.rb +2 -0
- data/lib/openssl/mocha/templates/html_with_google_analytics.rb +742 -0
- data/lib/openssl/mocha/test/acceptance/expected_invocation_count_acceptance_test.rb +187 -0
- data/lib/openssl/mocha/test/acceptance/mocha_acceptance_test.rb +98 -0
- data/lib/openssl/mocha/test/acceptance/mocked_methods_dispatch_acceptance_test.rb +71 -0
- data/lib/openssl/mocha/test/acceptance/parameter_matcher_acceptance_test.rb +63 -0
- data/lib/openssl/mocha/test/acceptance/standalone_acceptance_test.rb +131 -0
- data/lib/openssl/mocha/test/acceptance/stubba_acceptance_test.rb +102 -0
- data/lib/openssl/mocha/test/active_record_test_case.rb +36 -0
- data/lib/openssl/mocha/test/deprecation_disabler.rb +15 -0
- data/lib/openssl/mocha/test/execution_point.rb +34 -0
- data/lib/openssl/mocha/test/integration/mocha_test_result_integration_test.rb +105 -0
- data/lib/openssl/mocha/test/integration/stubba_integration_test.rb +89 -0
- data/lib/openssl/mocha/test/integration/stubba_test_result_integration_test.rb +85 -0
- data/lib/openssl/mocha/test/method_definer.rb +18 -0
- data/lib/openssl/mocha/test/test_helper.rb +12 -0
- data/lib/openssl/mocha/test/test_runner.rb +31 -0
- data/lib/openssl/mocha/test/unit/any_instance_method_test.rb +124 -0
- data/lib/openssl/mocha/test/unit/array_inspect_test.rb +16 -0
- data/lib/openssl/mocha/test/unit/auto_verify_test.rb +122 -0
- data/lib/openssl/mocha/test/unit/central_test.rb +124 -0
- data/lib/openssl/mocha/test/unit/class_method_test.rb +196 -0
- data/lib/openssl/mocha/test/unit/date_time_inspect_test.rb +21 -0
- data/lib/openssl/mocha/test/unit/expectation_list_test.rb +69 -0
- data/lib/openssl/mocha/test/unit/expectation_raiser_test.rb +28 -0
- data/lib/openssl/mocha/test/unit/expectation_test.rb +399 -0
- data/lib/openssl/mocha/test/unit/hash_inspect_test.rb +16 -0
- data/lib/openssl/mocha/test/unit/infinite_range_test.rb +53 -0
- data/lib/openssl/mocha/test/unit/metaclass_test.rb +22 -0
- data/lib/openssl/mocha/test/unit/missing_expectation_test.rb +45 -0
- data/lib/openssl/mocha/test/unit/mock_test.rb +316 -0
- data/lib/openssl/mocha/test/unit/multiple_yields_test.rb +18 -0
- data/lib/openssl/mocha/test/unit/no_yield_test.rb +18 -0
- data/lib/openssl/mocha/test/unit/object_inspect_test.rb +35 -0
- data/lib/openssl/mocha/test/unit/object_test.rb +165 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/all_of_test.rb +26 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/any_of_test.rb +26 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/anything_test.rb +21 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/has_entry_test.rb +25 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/has_key_test.rb +25 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/has_value_test.rb +25 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/includes_test.rb +25 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/instance_of_test.rb +25 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/kind_of_test.rb +25 -0
- data/lib/openssl/mocha/test/unit/parameter_matchers/stub_matcher.rb +22 -0
- data/lib/openssl/mocha/test/unit/pretty_parameters_test.rb +32 -0
- data/lib/openssl/mocha/test/unit/return_values_test.rb +63 -0
- data/lib/openssl/mocha/test/unit/setup_and_teardown_test.rb +76 -0
- data/lib/openssl/mocha/test/unit/single_return_value_test.rb +33 -0
- data/lib/openssl/mocha/test/unit/single_yield_test.rb +18 -0
- data/lib/openssl/mocha/test/unit/string_inspect_test.rb +11 -0
- data/lib/openssl/mocha/test/unit/stub_test.rb +24 -0
- data/lib/openssl/mocha/test/unit/yield_parameters_test.rb +93 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/FOLDERS +53 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/LICENSE +340 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/README +117 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/bin/coderay +77 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/bin/coderay_stylesheet +4 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay.rb +319 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/duo.rb +29 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoder.rb +173 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/_map.rb +8 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/count.rb +21 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/debug.rb +46 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/div.rb +20 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/html.rb +260 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/html/classes.rb +77 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/html/css.rb +65 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/html/numerization.rb +122 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/html/output.rb +195 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/null.rb +26 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/page.rb +21 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/span.rb +20 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/statistic.rb +81 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/text.rb +33 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/tokens.rb +44 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/xml.rb +71 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/encoders/yaml.rb +22 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/helpers/file_type.rb +182 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/helpers/gzip_simple.rb +122 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/helpers/plugin.rb +326 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/helpers/word_list.rb +119 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanner.rb +238 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/_map.rb +15 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/c.rb +163 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/debug.rb +60 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/delphi.rb +149 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/html.rb +177 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/nitro_xhtml.rb +133 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/plaintext.rb +16 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/rhtml.rb +73 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/ruby.rb +367 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/ruby/patterns.rb +230 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/scanners/xml.rb +18 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/style.rb +20 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/styles/_map.rb +7 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/styles/cycnus.rb +125 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/styles/murphy.rb +119 -0
- data/lib/openssl/mocha/vendor/coderay-0.7.4.215/lib/coderay/tokens.rb +368 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/CHANGES +295 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/MIT-LICENSE +21 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/README +129 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/Rakefile +152 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project.rb +19 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/core_ext/open_uri.rb +22 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/core_ext/pathname.rb +36 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/core_ext/string.rb +5 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/http/multipart.rb +32 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/patois.rb +1 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/patois/parser.rb +99 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project.rb +4 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/base.rb +9 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/codehaus.rb +1 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/codehaus/codehaus_project_svn.rb +31 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/trac.rb +1 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/trac/trac_project.rb +54 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/xforge.rb +5 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/xforge/ruby_forge.rb +47 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/xforge/session.rb +177 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/xforge/source_forge.rb +50 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/xforge/xfile.rb +45 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project/xforge/xforge_base.rb +85 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/project_analyzer.rb +36 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/release/freshmeat.rb +267 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/release/raa.rb +572 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/scm_web.rb +2 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/scm_web/browser.rb +112 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/scm_web/pathname.rb +89 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker.rb +6 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/base.rb +24 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/digit_issues.rb +34 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/issue.rb +57 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/jira.rb +2 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/jira/jira_issues.rb +35 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/jira/jira_tracker.rb +149 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/trac.rb +1 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/trac/trac_tracker.rb +33 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/xforge.rb +3 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/xforge/ruby_forge_tracker.rb +17 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/xforge/source_forge_tracker.rb +17 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/tracker/xforge/xforge_tracker.rb +191 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/meta_project/version_parser.rb +52 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/rake/contrib/xforge.rb +3 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/rake/contrib/xforge/base.rb +64 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/rake/contrib/xforge/news_publisher.rb +97 -0
- data/lib/openssl/mocha/vendor/meta_project-0.4.15/lib/rake/contrib/xforge/release.rb +134 -0
- data/lib/openssl/nbproject/genfiles.properties +5 -0
- data/lib/openssl/nbproject/jdk.xml +157 -0
- data/lib/openssl/nbproject/nbjdk.properties +1 -0
- data/lib/openssl/nbproject/nbjdk.xml +16 -0
- data/lib/openssl/nbproject/project.xml +117 -0
- data/lib/openssl/src/java/JopensslService.java +41 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/ASN1.java +930 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Attribute.java +132 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/BN.java +769 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/BouncyCastlePEMHandler.java +69 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Callable.java +10 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Cipher.java +661 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/CipherStrings.java +1827 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Config.java +49 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/DefaultPEMHandler.java +44 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Digest.java +207 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/HMAC.java +183 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/NetscapeSPKI.java +212 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/OpenSSLImpl.java +341 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/OpenSSLReal.java +113 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PEMHandler.java +40 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PKCS10CertificationRequestExt.java +159 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PKCS7.java +642 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PKey.java +154 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PKeyDH.java +401 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PKeyDSA.java +419 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/PKeyRSA.java +762 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Random.java +103 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Request.java +336 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/SSL.java +71 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/SSLContext.java +358 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/SSLSocket.java +561 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/SimpleSecretKey.java +53 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/Utils.java +60 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509.java +108 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509CRL.java +446 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509Cert.java +520 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509Extensions.java +751 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509Name.java +405 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509Revoked.java +111 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509Store.java +282 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/X509StoreCtx.java +206 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/ASN1Registry.java +5135 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Attribute.java +79 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/BIO.java +345 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/BIOFilter.java +38 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Base64BIOFilter.java +84 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/CipherBIOFilter.java +157 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Digest.java +126 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/EVP.java +136 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/EncContent.java +178 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Encrypt.java +77 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Envelope.java +169 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/IssuerAndSerial.java +35 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/MemBIO.java +117 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/MessageDigestBIOFilter.java +76 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Mime.java +245 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/MimeHeader.java +103 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/MimeParam.java +69 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/NotVerifiedPKCS7Exception.java +38 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/NullSinkBIO.java +52 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7.java +1276 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7Data.java +168 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataData.java +88 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataDigest.java +64 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataEncrypted.java +61 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataEnveloped.java +85 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSigned.java +127 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7DataSignedAndEnveloped.java +91 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/PKCS7Exception.java +68 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/RecipInfo.java +244 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/SMIME.java +281 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/SignEnvelope.java +202 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/Signed.java +345 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/SignerInfoWithPkey.java +365 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/TypeDiscriminating.java +34 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/impl/utils/Base64.java +1809 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/util/Base64Coder.java +103 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/CRL.java +59 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Certificate.java +57 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/CertificateFile.java +46 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/CertificateHashDir.java +46 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Function0.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Function1.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Function2.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Function3.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Function4.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Function5.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Lookup.java +560 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/LookupMethod.java +84 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Name.java +85 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/PEMInputOutput.java +1210 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/PKey.java +41 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/PolicyTree.java +36 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Purpose.java +475 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Store.java +377 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/StoreContext.java +1356 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/Trust.java +279 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/VerifyParameter.java +324 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/X509Aux.java +43 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/X509AuxCertificate.java +170 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/X509Error.java +70 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/X509Object.java +88 -0
- data/lib/openssl/src/java/org/jruby/ext/openssl/x509store/X509Utils.java +541 -0
- data/lib/openssl/test/cert_with_ec_pk.cer +27 -0
- data/lib/openssl/test/fixture/ca_path/72fa7371.0 +19 -0
- data/lib/openssl/test/fixture/ca_path/verisign.pem +19 -0
- data/lib/openssl/test/fixture/cacert.pem +23 -0
- data/lib/openssl/test/fixture/cert_localhost.pem +19 -0
- data/lib/openssl/test/fixture/common.pem +48 -0
- data/lib/openssl/test/fixture/localhost_keypair.pem +18 -0
- data/lib/openssl/test/fixture/max.pem +29 -0
- data/lib/openssl/test/fixture/purpose/b70a5bc1.0 +24 -0
- data/lib/openssl/test/fixture/purpose/ca/PASSWD_OF_CA_KEY_IS_1234 +0 -0
- data/lib/openssl/test/fixture/purpose/ca/ca_config.rb +37 -0
- data/lib/openssl/test/fixture/purpose/ca/cacert.pem +24 -0
- data/lib/openssl/test/fixture/purpose/ca/newcerts/2_cert.pem +19 -0
- data/lib/openssl/test/fixture/purpose/ca/newcerts/3_cert.pem +19 -0
- data/lib/openssl/test/fixture/purpose/ca/private/cakeypair.pem +30 -0
- data/lib/openssl/test/fixture/purpose/ca/serial +1 -0
- data/lib/openssl/test/fixture/purpose/cacert.pem +24 -0
- data/lib/openssl/test/fixture/purpose/scripts/gen_cert.rb +127 -0
- data/lib/openssl/test/fixture/purpose/scripts/gen_csr.rb +50 -0
- data/lib/openssl/test/fixture/purpose/scripts/init_ca.rb +66 -0
- data/lib/openssl/test/fixture/purpose/sslclient.pem +19 -0
- data/lib/openssl/test/fixture/purpose/sslclient/csr.pem +10 -0
- data/lib/openssl/test/fixture/purpose/sslclient/keypair.pem +15 -0
- data/lib/openssl/test/fixture/purpose/sslclient/sslclient.pem +19 -0
- data/lib/openssl/test/fixture/purpose/sslserver.pem +19 -0
- data/lib/openssl/test/fixture/purpose/sslserver/csr.pem +10 -0
- data/lib/openssl/test/fixture/purpose/sslserver/keypair.pem +15 -0
- data/lib/openssl/test/fixture/purpose/sslserver/sslserver.pem +19 -0
- data/lib/openssl/test/fixture/verisign.pem +19 -0
- data/lib/openssl/test/fixture/verisign_c3.pem +14 -0
- data/lib/openssl/test/openssl/ssl_server.rb +99 -0
- data/lib/openssl/test/openssl/test_asn1.rb +199 -0
- data/lib/openssl/test/openssl/test_cipher.rb +196 -0
- data/lib/openssl/test/openssl/test_digest.rb +88 -0
- data/lib/openssl/test/openssl/test_hmac.rb +44 -0
- data/lib/openssl/test/openssl/test_ns_spki.rb +69 -0
- data/lib/openssl/test/openssl/test_pair.rb +149 -0
- data/lib/openssl/test/openssl/test_pkcs7.rb +160 -0
- data/lib/openssl/test/openssl/test_pkey_rsa.rb +49 -0
- data/lib/openssl/test/openssl/test_ssl.rb +413 -0
- data/lib/openssl/test/openssl/test_x509cert.rb +236 -0
- data/lib/openssl/test/openssl/test_x509crl.rb +234 -0
- data/lib/openssl/test/openssl/test_x509ext.rb +95 -0
- data/lib/openssl/test/openssl/test_x509name.rb +281 -0
- data/lib/openssl/test/openssl/test_x509req.rb +178 -0
- data/lib/openssl/test/openssl/test_x509store.rb +245 -0
- data/lib/openssl/test/openssl/utils.rb +135 -0
- data/lib/openssl/test/pkcs7_mime_enveloped.message +19 -0
- data/lib/openssl/test/pkcs7_mime_signed.message +30 -0
- data/lib/openssl/test/pkcs7_multipart_signed.message +45 -0
- data/lib/openssl/test/ref/compile.rb +8 -0
- data/lib/openssl/test/ref/pkcs1 +0 -0
- data/lib/openssl/test/ref/pkcs1.c +21 -0
- data/lib/openssl/test/test_cipher.rb +95 -0
- data/lib/openssl/test/test_integration.rb +139 -0
- data/lib/openssl/test/test_java.rb +98 -0
- data/lib/openssl/test/test_java_attribute.rb +25 -0
- data/lib/openssl/test/test_java_bio.rb +42 -0
- data/lib/openssl/test/test_java_mime.rb +173 -0
- data/lib/openssl/test/test_java_pkcs7.rb +769 -0
- data/lib/openssl/test/test_java_smime.rb +177 -0
- data/lib/openssl/test/test_openssl.rb +34 -0
- data/lib/openssl/test/test_openssl_x509.rb +34 -0
- data/lib/openssl/test/test_parse_certificate.rb +20 -0
- data/lib/openssl/test/test_pkey.rb +46 -0
- data/lib/openssl/test/test_x509store.rb +155 -0
- data/lib/openssl/test/ut_eof.rb +128 -0
- data/lib/redcar.rb +134 -8
- data/lib/redcar/installer.rb +46 -11
- data/lib/redcar/runner.rb +2 -1
- data/lib/redcar/usage.rb +12 -5
- data/lib/redcar_quick_start.rb +37 -0
- data/plugins/application/features/support/env.rb +9 -1
- data/plugins/application/icons/redcar_icon_beta.png +0 -0
- data/plugins/application/lib/application.rb +113 -43
- data/plugins/application/lib/application/clipboard.rb +28 -4
- data/plugins/application/lib/application/command.rb +4 -12
- data/plugins/application/lib/application/command/executor.rb +2 -2
- data/plugins/application/lib/application/keymap.rb +39 -0
- data/plugins/application/lib/application/keymap/builder.rb +19 -0
- data/plugins/application/lib/application/speedbar.rb +33 -24
- data/plugins/application/lib/application/tab.rb +15 -0
- data/plugins/application/lib/application/window.rb +28 -5
- data/plugins/application/spec/application/clipboard_spec.rb +20 -1
- data/plugins/application/spec/application/command/executor_spec.rb +7 -2
- data/plugins/application/spec/application/command_spec.rb +0 -5
- data/plugins/application/spec/application/keymap/builder_spec.rb +17 -0
- data/plugins/application/spec/application/menu_spec.rb +30 -0
- data/plugins/application/spec/application/speedbar_spec.rb +30 -6
- data/plugins/application/spec/application/window_spec.rb +2 -2
- data/plugins/application/spec/spec_helper.rb +1 -1
- data/plugins/application_swt/lib/application_swt.rb +3 -0
- data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +10 -1
- data/plugins/application_swt/lib/application_swt/html_tab.rb +1 -0
- data/plugins/application_swt/lib/application_swt/menu.rb +4 -3
- data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +12 -4
- data/plugins/application_swt/lib/application_swt/speedbar.rb +105 -19
- data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +2 -0
- data/plugins/application_swt/lib/application_swt/window.rb +55 -23
- data/plugins/application_swt/spec/spec_helper.rb +0 -1
- data/plugins/auto_completer/lib/auto_completer.rb +57 -3
- data/plugins/auto_indenter/lib/auto_indenter.rb +1 -1
- data/plugins/core/lib/core.rb +5 -3
- data/plugins/core/lib/core/interface.rb +73 -0
- data/plugins/core/lib/core/model.rb +2 -0
- data/plugins/core/lib/core/observable.rb +12 -1
- data/plugins/core/lib/core/observable_struct.rb +34 -0
- data/plugins/core/lib/core/plugin/storage.rb +16 -3
- data/plugins/core/lib/core/reentry_helpers.rb +13 -0
- data/plugins/core/spec/core/observable_spec.rb +13 -0
- data/plugins/core/spec/core/storage_spec.rb +18 -0
- data/plugins/core/spec/spec_helper.rb +1 -0
- data/plugins/edit_view/features/cut_and_paste.feature +4 -2
- data/plugins/edit_view/features/soft_tabs.feature +243 -0
- data/plugins/edit_view/features/step_definitions/editing_steps.rb +91 -2
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +1 -1
- data/plugins/edit_view/features/tabs.feature +146 -0
- data/plugins/edit_view/lib/edit_view.rb +197 -8
- data/plugins/edit_view/lib/edit_view/actions/arrow_keys.rb +121 -0
- data/plugins/edit_view/lib/edit_view/actions/deletion.rb +30 -0
- data/plugins/edit_view/lib/edit_view/actions/tab.rb +66 -0
- data/plugins/edit_view/lib/edit_view/command.rb +0 -2
- data/plugins/edit_view/lib/edit_view/document.rb +62 -27
- data/plugins/edit_view/lib/edit_view/document/command.rb +11 -0
- data/plugins/edit_view/lib/edit_view/edit_tab.rb +2 -1
- data/plugins/edit_view/lib/edit_view/info_speedbar.rb +69 -0
- data/plugins/edit_view/lib/edit_view/tab_settings.rb +40 -0
- data/plugins/edit_view/spec/edit_view/document_spec.rb +26 -0
- data/plugins/edit_view/spec/spec_helper.rb +0 -1
- data/plugins/edit_view_swt/lib/edit_view_swt.rb +57 -69
- data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +24 -3
- data/plugins/edit_view_swt/lib/edit_view_swt/edit_tab.rb +23 -6
- data/plugins/edit_view_swt/spec/spec_helper.rb +0 -1
- data/plugins/edit_view_swt/vendor/java-mateview.rb +19 -2
- data/plugins/encryption/encryption.rb +38 -0
- data/plugins/encryption/ezcrypto.rb +652 -0
- data/plugins/encryption/jarmor-1.1.jar +0 -0
- data/plugins/encryption/plugin.rb +9 -0
- data/plugins/execute_current_tab/lib/execute_current_tab.rb +56 -0
- data/plugins/execute_current_tab/plugin.rb +8 -0
- data/plugins/html_view/lib/html_view.rb +16 -11
- data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +2 -1
- data/plugins/plugin_manager_ui/views/index.html.erb +22 -4
- data/plugins/project/lib/project.rb +140 -26
- data/plugins/project/lib/project/drb_service.rb +75 -0
- data/plugins/project/lib/project/file_mirror.rb +5 -5
- data/plugins/project/lib/project/find_file_dialog.rb +123 -32
- data/plugins/project/spec/project/file_mirror_spec.rb +10 -1
- data/plugins/project/spec/spec_helper.rb +0 -1
- data/plugins/redcar/plugin.rb +1 -1
- data/plugins/redcar/redcar.rb +204 -109
- data/plugins/redcar/spec/redcar/redcar_spec.rb +70 -0
- data/plugins/redcar/spec/spec_helper.rb +4 -0
- data/plugins/repl/lib/repl.rb +14 -7
- data/plugins/repl/lib/repl/internal_mirror.rb +43 -22
- data/plugins/repl/spec/repl/internal_mirror_spec.rb +34 -7
- data/plugins/repl/spec/spec_helper.rb +0 -1
- data/plugins/tree/spec/spec_helper.rb +0 -1
- data/plugins/tree_view_swt/lib/tree_view_swt.rb +1 -1
- data/textmate/Bundles/RedcarRepl.tmbundle/Syntaxes/InternalRuby.plist +2 -18
- data/textmate/Bundles/asciidoc.tmbundle/Syntaxes/AsciiDoc.tmLanguage +428 -0
- metadata +790 -371
- data/lib/redcar/boot.rb +0 -108
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# CodeRay Executable
|
|
3
|
+
#
|
|
4
|
+
# Version: 0.1
|
|
5
|
+
# Author: murphy
|
|
6
|
+
|
|
7
|
+
def err msg
|
|
8
|
+
$stderr.puts msg
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
begin
|
|
12
|
+
require 'coderay'
|
|
13
|
+
|
|
14
|
+
if ARGV.empty?
|
|
15
|
+
puts <<-USAGE
|
|
16
|
+
CodeRay #{CodeRay::VERSION} (http://rd.cYcnus.de/coderay)
|
|
17
|
+
Usage:
|
|
18
|
+
coderay -<lang> [-<format>] < file > output
|
|
19
|
+
coderay file [-<format>]
|
|
20
|
+
Example:
|
|
21
|
+
coderay -ruby -statistic < foo.rb
|
|
22
|
+
coderay codegen.c # generates codegen.c.html
|
|
23
|
+
USAGE
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
first, second = ARGV
|
|
27
|
+
|
|
28
|
+
if first
|
|
29
|
+
if first[/-(\w+)/] == first
|
|
30
|
+
lang = $1.to_sym
|
|
31
|
+
input = $stdin.read
|
|
32
|
+
tokens = CodeRay.scan input, lang
|
|
33
|
+
elsif first == '-'
|
|
34
|
+
lang = $1.to_sym
|
|
35
|
+
input = $stdin.read
|
|
36
|
+
tokens = CodeRay.scan input, lang
|
|
37
|
+
else
|
|
38
|
+
file = first
|
|
39
|
+
tokens = CodeRay.scan_file file
|
|
40
|
+
output_filename, output_ext = file, /#{Regexp.escape(File.extname(file))}$/
|
|
41
|
+
end
|
|
42
|
+
else
|
|
43
|
+
puts 'No lang/file given.'
|
|
44
|
+
exit 1
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
if second
|
|
48
|
+
if second[/-(\w+)/] == second
|
|
49
|
+
format = $1.to_sym
|
|
50
|
+
else
|
|
51
|
+
raise 'Invalid format (must be -xxx).'
|
|
52
|
+
end
|
|
53
|
+
else
|
|
54
|
+
$stderr.puts 'No format given; setting to default (HTML Page)'
|
|
55
|
+
format = :page
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
output = tokens.encode format
|
|
59
|
+
out = $stdout
|
|
60
|
+
if output_filename
|
|
61
|
+
output_filename += '.' + CodeRay::Encoders[format]::FILE_EXTENSION
|
|
62
|
+
if File.exist? output_filename
|
|
63
|
+
err 'File %s already exists.' % output_filename
|
|
64
|
+
exit
|
|
65
|
+
else
|
|
66
|
+
out = File.open output_filename, 'w'
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
out.print output
|
|
70
|
+
|
|
71
|
+
rescue => boom
|
|
72
|
+
err "Error: #{boom.message}\n"
|
|
73
|
+
err boom.backtrace
|
|
74
|
+
err '-' * 50
|
|
75
|
+
err ARGV
|
|
76
|
+
exit 1
|
|
77
|
+
end
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
# = CodeRay Library
|
|
2
|
+
#
|
|
3
|
+
# $Id: coderay.rb 213 2006-10-20 07:12:31Z murphy $
|
|
4
|
+
#
|
|
5
|
+
# CodeRay is a Ruby library for syntax highlighting.
|
|
6
|
+
#
|
|
7
|
+
# I try to make CodeRay easy to use and intuitive, but at the same time fully featured, complete,
|
|
8
|
+
# fast and efficient.
|
|
9
|
+
#
|
|
10
|
+
# See README.
|
|
11
|
+
#
|
|
12
|
+
# It consists mainly of
|
|
13
|
+
# * the main engine: CodeRay (Scanners::Scanner, Tokens/TokenStream, Encoders::Encoder), PluginHost
|
|
14
|
+
# * the scanners in CodeRay::Scanners
|
|
15
|
+
# * the encoders in CodeRay::Encoders
|
|
16
|
+
#
|
|
17
|
+
# Here's a fancy graphic to light up this gray docu:
|
|
18
|
+
#
|
|
19
|
+
# http://rd.cYcnus.de/coderay/scheme.png
|
|
20
|
+
#
|
|
21
|
+
# == Documentation
|
|
22
|
+
#
|
|
23
|
+
# See CodeRay, Encoders, Scanners, Tokens.
|
|
24
|
+
#
|
|
25
|
+
# == Usage
|
|
26
|
+
#
|
|
27
|
+
# Remember you need RubyGems to use CodeRay. Run Ruby with -rubygems option
|
|
28
|
+
# if required.
|
|
29
|
+
#
|
|
30
|
+
# === Highlight Ruby code in a string as html
|
|
31
|
+
#
|
|
32
|
+
# require 'coderay'
|
|
33
|
+
# print CodeRay.scan('puts "Hello, world!"', :ruby).html
|
|
34
|
+
#
|
|
35
|
+
# # prints something like this:
|
|
36
|
+
# puts <span class="s">"Hello, world!"</span>
|
|
37
|
+
#
|
|
38
|
+
#
|
|
39
|
+
# === Highlight C code from a file in a html div
|
|
40
|
+
#
|
|
41
|
+
# require 'coderay'
|
|
42
|
+
# print CodeRay.scan(File.read('ruby.h'), :c).div
|
|
43
|
+
# print CodeRay.scan_file('ruby.h').html.div
|
|
44
|
+
#
|
|
45
|
+
# You can include this div in your page. The used CSS styles can be printed with
|
|
46
|
+
#
|
|
47
|
+
# % ruby -rcoderay -e "print CodeRay::Encoders[:html]::CSS"
|
|
48
|
+
#
|
|
49
|
+
# === Highlight without typing too much
|
|
50
|
+
#
|
|
51
|
+
# If you are one of the hasty (or lazy, or extremely curious) people, just run this file:
|
|
52
|
+
#
|
|
53
|
+
# % ruby -rubygems coderay.rb
|
|
54
|
+
#
|
|
55
|
+
# If the output was to fast for you, try
|
|
56
|
+
#
|
|
57
|
+
# % ruby -rubygems coderay.rb > example.html
|
|
58
|
+
#
|
|
59
|
+
# and look at the file it created.
|
|
60
|
+
#
|
|
61
|
+
# = CodeRay Module
|
|
62
|
+
#
|
|
63
|
+
# The CodeRay module provides convenience methods for the engine.
|
|
64
|
+
#
|
|
65
|
+
# * The +lang+ and +format+ arguments select Scanner and Encoder to use. These are
|
|
66
|
+
# simply lower-case symbols, like <tt>:python</tt> or <tt>:html</tt>.
|
|
67
|
+
# * All methods take an optional hash as last parameter, +options+, that is send to
|
|
68
|
+
# the Encoder / Scanner.
|
|
69
|
+
# * Input and language are always sorted in this order: +code+, +lang+.
|
|
70
|
+
# (This is in alphabetical order, if you need a mnemonic ;)
|
|
71
|
+
#
|
|
72
|
+
# You should be able to highlight everything you want just using these methods;
|
|
73
|
+
# so there is no need to dive into CodeRay's deep class hierarchy.
|
|
74
|
+
#
|
|
75
|
+
# The examples in the demo directory demonstrate common cases using this interface.
|
|
76
|
+
#
|
|
77
|
+
# = Basic Access Ways
|
|
78
|
+
#
|
|
79
|
+
# Read this to get a general view what CodeRay provides.
|
|
80
|
+
#
|
|
81
|
+
# == Scanning
|
|
82
|
+
#
|
|
83
|
+
# Scanning means analysing an input string, splitting it up into Tokens.
|
|
84
|
+
# Each Token knows about what type it is: string, comment, class name, etc.
|
|
85
|
+
#
|
|
86
|
+
# Each +lang+ (language) has its own Scanner; for example, <tt>:ruby</tt> code is
|
|
87
|
+
# handled by CodeRay::Scanners::Ruby.
|
|
88
|
+
#
|
|
89
|
+
# CodeRay.scan:: Scan a string in a given language into Tokens.
|
|
90
|
+
# This is the most common method to use.
|
|
91
|
+
# CodeRay.scan_file:: Scan a file and guess the language using FileType.
|
|
92
|
+
#
|
|
93
|
+
# The Tokens object you get from these methods can encode itself; see Tokens.
|
|
94
|
+
#
|
|
95
|
+
# == Encoding
|
|
96
|
+
#
|
|
97
|
+
# Encoding means compiling Tokens into an output. This can be colored HTML or
|
|
98
|
+
# LaTeX, a textual statistic or just the number of non-whitespace tokens.
|
|
99
|
+
#
|
|
100
|
+
# Each Encoder provides output in a specific +format+, so you select Encoders via
|
|
101
|
+
# formats like <tt>:html</tt> or <tt>:statistic</tt>.
|
|
102
|
+
#
|
|
103
|
+
# CodeRay.encode:: Scan and encode a string in a given language.
|
|
104
|
+
# CodeRay.encode_tokens:: Encode the given tokens.
|
|
105
|
+
# CodeRay.encode_file:: Scan a file, guess the language using FileType and encode it.
|
|
106
|
+
#
|
|
107
|
+
# == Streaming
|
|
108
|
+
#
|
|
109
|
+
# Streaming saves RAM by running Scanner and Encoder in some sort of
|
|
110
|
+
# pipe mode; see TokenStream.
|
|
111
|
+
#
|
|
112
|
+
# CodeRay.scan_stream:: Scan in stream mode.
|
|
113
|
+
#
|
|
114
|
+
# == All-in-One Encoding
|
|
115
|
+
#
|
|
116
|
+
# CodeRay.encode:: Highlight a string with a given input and output format.
|
|
117
|
+
#
|
|
118
|
+
# == Instanciating
|
|
119
|
+
#
|
|
120
|
+
# You can use an Encoder instance to highlight multiple inputs. This way, the setup
|
|
121
|
+
# for this Encoder must only be done once.
|
|
122
|
+
#
|
|
123
|
+
# CodeRay.encoder:: Create an Encoder instance with format and options.
|
|
124
|
+
#
|
|
125
|
+
# There is no CodeRay.scanner method because Scanners are bound to an input string
|
|
126
|
+
# on creation; you can't re-use them with another string.
|
|
127
|
+
#
|
|
128
|
+
# The scanning methods provide more flexibility; we recommend to use these.
|
|
129
|
+
module CodeRay
|
|
130
|
+
|
|
131
|
+
# Version: Major.Minor.Teeny[.Revision]
|
|
132
|
+
# Major: 0 for pre-release
|
|
133
|
+
# Minor: odd for beta, even for stable
|
|
134
|
+
# Teeny: development state
|
|
135
|
+
# Revision: Subversion Revision number (generated on rake)
|
|
136
|
+
VERSION = '0.7.4'
|
|
137
|
+
|
|
138
|
+
require 'coderay/tokens'
|
|
139
|
+
require 'coderay/scanner'
|
|
140
|
+
require 'coderay/encoder'
|
|
141
|
+
require 'coderay/duo'
|
|
142
|
+
require 'coderay/style'
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
class << self
|
|
146
|
+
|
|
147
|
+
# Scans the given +code+ (a String) with the Scanner for +lang+.
|
|
148
|
+
#
|
|
149
|
+
# This is a simple way to use CodeRay. Example:
|
|
150
|
+
# require 'coderay'
|
|
151
|
+
# page = CodeRay.scan("puts 'Hello, world!'", :ruby).html
|
|
152
|
+
#
|
|
153
|
+
# See also demo/demo_simple.
|
|
154
|
+
def scan code, lang, options = {}, &block
|
|
155
|
+
scanner = Scanners[lang].new code, options, &block
|
|
156
|
+
scanner.tokenize
|
|
157
|
+
end
|
|
158
|
+
|
|
159
|
+
# Scans +filename+ (a path to a code file) with the Scanner for +lang+.
|
|
160
|
+
#
|
|
161
|
+
# If +lang+ is :auto or omitted, the CodeRay::FileType module is used to
|
|
162
|
+
# determine it. If it cannot find out what type it is, it uses
|
|
163
|
+
# CodeRay::Scanners::Plaintext.
|
|
164
|
+
#
|
|
165
|
+
# Calls CodeRay.scan.
|
|
166
|
+
#
|
|
167
|
+
# Example:
|
|
168
|
+
# require 'coderay'
|
|
169
|
+
# page = CodeRay.scan_file('some_c_code.c').html
|
|
170
|
+
def scan_file filename, lang = :auto, options = {}, &block
|
|
171
|
+
file = IO.read filename
|
|
172
|
+
if lang == :auto
|
|
173
|
+
require 'coderay/helpers/file_type'
|
|
174
|
+
lang = FileType.fetch filename, :plaintext, true
|
|
175
|
+
end
|
|
176
|
+
scan file, lang, options = {}, &block
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
# Scan the +code+ (a string) with the scanner for +lang+.
|
|
180
|
+
#
|
|
181
|
+
# Calls scan.
|
|
182
|
+
#
|
|
183
|
+
# See CodeRay.scan.
|
|
184
|
+
def scan_stream code, lang, options = {}, &block
|
|
185
|
+
options[:stream] = true
|
|
186
|
+
scan code, lang, options, &block
|
|
187
|
+
end
|
|
188
|
+
|
|
189
|
+
# Encode a string in Streaming mode.
|
|
190
|
+
#
|
|
191
|
+
# This starts scanning +code+ with the the Scanner for +lang+
|
|
192
|
+
# while encodes the output with the Encoder for +format+.
|
|
193
|
+
# +options+ will be passed to the Encoder.
|
|
194
|
+
#
|
|
195
|
+
# See CodeRay::Encoder.encode_stream
|
|
196
|
+
def encode_stream code, lang, format, options = {}
|
|
197
|
+
encoder(format, options).encode_stream code, lang, options
|
|
198
|
+
end
|
|
199
|
+
|
|
200
|
+
# Encode a string.
|
|
201
|
+
#
|
|
202
|
+
# This scans +code+ with the the Scanner for +lang+ and then
|
|
203
|
+
# encodes it with the Encoder for +format+.
|
|
204
|
+
# +options+ will be passed to the Encoder.
|
|
205
|
+
#
|
|
206
|
+
# See CodeRay::Encoder.encode
|
|
207
|
+
def encode code, lang, format, options = {}
|
|
208
|
+
encoder(format, options).encode code, lang, options
|
|
209
|
+
end
|
|
210
|
+
|
|
211
|
+
# Highlight a string into a HTML <div>.
|
|
212
|
+
#
|
|
213
|
+
# CSS styles use classes, so you have to include a stylesheet
|
|
214
|
+
# in your output.
|
|
215
|
+
#
|
|
216
|
+
# See encode.
|
|
217
|
+
def highlight code, lang, options = { :css => :class }, format = :div
|
|
218
|
+
encode code, lang, format, options
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
# Encode pre-scanned Tokens.
|
|
222
|
+
# Use this together with CodeRay.scan:
|
|
223
|
+
#
|
|
224
|
+
# require 'coderay'
|
|
225
|
+
#
|
|
226
|
+
# # Highlight a short Ruby code example in a HTML span
|
|
227
|
+
# tokens = CodeRay.scan '1 + 2', :ruby
|
|
228
|
+
# puts CodeRay.encode_tokens(tokens, :span)
|
|
229
|
+
#
|
|
230
|
+
def encode_tokens tokens, format, options = {}
|
|
231
|
+
encoder(format, options).encode_tokens tokens, options
|
|
232
|
+
end
|
|
233
|
+
|
|
234
|
+
# Encodes +filename+ (a path to a code file) with the Scanner for +lang+.
|
|
235
|
+
#
|
|
236
|
+
# See CodeRay.scan_file.
|
|
237
|
+
# Notice that the second argument is the output +format+, not the input language.
|
|
238
|
+
#
|
|
239
|
+
# Example:
|
|
240
|
+
# require 'coderay'
|
|
241
|
+
# page = CodeRay.encode_file 'some_c_code.c', :html
|
|
242
|
+
def encode_file filename, format, options = {}
|
|
243
|
+
tokens = scan_file filename, :auto, get_scanner_options(options)
|
|
244
|
+
encode_tokens tokens, format, options
|
|
245
|
+
end
|
|
246
|
+
|
|
247
|
+
# Highlight a file into a HTML <div>.
|
|
248
|
+
#
|
|
249
|
+
# CSS styles use classes, so you have to include a stylesheet
|
|
250
|
+
# in your output.
|
|
251
|
+
#
|
|
252
|
+
# See encode.
|
|
253
|
+
def highlight_file filename, options = { :css => :class }, format = :div
|
|
254
|
+
encode_file filename, format, options
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
# Finds the Encoder class for +format+ and creates an instance, passing
|
|
258
|
+
# +options+ to it.
|
|
259
|
+
#
|
|
260
|
+
# Example:
|
|
261
|
+
# require 'coderay'
|
|
262
|
+
#
|
|
263
|
+
# stats = CodeRay.encoder(:statistic)
|
|
264
|
+
# stats.encode("puts 17 + 4\n", :ruby)
|
|
265
|
+
#
|
|
266
|
+
# puts '%d out of %d tokens have the kind :integer.' % [
|
|
267
|
+
# stats.type_stats[:integer].count,
|
|
268
|
+
# stats.real_token_count
|
|
269
|
+
# ]
|
|
270
|
+
# #-> 2 out of 4 tokens have the kind :integer.
|
|
271
|
+
def encoder format, options = {}
|
|
272
|
+
Encoders[format].new options
|
|
273
|
+
end
|
|
274
|
+
|
|
275
|
+
# Finds the Scanner class for +lang+ and creates an instance, passing
|
|
276
|
+
# +options+ to it.
|
|
277
|
+
#
|
|
278
|
+
# See Scanner.new.
|
|
279
|
+
def scanner lang, options = {}
|
|
280
|
+
Scanners[lang].new '', options
|
|
281
|
+
end
|
|
282
|
+
|
|
283
|
+
# Extract the options for the scanner from the +options+ hash.
|
|
284
|
+
#
|
|
285
|
+
# Returns an empty Hash if <tt>:scanner_options</tt> is not set.
|
|
286
|
+
#
|
|
287
|
+
# This is used if a method like CodeRay.encode has to provide options
|
|
288
|
+
# for Encoder _and_ scanner.
|
|
289
|
+
def get_scanner_options options
|
|
290
|
+
options.fetch :scanner_options, {}
|
|
291
|
+
end
|
|
292
|
+
|
|
293
|
+
end
|
|
294
|
+
|
|
295
|
+
# This Exception is raised when you try to stream with something that is not
|
|
296
|
+
# capable of streaming.
|
|
297
|
+
class NotStreamableError < Exception
|
|
298
|
+
def initialize obj
|
|
299
|
+
@obj = obj
|
|
300
|
+
end
|
|
301
|
+
|
|
302
|
+
def to_s
|
|
303
|
+
'%s is not Streamable!' % @obj.class
|
|
304
|
+
end
|
|
305
|
+
end
|
|
306
|
+
|
|
307
|
+
# A dummy module that is included by subclasses of CodeRay::Scanner an CodeRay::Encoder
|
|
308
|
+
# to show that they are able to handle streams.
|
|
309
|
+
module Streamable
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
end
|
|
313
|
+
|
|
314
|
+
# Run a test script.
|
|
315
|
+
if $0 == __FILE__
|
|
316
|
+
$stderr.print 'Press key to print demo.'; gets
|
|
317
|
+
code = File.read($0)[/module CodeRay.*/m]
|
|
318
|
+
print CodeRay.scan(code, :ruby).html
|
|
319
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
module CodeRay
|
|
2
|
+
|
|
3
|
+
# = Duo
|
|
4
|
+
#
|
|
5
|
+
# $Id: scanner.rb 123 2006-03-21 14:46:34Z murphy $
|
|
6
|
+
#
|
|
7
|
+
# TODO: Doc.
|
|
8
|
+
class Duo
|
|
9
|
+
|
|
10
|
+
attr_accessor :scanner, :encoder
|
|
11
|
+
|
|
12
|
+
def initialize lang, format, options = {}
|
|
13
|
+
@scanner = CodeRay.scanner lang, CodeRay.get_scanner_options(options)
|
|
14
|
+
@encoder = CodeRay.encoder format, options
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
class << self
|
|
18
|
+
alias [] new
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def encode code
|
|
22
|
+
@scanner.string = code
|
|
23
|
+
@encoder.encode_tokens(scanner.tokenize)
|
|
24
|
+
end
|
|
25
|
+
alias highlight encode
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
end
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
module CodeRay
|
|
2
|
+
|
|
3
|
+
# This module holds the Encoder class and its subclasses.
|
|
4
|
+
# For example, the HTML encoder is named CodeRay::Encoders::HTML
|
|
5
|
+
# can be found in coderay/encoders/html.
|
|
6
|
+
#
|
|
7
|
+
# Encoders also provides methods and constants for the register
|
|
8
|
+
# mechanism and the [] method that returns the Encoder class
|
|
9
|
+
# belonging to the given format.
|
|
10
|
+
module Encoders
|
|
11
|
+
extend PluginHost
|
|
12
|
+
plugin_path File.dirname(__FILE__), 'encoders'
|
|
13
|
+
|
|
14
|
+
# = Encoder
|
|
15
|
+
#
|
|
16
|
+
# The Encoder base class. Together with Scanner and
|
|
17
|
+
# Tokens, it forms the highlighting triad.
|
|
18
|
+
#
|
|
19
|
+
# Encoder instances take a Tokens object and do something with it.
|
|
20
|
+
#
|
|
21
|
+
# The most common Encoder is surely the HTML encoder
|
|
22
|
+
# (CodeRay::Encoders::HTML). It highlights the code in a colorful
|
|
23
|
+
# html page.
|
|
24
|
+
# If you want the highlighted code in a div or a span instead,
|
|
25
|
+
# use its subclasses Div and Span.
|
|
26
|
+
class Encoder
|
|
27
|
+
extend Plugin
|
|
28
|
+
plugin_host Encoders
|
|
29
|
+
|
|
30
|
+
attr_reader :token_stream
|
|
31
|
+
|
|
32
|
+
class << self
|
|
33
|
+
|
|
34
|
+
# Returns if the Encoder can be used in streaming mode.
|
|
35
|
+
def streamable?
|
|
36
|
+
is_a? Streamable
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# If FILE_EXTENSION isn't defined, this method returns the
|
|
40
|
+
# downcase class name instead.
|
|
41
|
+
def const_missing sym
|
|
42
|
+
if sym == :FILE_EXTENSION
|
|
43
|
+
sym.to_s.downcase
|
|
44
|
+
else
|
|
45
|
+
super
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Subclasses are to store their default options in this constant.
|
|
52
|
+
DEFAULT_OPTIONS = { :stream => false }
|
|
53
|
+
|
|
54
|
+
# The options you gave the Encoder at creating.
|
|
55
|
+
attr_accessor :options
|
|
56
|
+
|
|
57
|
+
# Creates a new Encoder.
|
|
58
|
+
# +options+ is saved and used for all encode operations, as long
|
|
59
|
+
# as you don't overwrite it there by passing additional options.
|
|
60
|
+
#
|
|
61
|
+
# Encoder objects provide three encode methods:
|
|
62
|
+
# - encode simply takes a +code+ string and a +lang+
|
|
63
|
+
# - encode_tokens expects a +tokens+ object instead
|
|
64
|
+
# - encode_stream is like encode, but uses streaming mode.
|
|
65
|
+
#
|
|
66
|
+
# Each method has an optional +options+ parameter. These are
|
|
67
|
+
# added to the options you passed at creation.
|
|
68
|
+
def initialize options = {}
|
|
69
|
+
@options = self.class::DEFAULT_OPTIONS.merge options
|
|
70
|
+
raise "I am only the basic Encoder class. I can't encode "\
|
|
71
|
+
"anything. :( Use my subclasses." if self.class == Encoder
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Encode a Tokens object.
|
|
75
|
+
def encode_tokens tokens, options = {}
|
|
76
|
+
options = @options.merge options
|
|
77
|
+
setup options
|
|
78
|
+
compile tokens, options
|
|
79
|
+
finish options
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Encode the given +code+ after tokenizing it using the Scanner
|
|
83
|
+
# for +lang+.
|
|
84
|
+
def encode code, lang, options = {}
|
|
85
|
+
options = @options.merge options
|
|
86
|
+
scanner_options = CodeRay.get_scanner_options(options)
|
|
87
|
+
tokens = CodeRay.scan code, lang, scanner_options
|
|
88
|
+
encode_tokens tokens, options
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
# You can use highlight instead of encode, if that seems
|
|
92
|
+
# more clear to you.
|
|
93
|
+
alias highlight encode
|
|
94
|
+
|
|
95
|
+
# Encode the given +code+ using the Scanner for +lang+ in
|
|
96
|
+
# streaming mode.
|
|
97
|
+
def encode_stream code, lang, options = {}
|
|
98
|
+
raise NotStreamableError, self unless kind_of? Streamable
|
|
99
|
+
options = @options.merge options
|
|
100
|
+
setup options
|
|
101
|
+
scanner_options = CodeRay.get_scanner_options options
|
|
102
|
+
@token_stream =
|
|
103
|
+
CodeRay.scan_stream code, lang, scanner_options, &self
|
|
104
|
+
finish options
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
# Behave like a proc. The token method is converted to a proc.
|
|
108
|
+
def to_proc
|
|
109
|
+
method(:token).to_proc
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
# Return the default file extension for outputs of this encoder.
|
|
113
|
+
def file_extension
|
|
114
|
+
self.class::FILE_EXTENSION
|
|
115
|
+
end
|
|
116
|
+
|
|
117
|
+
protected
|
|
118
|
+
|
|
119
|
+
# Called with merged options before encoding starts.
|
|
120
|
+
# Sets @out to an empty string.
|
|
121
|
+
#
|
|
122
|
+
# See the HTML Encoder for an example of option caching.
|
|
123
|
+
def setup options
|
|
124
|
+
@out = ''
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# Called with +text+ and +kind+ of the currently scanned token.
|
|
128
|
+
# For simple scanners, it's enougth to implement this method.
|
|
129
|
+
#
|
|
130
|
+
# By default, it calls text_token or block_token, depending on
|
|
131
|
+
# whether +text+ is a String.
|
|
132
|
+
def token text, kind
|
|
133
|
+
if text.instance_of? ::String # Ruby 1.9: :open.is_a? String
|
|
134
|
+
text_token text, kind
|
|
135
|
+
elsif text.is_a? ::Symbol
|
|
136
|
+
block_token text, kind
|
|
137
|
+
else
|
|
138
|
+
raise 'Unknown token text type: %p' % text
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
def text_token text, kind
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def block_token action, kind
|
|
146
|
+
case action
|
|
147
|
+
when :open
|
|
148
|
+
open_token kind
|
|
149
|
+
when :close
|
|
150
|
+
close_token kind
|
|
151
|
+
else
|
|
152
|
+
raise 'unknown block action: %p' % action
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
# Called with merged options after encoding starts.
|
|
157
|
+
# The return value is the result of encoding, typically @out.
|
|
158
|
+
def finish options
|
|
159
|
+
@out
|
|
160
|
+
end
|
|
161
|
+
|
|
162
|
+
# Do the encoding.
|
|
163
|
+
#
|
|
164
|
+
# The already created +tokens+ object must be used; it can be a
|
|
165
|
+
# TokenStream or a Tokens object.
|
|
166
|
+
def compile tokens, options
|
|
167
|
+
tokens.each(&self)
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
end
|
|
173
|
+
end
|