summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKornelius Kalnbach <murphy@rubychan.de>2011-12-27 04:08:29 +0100
committerKornelius Kalnbach <murphy@rubychan.de>2011-12-27 04:08:29 +0100
commit2afe23ab0a3d17b50f55750241a682403ced4fc8 (patch)
tree19708f1d79ce22eed6b0e90de4760a8cfcc9504b
parentc044a7a6eaba9ba47b8fde2cd6bdd444d8f87062 (diff)
parent9c3837e0086ca07f241e9cc74c9fabbeb2d39987 (diff)
downloadcoderay-2afe23ab0a3d17b50f55750241a682403ced4fc8.tar.gz
Merge branch 'master' into multiline-inline-diff
Conflicts: coderay.gemspec
-rw-r--r--Changes.textile7
-rw-r--r--FOLDERS1
-rw-r--r--Gemfile2
-rw-r--r--IDEA30
-rw-r--r--TODO47
-rw-r--r--coderay.gemspec6
-rw-r--r--lib/coderay.rb31
-rw-r--r--lib/coderay/encoders/html.rb6
-rw-r--r--lib/coderay/encoders/terminal.rb12
-rw-r--r--lib/coderay/scanner.rb6
-rw-r--r--lib/coderay/scanners/diff.rb4
-rw-r--r--lib/coderay/scanners/java.rb2
-rw-r--r--lib/coderay/scanners/ruby.rb4
-rw-r--r--lib/coderay/tokens.rb2
-rwxr-xr-xtest/functional/basic.rb16
-rwxr-xr-xtest/functional/examples.rb1
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:
diff --git a/FOLDERS b/FOLDERS
index 37fca2f..f29255a 100644
--- a/FOLDERS
+++ b/FOLDERS
@@ -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
diff --git a/Gemfile b/Gemfile
index ce4735c..80fe57c 100644
--- a/Gemfile
+++ b/Gemfile
@@ -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
diff --git a/IDEA b/IDEA
deleted file mode 100644
index 52cdbd6..0000000
--- a/IDEA
+++ /dev/null
@@ -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.
diff --git a/TODO b/TODO
deleted file mode 100644
index c389705..0000000
--- a/TODO
+++ /dev/null
@@ -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