color-tools 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Changelog CHANGED
@@ -1,2 +1,6 @@
1
+ == color-utils 1.1.0
2
+ * Added color/palette/gimp to support the reading and use of GIMP color
3
+ palettes.
4
+
1
5
  == color-utils 1.0.0
2
6
  * Initial release.
data/Install CHANGED
@@ -3,4 +3,4 @@ Installing this package is as simple as:
3
3
  % ruby install.rb
4
4
 
5
5
  Alternatively, you can use the RubyGem version of color-tools available as
6
- color-tools-1.0.0.gem from the usual sources.
6
+ color-tools-1.1.0.gem from the usual sources.
data/README CHANGED
@@ -1,12 +1,12 @@
1
- color-tools README
2
- ==================
1
+ = color-tools README
3
2
  color-tools is a Ruby library to provide RGB and CMYK colour support to
4
3
  applications that require it. It provides 148 named RGB colours that are
5
4
  commonly supported and used in HTML, colour manipulation operations, and
6
- a monochromatic contrasting palette generator.
5
+ a monochromatic contrasting palette generator. With version 1.1, the
6
+ ability to read and use GIMP colour palette definition files has been
7
+ added.
7
8
 
8
- Copyright
9
- =========
9
+ == Copyright
10
10
  Copyright 2005 by Austin Ziegler
11
11
 
12
12
  Color::RGB and Color::CMYK were originally developed for the Ruby PDF
@@ -16,8 +16,7 @@ Color::Palette was developed based on techniques described by Andy
16
16
  "Malarkey" Clarke[1], implemented in JavaScript by Steve G. Chipman at
17
17
  SlayerOffice[2] and by Patrick Fitzgerald of BarelyFitz[3] in PHP.
18
18
 
19
- Licence
20
- =======
19
+ == Licence
21
20
  Permission is hereby granted, free of charge, to any person obtaining a
22
21
  copy of this software and associated documentation files (the "Soft-
23
22
  ware"), to deal in the Software without restriction, including without
data/Rakefile CHANGED
@@ -100,17 +100,14 @@ file TARDIST => [ :test ] do |t|
100
100
  end
101
101
  task TARDIST => [ :test ]
102
102
 
103
- def sign(file)
104
- system %("C:/Apps/GnuPG/gpg.exe" -ba #{file}).gsub(%r{/}) { "\\" }
105
- raise "Error signing with GPG." unless File.exists?("#{file}.asc")
106
- end
107
-
108
- task :signtar => [ :tar ] do
109
- sign TARDIST
110
- end
111
- task :signgem => [ :gem ] do
112
- sign "../#{DISTDIR}.gem"
103
+ desc "Build the rdoc documentation for color-tools"
104
+ task :docs do
105
+ require 'rdoc/rdoc'
106
+ rdoc_options = %w(--title color-tools --main README --line-numbers)
107
+ files = FileList[*%w(README Changelog bin/**/*.rb lib/**/*.rb)]
108
+ rdoc_options += files.to_a
109
+ RDoc::RDoc.new.document(rdoc_options)
113
110
  end
114
111
 
115
112
  desc "Build everything."
116
- task :default => [ :signtar, :signgem ]
113
+ task :default => [ :tar, :gem ]
@@ -40,7 +40,7 @@ require 'color/rgb'
40
40
  require 'color/cmyk'
41
41
 
42
42
  module Color
43
- COLOR_TOOLS_VERSION = '1.0.0'
43
+ COLOR_TOOLS_VERSION = '1.1.0'
44
44
 
45
45
  Black = Color::RGB.new
46
46
  Navy = Color::RGB.new(0x00, 0x00, 0x80)
@@ -0,0 +1,72 @@
1
+ #--
2
+ # Colour management with Ruby.
3
+ #
4
+ # Copyright 2005 Austin Ziegler
5
+ # http://rubyforge.org/ruby-pdf/
6
+ #++
7
+
8
+ require 'color/palette'
9
+
10
+ class Color::Palette::Gimp
11
+ include Enumerable
12
+
13
+ class << self
14
+ def from_file(filename)
15
+ File.open(filename, "rb") { |io| Color::Palette::Gimp.from_io(io) }
16
+ end
17
+
18
+ def from_io(io)
19
+ Color::Palette::Gimp.new(io.read)
20
+ end
21
+ end
22
+
23
+ def initialize(palette)
24
+ @colors = {}
25
+ @valid = false
26
+ @name = "(unnamed)"
27
+
28
+ index = 0
29
+ collision = {}
30
+
31
+ palette.split($/).each do |line|
32
+ line.chomp!
33
+ line.gsub!(/\s*#.*\Z/, '')
34
+
35
+ next if line.empty?
36
+
37
+ if line =~ /\AGIMP Palette\Z/
38
+ @valid = true
39
+ next
40
+ end
41
+
42
+ info = /(\w+):\s(.*$)/.match(line)
43
+ if info
44
+ @name = info.captures[1] if info.captures[0] =~ /name/i
45
+ next
46
+ end
47
+
48
+ line.gsub!(/^\s+/, '')
49
+ data = line.split(/\s+/, 4)
50
+ name = data.pop
51
+ data.map! { |el| el.to_i }
52
+
53
+ @colors[index] = Color::RGB.new(*data)
54
+
55
+ if @colors.has_key?(name)
56
+ collision[name] = true
57
+ else
58
+ @colors[name] = @colors[index]
59
+ end
60
+ end
61
+
62
+ collision.each_key { |key| @colors.delete_at(key) }
63
+ end
64
+
65
+ def [](key)
66
+ @colors[key]
67
+ end
68
+
69
+ def each
70
+ @colors.each { |el| yield el }
71
+ end
72
+ end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.6
2
+ rubygems_version: 0.8.10
3
3
  specification_version: 1
4
4
  name: color-tools
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.0.0
7
- date: 2005-03-06
6
+ version: 1.1.0
7
+ date: 2005-05-04
8
8
  summary: color-tools provides RGB and CMYK colour definitions and manpiulations.
9
9
  require_paths:
10
10
  - lib
@@ -14,7 +14,8 @@ rubyforge_project: ruby-pdf
14
14
  description: "color-tools is a Ruby library to provide RGB and CMYK colour support to
15
15
  applications that require it. It provides 148 named RGB colours that are
16
16
  commonly supported and used in HTML, colour manipulation operations, and a
17
- monochromatic contrasting palette generator."
17
+ monochromatic contrasting palette generator. With version 1.1, the ability to
18
+ read and use GIMP colour palette definition files has been added."
18
19
  autorequire: color
19
20
  default_executable:
20
21
  bindir: bin
@@ -41,6 +42,7 @@ files:
41
42
  - lib/color/palette
42
43
  - lib/color/palette.rb
43
44
  - lib/color/rgb.rb
45
+ - lib/color/palette/gimp.rb
44
46
  - lib/color/palette/monocontrast.rb
45
47
  test_files: []
46
48
  rdoc_options: