diff options
author | Kornelius Kalnbach <murphy@rubychan.de> | 2011-12-27 04:08:29 +0100 |
---|---|---|
committer | Kornelius Kalnbach <murphy@rubychan.de> | 2011-12-27 04:08:29 +0100 |
commit | 2afe23ab0a3d17b50f55750241a682403ced4fc8 (patch) | |
tree | 19708f1d79ce22eed6b0e90de4760a8cfcc9504b | |
parent | c044a7a6eaba9ba47b8fde2cd6bdd444d8f87062 (diff) | |
parent | 9c3837e0086ca07f241e9cc74c9fabbeb2d39987 (diff) | |
download | coderay-2afe23ab0a3d17b50f55750241a682403ced4fc8.tar.gz |
Merge branch 'master' into multiline-inline-diff
Conflicts:
coderay.gemspec
-rw-r--r-- | Changes.textile | 7 | ||||
-rw-r--r-- | FOLDERS | 1 | ||||
-rw-r--r-- | Gemfile | 2 | ||||
-rw-r--r-- | IDEA | 30 | ||||
-rw-r--r-- | TODO | 47 | ||||
-rw-r--r-- | coderay.gemspec | 6 | ||||
-rw-r--r-- | lib/coderay.rb | 31 | ||||
-rw-r--r-- | lib/coderay/encoders/html.rb | 6 | ||||
-rw-r--r-- | lib/coderay/encoders/terminal.rb | 12 | ||||
-rw-r--r-- | lib/coderay/scanner.rb | 6 | ||||
-rw-r--r-- | lib/coderay/scanners/diff.rb | 4 | ||||
-rw-r--r-- | lib/coderay/scanners/java.rb | 2 | ||||
-rw-r--r-- | lib/coderay/scanners/ruby.rb | 4 | ||||
-rw-r--r-- | lib/coderay/tokens.rb | 2 | ||||
-rwxr-xr-x | test/functional/basic.rb | 16 | ||||
-rwxr-xr-x | test/functional/examples.rb | 1 |
16 files changed, 64 insertions, 113 deletions
diff --git a/Changes.textile b/Changes.textile index 9b93fa4..60382f5 100644 --- a/Changes.textile +++ b/Changes.textile @@ -4,6 +4,13 @@ p=. _This files lists all changes in the CodeRay library since the 0.9.8 release {{toc}} +h2. Changes in 1.0.5 + +Fixes: + +* @autoload@ calls do not depend on @coderay/lib@ being in the load path (GitHub issue #6; thanks to tvon, banister, envygeeks, and ConradIrwin) +* avoid dark blue as terminal color (GitHub issue #9; thanks to shevegen) + h2. Changes in 1.0.4 Fixes in the CSS scanner: @@ -17,7 +17,6 @@ Run <code>rake bench</code> to perform an example benchmark. Executional files for CodeRay.
coderay:: The CodeRay executable.
-coderay_stylesheet:: Prints the default stylesheet.
== demo - Demos and functional tests
@@ -10,7 +10,7 @@ group :development do gem "rake", "~> 0.9.2" gem "RedCloth", RUBY_PLATFORM == 'java' ? "= 4.2.7" : ">= 4.0.3" gem "term-ansicolor" - gem "shoulda-context", "= 1.0.0.beta1" if RUBY_VERSION >= '1.8.7' + gem "shoulda-context", "~> 1.0.0" if RUBY_VERSION >= '1.8.7' gem "json" unless RUBY_VERSION >= '1.9.1' gem "rdoc" if RUBY_VERSION >= '1.8.7' end @@ -1,30 +0,0 @@ -Website tools:
-- convertor: reads and writes HTML (filter)
- <code lang="ruby">bla</code>
- =>
- <code class="CodeRay">...</code>
-
-- manual highlighter:
- 1. idea:
- special scanner (simply reading raydebug code should be enough)
- => makes it possible, easy to write
-
- 2. idea:
- => cooler, but more advanced
- => still easy to implement for all scanners at once
- preamble function (wrapper for scanners):
- for example, a method def:
- def foo
- shall be shown in the same color as method(foo), but
- without the def. so write:
- !def !foo
- Input is read into def foo and 4 (number of chars in preamble)
- Ruby scanner outputs some Tokens:
- reserved(def) method(foo)
- and chopped by a chop_preamble method giving:
- method(foo)
- PreambleTokens subclass?
- Tokens instance that takes options?
-
- 3. idea:
- Scanner handled solution --> forget it.
@@ -1,47 +0,0 @@ -Fix the docu after moving to CodeRay namespace.
-
-// vim:ts=4:ft=c:
-Category = X (done), / (partly done), T (test), L (later), (else)
- Planned = planned in version 0.x
- Priority = 3 (low) .. 1 (high), 0 (extrem high)
- Expense = 0 (trivial), 1 (low) .. 3 (high)
- Assigned Day
-
-Project:
- Documentation:
-3/4 0 2 ? Doc the interface
- 0 2 ? Cleanup/Read Doc
-3/4 0 1 write examples
-
- 1 2 Code Cleanup: Indentation
-L 2 2 Rewrite Tools:
- coderay, bench.rb, highlight.rb
-
-
-
-Plugins:
-
-
-Scanners:
- 2 1 Unicode support
-L 1 2 More Languages! (See Roadmap)
-
- Ruby:
-L 3 2 Regexp comment highlighting
-L 3 2 Options: Highlight characters/escapes/inline code
-L 2 1 Meta characters
-
-
-Encoders:
- HTML:
-L 1 2 dynamic CSS creation: new CSS class
- Colors:
-3/4 1 2 colorschemes
- Statistic:
-L 3 1 return Statistic object with to_s method instead of String
-
-
-
-Tools:
- testfox:
-L 2 3 wxRuby and HTML output
diff --git a/coderay.gemspec b/coderay.gemspec index d9e1bb8..f30f5fe 100644 --- a/coderay.gemspec +++ b/coderay.gemspec @@ -9,8 +9,10 @@ Gem::Specification.new do |s| s.version = CodeRay::VERSION else # thanks to @Argorak for this solution - revision = 134 + (`git log --oneline | wc -l`.to_i) - s.version = "#{CodeRay::VERSION}.#{revision}rc1" + # revision = 134 + (`git log --oneline | wc -l`.to_i) + # s.version = "#{CodeRay::VERSION}.#{revision}rc1" + s.version = "#{CodeRay::VERSION}.rc1" +>>>>>>> master end s.authors = ['Kornelius Kalnbach'] diff --git a/lib/coderay.rb b/lib/coderay.rb index c897220..876d770 100644 --- a/lib/coderay.rb +++ b/lib/coderay.rb @@ -127,27 +127,34 @@ module CodeRay $CODERAY_DEBUG ||= false - require 'coderay/version' + CODERAY_PATH = File.join File.dirname(__FILE__), 'coderay' + + # Assuming the path is a subpath of lib/coderay/ + def self.coderay_path *path + File.join CODERAY_PATH, *path + end + + require coderay_path('version') # helpers - autoload :FileType, 'coderay/helpers/file_type' + autoload :FileType, coderay_path('helpers', 'file_type') # Tokens - autoload :Tokens, 'coderay/tokens' - autoload :TokensProxy, 'coderay/tokens_proxy' - autoload :TokenKinds, 'coderay/token_kinds' + autoload :Tokens, coderay_path('tokens') + autoload :TokensProxy, coderay_path('tokens_proxy') + autoload :TokenKinds, coderay_path('token_kinds') # Plugin system - autoload :PluginHost, 'coderay/helpers/plugin' - autoload :Plugin, 'coderay/helpers/plugin' + autoload :PluginHost, coderay_path('helpers', 'plugin') + autoload :Plugin, coderay_path('helpers', 'plugin') # Plugins - autoload :Scanners, 'coderay/scanner' - autoload :Encoders, 'coderay/encoder' - autoload :Styles, 'coderay/style' + autoload :Scanners, coderay_path('scanner') + autoload :Encoders, coderay_path('encoder') + autoload :Styles, coderay_path('style') - # Convenience access and reusable Encoder/Scanner pair - autoload :Duo, 'coderay/duo' + # convenience access and reusable Encoder/Scanner pair + autoload :Duo, coderay_path('duo') class << self diff --git a/lib/coderay/encoders/html.rb b/lib/coderay/encoders/html.rb index 60dfad1..c32dbd1 100644 --- a/lib/coderay/encoders/html.rb +++ b/lib/coderay/encoders/html.rb @@ -109,9 +109,9 @@ module Encoders :hint => false, } - autoload :Output, 'coderay/encoders/html/output' - autoload :CSS, 'coderay/encoders/html/css' - autoload :Numbering, 'coderay/encoders/html/numbering' + autoload :Output, CodeRay.coderay_path('encoders', 'html', 'output') + autoload :CSS, CodeRay.coderay_path('encoders', 'html', 'css') + autoload :Numbering, CodeRay.coderay_path('encoders', 'html', 'numbering') attr_reader :css diff --git a/lib/coderay/encoders/terminal.rb b/lib/coderay/encoders/terminal.rb index 15c8a52..005032d 100644 --- a/lib/coderay/encoders/terminal.rb +++ b/lib/coderay/encoders/terminal.rb @@ -24,14 +24,14 @@ module CodeRay :attribute_value => '31', :binary => '1;35', :char => { - :self => '36', :delimiter => '34' + :self => '36', :delimiter => '1;34' }, :class => '1;35', :class_variable => '36', :color => '32', :comment => '37', - :complex => '34', - :constant => ['34', '4'], + :complex => '1;34', + :constant => ['1;34', '4'], :decoration => '35', :definition => '1;32', :directive => ['32', '4'], @@ -56,7 +56,7 @@ module CodeRay :predefined_type => '1;30', :predefined => ['4', '1;34'], :preprocessor => '36', - :pseudo_class => '34', + :pseudo_class => '1;34', :regexp => { :self => '31', :content => '31', @@ -77,10 +77,10 @@ module CodeRay :delimiter => '1;32', }, :symbol => '1;32', - :tag => '34', + :tag => '1;34', :type => '1;34', :value => '36', - :variable => '34', + :variable => '1;34', :insert => '42', :delete => '41', diff --git a/lib/coderay/scanner.rb b/lib/coderay/scanner.rb index 7ecbe4f..907cf00 100644 --- a/lib/coderay/scanner.rb +++ b/lib/coderay/scanner.rb @@ -2,8 +2,8 @@ require 'strscan' module CodeRay - - autoload :WordList, 'coderay/helpers/word_list' + + autoload :WordList, coderay_path('helpers', 'word_list') # = Scanners # @@ -320,4 +320,4 @@ surrounding code: end end -end
\ No newline at end of file +end diff --git a/lib/coderay/scanners/diff.rb b/lib/coderay/scanners/diff.rb index b890ed5..38efaf4 100644 --- a/lib/coderay/scanners/diff.rb +++ b/lib/coderay/scanners/diff.rb @@ -16,8 +16,6 @@ module Scanners protected - require 'coderay/helpers/file_type' - def scan_tokens encoder, options line_kind = nil @@ -50,7 +48,7 @@ module Scanners if match = scan(/.*?(?=$|[\t\n\x00]| \(revision)/) encoder.text_token match, :filename if options[:highlight_code] && match != '/dev/null' - file_type = FileType.fetch(match, :text) + file_type = CodeRay::FileType.fetch(match, :text) file_type = :text if file_type == :diff content_scanner = scanners[file_type] content_scanner_entry_state = nil diff --git a/lib/coderay/scanners/java.rb b/lib/coderay/scanners/java.rb index d3502e3..c1490ac 100644 --- a/lib/coderay/scanners/java.rb +++ b/lib/coderay/scanners/java.rb @@ -6,7 +6,7 @@ module Scanners register_for :java - autoload :BuiltinTypes, 'coderay/scanners/java/builtin_types' + autoload :BuiltinTypes, CodeRay.coderay_path('scanners', 'java', 'builtin_types') # http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html KEYWORDS = %w[ diff --git a/lib/coderay/scanners/ruby.rb b/lib/coderay/scanners/ruby.rb index 4244ab7..2be98a6 100644 --- a/lib/coderay/scanners/ruby.rb +++ b/lib/coderay/scanners/ruby.rb @@ -13,8 +13,8 @@ module Scanners register_for :ruby file_extension 'rb' - autoload :Patterns, 'coderay/scanners/ruby/patterns' - autoload :StringState, 'coderay/scanners/ruby/string_state' + autoload :Patterns, CodeRay.coderay_path('scanners', 'ruby', 'patterns') + autoload :StringState, CodeRay.coderay_path('scanners', 'ruby', 'string_state') def interpreted_string_state StringState.new :string, true, '"' diff --git a/lib/coderay/tokens.rb b/lib/coderay/tokens.rb index 045cf4a..c747017 100644 --- a/lib/coderay/tokens.rb +++ b/lib/coderay/tokens.rb @@ -1,7 +1,7 @@ module CodeRay # GZip library for writing and reading token dumps. - autoload :GZip, 'coderay/helpers/gzip' + autoload :GZip, coderay_path('helpers', 'gzip') # = Tokens TODO: Rewrite! # diff --git a/test/functional/basic.rb b/test/functional/basic.rb index bf289b3..3053b54 100755 --- a/test/functional/basic.rb +++ b/test/functional/basic.rb @@ -13,6 +13,22 @@ class BasicTest < Test::Unit::TestCase end end + def with_empty_load_path + old_load_path = $:.dup + $:.clear + yield + ensure + $:.replace old_load_path + end + + def test_autoload + with_empty_load_path do + assert_nothing_raised do + CodeRay::Scanners::Java::BuiltinTypes + end + end + end + RUBY_TEST_CODE = 'puts "Hello, World!"' RUBY_TEST_TOKENS = [ diff --git a/test/functional/examples.rb b/test/functional/examples.rb index 8540ac9..ff64af3 100755 --- a/test/functional/examples.rb +++ b/test/functional/examples.rb @@ -97,7 +97,6 @@ Token Types (7): DIV # highlight a file (HTML div); guess the file type base on the extension - require 'coderay/helpers/file_type' assert_equal :ruby, CodeRay::FileType[__FILE__] # get a new scanner for Python |