rroonga 0.9.3 → 0.9.4
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/NEWS.ja.rdoc +13 -0
- data/NEWS.rdoc +13 -0
- data/Rakefile +2 -4
- data/ext/groonga/extconf.rb +4 -3
- data/ext/groonga/rb-grn.h +698 -0
- data/html/developer.html +10 -7
- data/html/index.html +1 -1
- data/pkg-config.rb +1 -1
- data/test/run-test.rb +9 -3
- metadata +35 -84
- data/test-unit/Rakefile +0 -40
- data/test-unit/TODO +0 -5
- data/test-unit/bin/testrb +0 -5
- data/test-unit/html/classic.html +0 -15
- data/test-unit/html/index.html +0 -25
- data/test-unit/html/index.html.ja +0 -27
- data/test-unit/lib/test/unit.rb +0 -323
- data/test-unit/lib/test/unit/assertionfailederror.rb +0 -25
- data/test-unit/lib/test/unit/assertions.rb +0 -1230
- data/test-unit/lib/test/unit/attribute.rb +0 -125
- data/test-unit/lib/test/unit/autorunner.rb +0 -360
- data/test-unit/lib/test/unit/collector.rb +0 -36
- data/test-unit/lib/test/unit/collector/descendant.rb +0 -23
- data/test-unit/lib/test/unit/collector/dir.rb +0 -108
- data/test-unit/lib/test/unit/collector/load.rb +0 -144
- data/test-unit/lib/test/unit/collector/objectspace.rb +0 -34
- data/test-unit/lib/test/unit/color-scheme.rb +0 -102
- data/test-unit/lib/test/unit/color.rb +0 -96
- data/test-unit/lib/test/unit/diff.rb +0 -724
- data/test-unit/lib/test/unit/error.rb +0 -130
- data/test-unit/lib/test/unit/exceptionhandler.rb +0 -39
- data/test-unit/lib/test/unit/failure.rb +0 -136
- data/test-unit/lib/test/unit/fixture.rb +0 -176
- data/test-unit/lib/test/unit/notification.rb +0 -129
- data/test-unit/lib/test/unit/omission.rb +0 -191
- data/test-unit/lib/test/unit/pending.rb +0 -150
- data/test-unit/lib/test/unit/priority.rb +0 -180
- data/test-unit/lib/test/unit/runner/console.rb +0 -52
- data/test-unit/lib/test/unit/runner/emacs.rb +0 -8
- data/test-unit/lib/test/unit/runner/tap.rb +0 -8
- data/test-unit/lib/test/unit/testcase.rb +0 -476
- data/test-unit/lib/test/unit/testresult.rb +0 -89
- data/test-unit/lib/test/unit/testsuite.rb +0 -110
- data/test-unit/lib/test/unit/ui/console/outputlevel.rb +0 -14
- data/test-unit/lib/test/unit/ui/console/testrunner.rb +0 -466
- data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +0 -63
- data/test-unit/lib/test/unit/ui/tap/testrunner.rb +0 -92
- data/test-unit/lib/test/unit/ui/testrunner.rb +0 -28
- data/test-unit/lib/test/unit/ui/testrunnermediator.rb +0 -77
- data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +0 -41
- data/test-unit/lib/test/unit/util/backtracefilter.rb +0 -41
- data/test-unit/lib/test/unit/util/method-owner-finder.rb +0 -28
- data/test-unit/lib/test/unit/util/observable.rb +0 -90
- data/test-unit/lib/test/unit/util/procwrapper.rb +0 -48
- data/test-unit/lib/test/unit/version.rb +0 -7
- data/test-unit/sample/adder.rb +0 -13
- data/test-unit/sample/subtracter.rb +0 -12
- data/test-unit/sample/test_adder.rb +0 -20
- data/test-unit/sample/test_subtracter.rb +0 -20
- data/test-unit/sample/test_user.rb +0 -23
- data/test-unit/test/collector/test-descendant.rb +0 -133
- data/test-unit/test/collector/test-load.rb +0 -442
- data/test-unit/test/collector/test_dir.rb +0 -406
- data/test-unit/test/collector/test_objectspace.rb +0 -100
- data/test-unit/test/run-test.rb +0 -15
- data/test-unit/test/test-attribute.rb +0 -86
- data/test-unit/test/test-color-scheme.rb +0 -67
- data/test-unit/test/test-color.rb +0 -47
- data/test-unit/test/test-diff.rb +0 -518
- data/test-unit/test/test-emacs-runner.rb +0 -60
- data/test-unit/test/test-fixture.rb +0 -287
- data/test-unit/test/test-notification.rb +0 -33
- data/test-unit/test/test-omission.rb +0 -81
- data/test-unit/test/test-pending.rb +0 -70
- data/test-unit/test/test-priority.rb +0 -119
- data/test-unit/test/test-testcase.rb +0 -544
- data/test-unit/test/test_assertions.rb +0 -1151
- data/test-unit/test/test_error.rb +0 -26
- data/test-unit/test/test_failure.rb +0 -33
- data/test-unit/test/test_testresult.rb +0 -113
- data/test-unit/test/test_testsuite.rb +0 -129
- data/test-unit/test/testunit-test-util.rb +0 -14
- data/test-unit/test/ui/test_testrunmediator.rb +0 -20
- data/test-unit/test/util/test-method-owner-finder.rb +0 -38
- data/test-unit/test/util/test_backtracefilter.rb +0 -41
- data/test-unit/test/util/test_observable.rb +0 -102
- data/test-unit/test/util/test_procwrapper.rb +0 -36
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
module Test
|
|
2
|
-
module Unit
|
|
3
|
-
module Collector
|
|
4
|
-
def initialize
|
|
5
|
-
@filters = []
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def filter=(filters)
|
|
9
|
-
@filters = case(filters)
|
|
10
|
-
when Proc
|
|
11
|
-
[filters]
|
|
12
|
-
when Array
|
|
13
|
-
filters
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def add_suite(destination, suite)
|
|
18
|
-
to_delete = suite.tests.find_all{|t| !include?(t)}
|
|
19
|
-
to_delete.each{|t| suite.delete(t)}
|
|
20
|
-
destination << suite unless(suite.size == 0)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def include?(test)
|
|
24
|
-
return true if(@filters.empty?)
|
|
25
|
-
@filters.each do |filter|
|
|
26
|
-
return false if filter[test] == false
|
|
27
|
-
end
|
|
28
|
-
true
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
def sort(suites)
|
|
32
|
-
suites.sort_by {|suite| suite.name || suite.to_s}
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
require 'test/unit/collector'
|
|
2
|
-
|
|
3
|
-
module Test
|
|
4
|
-
module Unit
|
|
5
|
-
module Collector
|
|
6
|
-
class Descendant
|
|
7
|
-
include Collector
|
|
8
|
-
|
|
9
|
-
NAME = 'collected from the subclasses of TestCase'
|
|
10
|
-
|
|
11
|
-
def collect(name=NAME)
|
|
12
|
-
suite = TestSuite.new(name)
|
|
13
|
-
sub_suites = []
|
|
14
|
-
TestCase::DESCENDANTS.each do |descendant_test_case|
|
|
15
|
-
add_suite(sub_suites, descendant_test_case.suite)
|
|
16
|
-
end
|
|
17
|
-
sort(sub_suites).each {|s| suite << s}
|
|
18
|
-
suite
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
require 'test/unit/testsuite'
|
|
2
|
-
require 'test/unit/collector'
|
|
3
|
-
|
|
4
|
-
module Test
|
|
5
|
-
module Unit
|
|
6
|
-
module Collector
|
|
7
|
-
class Dir
|
|
8
|
-
include Collector
|
|
9
|
-
|
|
10
|
-
attr_reader :pattern, :exclude
|
|
11
|
-
attr_accessor :base
|
|
12
|
-
|
|
13
|
-
def initialize(dir=::Dir, file=::File, object_space=::ObjectSpace, req=nil)
|
|
14
|
-
super()
|
|
15
|
-
@dir = dir
|
|
16
|
-
@file = file
|
|
17
|
-
@object_space = object_space
|
|
18
|
-
@req = req
|
|
19
|
-
@pattern = [/\btest_.*\.rb\Z/m]
|
|
20
|
-
@exclude = []
|
|
21
|
-
@base = nil
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def collect(*from)
|
|
25
|
-
basedir = @base
|
|
26
|
-
$:.push(basedir) if basedir
|
|
27
|
-
if(from.empty?)
|
|
28
|
-
recursive_collect('.', find_test_cases)
|
|
29
|
-
elsif(from.size == 1)
|
|
30
|
-
recursive_collect(from.first, find_test_cases)
|
|
31
|
-
else
|
|
32
|
-
suites = []
|
|
33
|
-
from.each do |f|
|
|
34
|
-
suite = recursive_collect(f, find_test_cases)
|
|
35
|
-
suites << suite unless(suite.tests.empty?)
|
|
36
|
-
end
|
|
37
|
-
suite = TestSuite.new("[#{from.join(', ')}]")
|
|
38
|
-
sort(suites).each{|s| suite << s}
|
|
39
|
-
suite
|
|
40
|
-
end
|
|
41
|
-
ensure
|
|
42
|
-
$:.delete_at($:.rindex(basedir)) if basedir
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def find_test_cases(ignore=[])
|
|
46
|
-
cases = []
|
|
47
|
-
@object_space.each_object(Class) do |c|
|
|
48
|
-
cases << c if(c < TestCase && !ignore.include?(c))
|
|
49
|
-
end
|
|
50
|
-
ignore.concat(cases)
|
|
51
|
-
cases
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
def recursive_collect(name, already_gathered)
|
|
55
|
-
sub_suites = []
|
|
56
|
-
path = realdir(name)
|
|
57
|
-
if @file.directory?(path)
|
|
58
|
-
dir_name = name unless name == '.'
|
|
59
|
-
@dir.entries(path).each do |e|
|
|
60
|
-
next if(e == '.' || e == '..')
|
|
61
|
-
e_name = dir_name ? @file.join(dir_name, e) : e
|
|
62
|
-
if @file.directory?(realdir(e_name))
|
|
63
|
-
next if /\A(?:CVS|\.svn|\.git)\z/ =~ e
|
|
64
|
-
sub_suite = recursive_collect(e_name, already_gathered)
|
|
65
|
-
sub_suites << sub_suite unless(sub_suite.empty?)
|
|
66
|
-
else
|
|
67
|
-
next if /~\z/ =~ e_name or /\A\.\#/ =~ e
|
|
68
|
-
if @pattern and !@pattern.empty?
|
|
69
|
-
next unless @pattern.any? {|pat| pat =~ e_name}
|
|
70
|
-
end
|
|
71
|
-
if @exclude and !@exclude.empty?
|
|
72
|
-
next if @exclude.any? {|pat| pat =~ e_name}
|
|
73
|
-
end
|
|
74
|
-
collect_file(e_name, sub_suites, already_gathered)
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
else
|
|
78
|
-
collect_file(name, sub_suites, already_gathered)
|
|
79
|
-
end
|
|
80
|
-
suite = TestSuite.new(@file.basename(name))
|
|
81
|
-
sort(sub_suites).each{|s| suite << s}
|
|
82
|
-
suite
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
def collect_file(name, suites, already_gathered)
|
|
86
|
-
dir = @file.dirname(@file.expand_path(name, @base))
|
|
87
|
-
$:.unshift(dir)
|
|
88
|
-
if(@req)
|
|
89
|
-
@req.require(name)
|
|
90
|
-
else
|
|
91
|
-
require(name)
|
|
92
|
-
end
|
|
93
|
-
find_test_cases(already_gathered).each{|t| add_suite(suites, t.suite)}
|
|
94
|
-
ensure
|
|
95
|
-
$:.delete_at($:.rindex(dir)) if(dir)
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def realdir(path)
|
|
99
|
-
if @base
|
|
100
|
-
@file.join(@base, path)
|
|
101
|
-
else
|
|
102
|
-
path
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
end
|
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
require 'pathname'
|
|
2
|
-
|
|
3
|
-
require 'test/unit/testsuite'
|
|
4
|
-
require 'test/unit/collector'
|
|
5
|
-
|
|
6
|
-
module Test
|
|
7
|
-
module Unit
|
|
8
|
-
module Collector
|
|
9
|
-
class Load
|
|
10
|
-
include Collector
|
|
11
|
-
|
|
12
|
-
attr_reader :patterns, :excludes, :base
|
|
13
|
-
|
|
14
|
-
def initialize
|
|
15
|
-
super
|
|
16
|
-
@system_excludes = [/~\z/, /\A\.\#/]
|
|
17
|
-
@system_directory_excludes = [/\A(?:CVS|\.svn|\.git)\z/]
|
|
18
|
-
@patterns = [/\Atest[_\-].+\.rb\z/m, /[_\-]test\.rb\z/]
|
|
19
|
-
@excludes = []
|
|
20
|
-
@base = nil
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def base=(base)
|
|
24
|
-
base = Pathname(base) unless base.nil?
|
|
25
|
-
@base = base
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def collect(*froms)
|
|
29
|
-
add_load_path(@base) do
|
|
30
|
-
froms = ["."] if froms.empty?
|
|
31
|
-
test_suites = []
|
|
32
|
-
already_gathered = find_test_cases
|
|
33
|
-
froms.each do |from|
|
|
34
|
-
from = resolve_path(from)
|
|
35
|
-
if from.directory?
|
|
36
|
-
test_suite = collect_recursive(from, already_gathered)
|
|
37
|
-
test_suites << test_suite unless test_suite.tests.empty?
|
|
38
|
-
else
|
|
39
|
-
collect_file(from, test_suites, already_gathered)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
if test_suites.size > 1
|
|
44
|
-
test_suite = TestSuite.new("[#{froms.join(', ')}]")
|
|
45
|
-
sort(test_suites).each do |sub_test_suite|
|
|
46
|
-
test_suite << sub_test_suite
|
|
47
|
-
end
|
|
48
|
-
test_suite
|
|
49
|
-
else
|
|
50
|
-
test_suites.first
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def find_test_cases(ignore=[])
|
|
56
|
-
test_cases = []
|
|
57
|
-
TestCase::DESCENDANTS.each do |test_case|
|
|
58
|
-
test_cases << test_case unless ignore.include?(test_case)
|
|
59
|
-
end
|
|
60
|
-
ignore.concat(test_cases)
|
|
61
|
-
test_cases
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
private
|
|
65
|
-
def collect_recursive(path, already_gathered)
|
|
66
|
-
sub_test_suites = []
|
|
67
|
-
|
|
68
|
-
if path.directory?
|
|
69
|
-
directories, files = path.children.partition do |child|
|
|
70
|
-
child.directory?
|
|
71
|
-
end
|
|
72
|
-
|
|
73
|
-
files.each do |child|
|
|
74
|
-
next if excluded_file?(child.basename.to_s)
|
|
75
|
-
collect_file(child, sub_test_suites, already_gathered)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
directories.each do |child|
|
|
79
|
-
next if excluded_directory?(child.basename.to_s)
|
|
80
|
-
sub_test_suite = collect_recursive(child, already_gathered)
|
|
81
|
-
sub_test_suites << sub_test_suite unless sub_test_suite.empty?
|
|
82
|
-
end
|
|
83
|
-
else
|
|
84
|
-
unless excluded_file?(path.basename.to_s)
|
|
85
|
-
collect_file(path, sub_test_suites, already_gathered)
|
|
86
|
-
end
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
test_suite = TestSuite.new(path.basename.to_s)
|
|
90
|
-
sort(sub_test_suites).each do |sub_test_suite|
|
|
91
|
-
test_suite << sub_test_suite
|
|
92
|
-
end
|
|
93
|
-
test_suite
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def collect_file(path, test_suites, already_gathered)
|
|
97
|
-
@program_file ||= File.expand_path($0)
|
|
98
|
-
return if @program_file == path.to_s
|
|
99
|
-
add_load_path(path.expand_path.dirname) do
|
|
100
|
-
require(path.to_s)
|
|
101
|
-
find_test_cases(already_gathered).each do |test_case|
|
|
102
|
-
add_suite(test_suites, test_case.suite)
|
|
103
|
-
end
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def resolve_path(path)
|
|
108
|
-
if @base
|
|
109
|
-
@base + path
|
|
110
|
-
else
|
|
111
|
-
Pathname(path)
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def add_load_path(path)
|
|
116
|
-
$LOAD_PATH.push(path.to_s) if path
|
|
117
|
-
yield
|
|
118
|
-
ensure
|
|
119
|
-
$LOAD_PATH.delete_at($LOAD_PATH.rindex(path.to_s)) if path
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def excluded_directory?(base)
|
|
123
|
-
@system_directory_excludes.any? {|pattern| pattern =~ base}
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
def excluded_file?(base)
|
|
127
|
-
return true if @system_excludes.any? {|pattern| pattern =~ base}
|
|
128
|
-
|
|
129
|
-
patterns = @patterns || []
|
|
130
|
-
unless patterns.empty?
|
|
131
|
-
return true unless patterns.any? {|pattern| pattern =~ base}
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
excludes = @excludes || []
|
|
135
|
-
unless excludes.empty?
|
|
136
|
-
return true if excludes.any? {|pattern| pattern =~ base}
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
false
|
|
140
|
-
end
|
|
141
|
-
end
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
end
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Author:: Nathaniel Talbott.
|
|
2
|
-
# Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
|
|
3
|
-
# License:: Ruby license.
|
|
4
|
-
|
|
5
|
-
require 'test/unit/collector'
|
|
6
|
-
|
|
7
|
-
module Test
|
|
8
|
-
module Unit
|
|
9
|
-
module Collector
|
|
10
|
-
class ObjectSpace
|
|
11
|
-
include Collector
|
|
12
|
-
|
|
13
|
-
NAME = 'collected from the ObjectSpace'
|
|
14
|
-
|
|
15
|
-
def initialize(source=::ObjectSpace)
|
|
16
|
-
super()
|
|
17
|
-
@source = source
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def collect(name=NAME)
|
|
21
|
-
suite = TestSuite.new(name)
|
|
22
|
-
sub_suites = []
|
|
23
|
-
@source.each_object(Class) do |klass|
|
|
24
|
-
if(Test::Unit::TestCase > klass)
|
|
25
|
-
add_suite(sub_suites, klass.suite)
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
sort(sub_suites).each{|s| suite << s}
|
|
29
|
-
suite
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
require 'test/unit/color'
|
|
2
|
-
|
|
3
|
-
module Test
|
|
4
|
-
module Unit
|
|
5
|
-
class ColorScheme
|
|
6
|
-
include Enumerable
|
|
7
|
-
|
|
8
|
-
class << self
|
|
9
|
-
@@default = nil
|
|
10
|
-
def default
|
|
11
|
-
@@default ||= new("success" => Color.new("green", :bold => true),
|
|
12
|
-
"failure" => Color.new("red", :bold => true),
|
|
13
|
-
"pending" => Color.new("magenta", :bold => true),
|
|
14
|
-
"omission" => Color.new("blue", :bold => true),
|
|
15
|
-
"notification" => Color.new("cyan", :bold => true),
|
|
16
|
-
"error" => Color.new("yellow", :bold => true) +
|
|
17
|
-
Color.new("black", :foreground => false),
|
|
18
|
-
"case" => Color.new("white", :bold => true) +
|
|
19
|
-
Color.new("blue", :foreground => false),
|
|
20
|
-
"suite" => Color.new("white", :bold => true) +
|
|
21
|
-
Color.new("green", :foreground => false),
|
|
22
|
-
"diff-inserted-tag" =>
|
|
23
|
-
Color.new("red", :bold => true),
|
|
24
|
-
"diff-deleted-tag" =>
|
|
25
|
-
Color.new("green", :bold => true),
|
|
26
|
-
"diff-difference-tag" =>
|
|
27
|
-
Color.new("cyan", :bold => true),
|
|
28
|
-
"diff-inserted" =>
|
|
29
|
-
Color.new("red", :foreground => false) +
|
|
30
|
-
Color.new("white", :bold => true),
|
|
31
|
-
"diff-deleted" =>
|
|
32
|
-
Color.new("green", :foreground => false) +
|
|
33
|
-
Color.new("white", :bold => true))
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
@@schemes = {}
|
|
37
|
-
def all
|
|
38
|
-
@@schemes.merge("default" => default)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def [](id)
|
|
42
|
-
@@schemes[id.to_s]
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def []=(id, scheme_or_spec)
|
|
46
|
-
if scheme_or_spec.is_a?(self)
|
|
47
|
-
scheme = scheme_or_spec
|
|
48
|
-
else
|
|
49
|
-
scheme = new(scheme_or_spec)
|
|
50
|
-
end
|
|
51
|
-
@@schemes[id.to_s] = scheme
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def initialize(scheme_spec)
|
|
56
|
-
@scheme = {}
|
|
57
|
-
scheme_spec.each do |key, color_spec|
|
|
58
|
-
self[key] = color_spec
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def [](name)
|
|
63
|
-
@scheme[name.to_s]
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def []=(name, color_spec)
|
|
67
|
-
@scheme[name.to_s] = make_color(color_spec)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def each(&block)
|
|
71
|
-
@scheme.each(&block)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def to_hash
|
|
75
|
-
hash = {}
|
|
76
|
-
@scheme.each do |key, color|
|
|
77
|
-
hash[key] = color
|
|
78
|
-
end
|
|
79
|
-
hash
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
private
|
|
83
|
-
def make_color(color_spec)
|
|
84
|
-
if color_spec.is_a?(Color) or color_spec.is_a?(MixColor)
|
|
85
|
-
color_spec
|
|
86
|
-
else
|
|
87
|
-
color_name = nil
|
|
88
|
-
normalized_color_spec = {}
|
|
89
|
-
color_spec.each do |key, value|
|
|
90
|
-
key = key.to_sym
|
|
91
|
-
if key == :name
|
|
92
|
-
color_name = value
|
|
93
|
-
else
|
|
94
|
-
normalized_color_spec[key] = value
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
Color.new(color_name, normalized_color_spec)
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|