palette 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ *.DS_Store
5
+ *.sw[nop]
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in palette.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,20 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ palette (0.0.1)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ mocha (0.9.9)
10
+ rake
11
+ rake (0.8.7)
12
+ rspec (1.3.0)
13
+
14
+ PLATFORMS
15
+ ruby
16
+
17
+ DEPENDENCIES
18
+ mocha (= 0.9.9)
19
+ palette!
20
+ rspec (= 1.3.0)
data/README.markdown ADDED
@@ -0,0 +1,59 @@
1
+ # Palette
2
+
3
+ ## An easier way to write Vim color schemes
4
+
5
+ ## Install
6
+
7
+ Install with Rubygems:
8
+
9
+ gem install palette
10
+
11
+ ## Usage
12
+
13
+ puts Palette::Dsl.run lambda {
14
+ vim_colors "great" do
15
+ # rules etc go here
16
+ end
17
+ }
18
+
19
+ ## Syntax
20
+
21
+ vim_colors "sweet" do
22
+ author "Josh Clayton"
23
+ notes "My really sweet theme"
24
+
25
+ reset true
26
+ background :light
27
+
28
+ Normal "222", "f8f8ff"
29
+
30
+ Folded "808080", "ECECEC", :gui => "bold"
31
+ link :vimFold, :FoldColumn, :to => :Folded
32
+ end
33
+
34
+ This color scheme would generate the following output:
35
+
36
+ " Vim color file
37
+ " This file was generated by Palette
38
+ " http://rubygems.org/gems/palette
39
+ "
40
+ " Author: Josh Clayton
41
+ " My really sweet theme
42
+ let colors_name="sweet"
43
+ hi clear
44
+ if version > 580
45
+ if exists("syntax_on")
46
+ syntax reset
47
+ endif
48
+ endif
49
+ if has("gui_running")
50
+ set background=light
51
+ endif
52
+ hi Normal guifg=#222222 ctermfg=235 guibg=#F8F8FF ctermbg=231
53
+ hi Folded guifg=#808080 ctermfg=244 guibg=#ECECEC ctermbg=255 gui=bold cterm=bold
54
+ hi link vimFold Folded
55
+ hi link FoldColumn Folded
56
+
57
+ ## Author
58
+
59
+ Written by Josh Clayton.
data/Rakefile ADDED
@@ -0,0 +1,2 @@
1
+ require 'bundler'
2
+ Bundler::GemHelper.install_tasks
data/lib/palette.rb ADDED
@@ -0,0 +1,9 @@
1
+ require "palette/dsl"
2
+ require "palette/color_scheme"
3
+ require "palette/color"
4
+ require "palette/rule"
5
+ require "palette/link"
6
+ require "palette/version"
7
+
8
+ module Palette
9
+ end
@@ -0,0 +1,74 @@
1
+ module Palette
2
+ class Color
3
+ BASE_SET = [0, 95, 135, 175, 215, 255]
4
+ GRAY_SET = [ 8, 18, 28, 38, 48, 58, 68, 78, 88, 98, 108, 118,
5
+ 128, 138, 148, 158, 168, 178, 188, 198, 208, 218, 228, 238]
6
+
7
+ def initialize(value)
8
+ @hex = self.class.parse(value)
9
+ end
10
+
11
+ def to_hex
12
+ @hex
13
+ end
14
+
15
+ def to_cterm
16
+ self.class.color_map.index(closest_cterm_hex)
17
+ end
18
+
19
+ private
20
+
21
+ def self.parse(hex)
22
+ if hex.upcase =~ /^[A-F\d]{3}$/
23
+ hex.split(//).map {|code| code * 2 }.join
24
+ elsif hex.upcase =~ /^[A-F\d]{6}$/
25
+ hex
26
+ else
27
+ raise "invalid hex value: #{hex}"
28
+ end.upcase
29
+ end
30
+
31
+ def closest_cterm_hex
32
+ all_colors = self.class.color_map.values.map do |hexcode|
33
+ original_r, original_g, original_b = self.class.hex_to_decimal(@hex)
34
+ r, g, b = self.class.hex_to_decimal(hexcode)
35
+ distance = (original_r - r).abs + (original_g - g).abs + (original_b - b).abs
36
+ [hexcode, distance]
37
+ end
38
+ Hash[*all_colors.flatten].min {|a, b| a[1] <=> b[1] }[0]
39
+ end
40
+
41
+ def self.color_map
42
+ @colors = {}
43
+ counter = 16
44
+ (0...6).each do |red|
45
+ (0...6).each do |green|
46
+ (0...6).each do |blue|
47
+ @colors[counter] = [
48
+ decimal_to_hex(BASE_SET[red]),
49
+ decimal_to_hex(BASE_SET[green]),
50
+ decimal_to_hex(BASE_SET[blue])
51
+ ].join
52
+ counter += 1
53
+ end
54
+ end
55
+ end
56
+
57
+ GRAY_SET.each do |scale|
58
+ @colors[counter] = decimal_to_hex(scale) * 3
59
+ counter += 1
60
+ end
61
+ @colors
62
+ end
63
+
64
+ def self.decimal_to_hex(decimal)
65
+ base = ("%x" % decimal).strip
66
+ base = "0#{base}" if base.length == 1
67
+ base
68
+ end
69
+
70
+ def self.hex_to_decimal(hex)
71
+ hex.scan(/../).map {|x| ("%2d" % "0x#{x}").to_i }
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,98 @@
1
+ module Palette
2
+ class ColorScheme
3
+ attr_reader :name
4
+
5
+ def initialize(color_name)
6
+ @name = color_name
7
+ end
8
+
9
+ def author(author_name)
10
+ @author_name = author_name
11
+ end
12
+
13
+ def notes(notes)
14
+ @notes = notes
15
+ end
16
+
17
+ def reset(reset)
18
+ @reset = !!reset
19
+ end
20
+
21
+ def background(shade)
22
+ return unless %w(light dark).include?(shade.to_s)
23
+ @background = shade.to_s
24
+ end
25
+
26
+ def method_missing(name, *args)
27
+ @rules ||= []
28
+ @rules << Palette::Rule.new(name.to_s, *args)
29
+ end
30
+
31
+ def String(*args)
32
+ @rules ||= []
33
+ @rules << Palette::Rule.new("String", *args)
34
+ end
35
+
36
+ def to_s
37
+ output = []
38
+ output << header
39
+ output << color_scheme_name
40
+ output << generate_reset
41
+ output << generate_background
42
+ output << @rules
43
+ output << @links
44
+ output.compact.join("\n")
45
+ end
46
+
47
+ def link(*args)
48
+ options = args.last.is_a?(Hash) ? args.pop : {}
49
+
50
+ @links ||= []
51
+ args.each do |arg|
52
+ @links << Link.new(arg, options[:to])
53
+ end
54
+ end
55
+
56
+ def header
57
+ %{
58
+ " Vim color file
59
+ " This file was generated by Palette
60
+ " http://rubygems.org/gems/palette
61
+ "
62
+ " Author: #{@author_name}
63
+ #{%{" #{@notes}} if @notes}
64
+ }.strip
65
+ end
66
+
67
+ def generate_reset
68
+ return unless @reset
69
+ %{
70
+ hi clear
71
+ if version > 580
72
+ if exists("syntax_on")
73
+ syntax reset
74
+ endif
75
+ endif
76
+ }.strip
77
+ end
78
+
79
+ def generate_background
80
+ return unless @background
81
+ %{
82
+ if has("gui_running")
83
+ set background=#{@background}
84
+ endif
85
+ }.strip
86
+ end
87
+
88
+ def color_scheme_name
89
+ %{let colors_name="#{@name}"}
90
+ end
91
+
92
+ def self.run(name, block)
93
+ instance = new(name)
94
+ instance.instance_eval(&block)
95
+ instance.to_s
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,11 @@
1
+ module Palette
2
+ class Dsl
3
+ def self.run(block)
4
+ new.instance_eval(&block)
5
+ end
6
+
7
+ def vim_colors(color_name, &block)
8
+ Palette::ColorScheme.run(color_name, block)
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ module Palette
2
+ class Link
3
+ @@max_length = 0
4
+ attr_reader :from, :to
5
+
6
+ def initialize(from, to)
7
+ @from = from.to_s
8
+ @to = to.to_s
9
+ @@max_length = @from.length if @from.length > @@max_length
10
+ end
11
+
12
+ def to_s
13
+ %{hi link #{sprintf("%-#{@@max_length}s", self.from)} #{self.to}}
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,40 @@
1
+ module Palette
2
+ class Rule
3
+ attr_reader :name, :fg, :bg, :gui
4
+
5
+ def initialize(name, *args)
6
+ options = args.last.is_a?(Hash) ? args.pop : {}
7
+
8
+ @name = name.to_s
9
+ @fg = options[:fg] || args.first
10
+ @bg = options[:bg] || (args.length > 1 ? args.last : nil)
11
+ @gui = options[:gui]
12
+ end
13
+
14
+ def to_s
15
+ return "" if fg.nil? && bg.nil? && gui.nil?
16
+ output = ["hi", name]
17
+
18
+ if fg
19
+ color = Palette::Color.new(fg)
20
+ output << %{guifg=##{color.to_hex}}
21
+ output << %{ctermfg=#{color.to_cterm}}
22
+ end
23
+
24
+ if bg
25
+ color = Palette::Color.new(bg)
26
+ output << %{guibg=##{color.to_hex}}
27
+ output << %{ctermbg=#{color.to_cterm}}
28
+ end
29
+
30
+ if gui
31
+ output << %{gui=#{gui}}
32
+ if gui !~ /italic/
33
+ output << %{cterm=#{gui}}
34
+ end
35
+ end
36
+
37
+ output.join(" ")
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,3 @@
1
+ module Palette
2
+ VERSION = "0.0.1"
3
+ end
data/palette.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "palette/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "palette"
7
+ s.version = Palette::VERSION
8
+ s.platform = Gem::Platform::RUBY
9
+ s.authors = ["Josh Clayton"]
10
+ s.email = ["joshua.clayton@gmail.com"]
11
+ s.homepage = "http://rubygems.org/gems/palette"
12
+ s.summary = %q{Build Vim colorschemes with ease}
13
+ s.description = %q{Palette provides an easy way to build Vim color schemes}
14
+
15
+ all_files = %x{git ls-files}.split("\n")
16
+
17
+ s.files = all_files.reject {|file| file =~ /^(spec|features|cucumber)/ }
18
+ s.test_files = all_files.select {|file| file =~ /^(spec|features|cucumber)/ }
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_development_dependency "rspec", "1.3.0"
23
+ s.add_development_dependency "mocha", "0.9.9"
24
+ end
@@ -0,0 +1,191 @@
1
+ require "spec_helper"
2
+
3
+ describe Palette::ColorScheme do
4
+ let(:color_name) { "great" }
5
+ subject { Palette::ColorScheme.new(color_name) }
6
+
7
+ it "accepts a name as a constructor argument" do
8
+ subject.name.should == color_name
9
+ subject.to_s.should include(%{let colors_name="#{color_name}"})
10
+ end
11
+ end
12
+
13
+ describe Palette::ColorScheme, "notes" do
14
+ subject { Palette::ColorScheme.new("abc") }
15
+
16
+ it "allows assignment of author" do
17
+ subject.notes "Based on something great"
18
+ subject.to_s.should =~ /".*Based on something great/
19
+ end
20
+ end
21
+
22
+ describe Palette::ColorScheme, "author" do
23
+ subject { Palette::ColorScheme.new("abc") }
24
+
25
+ it "allows assignment of author" do
26
+ subject.author "John Doe"
27
+ subject.to_s.should include(%{" Author: John Doe})
28
+ end
29
+ end
30
+
31
+ describe Palette::ColorScheme, "reset" do
32
+ subject { Palette::ColorScheme.new("abc") }
33
+
34
+ let(:header) do
35
+ %{
36
+ hi clear
37
+ if version > 580
38
+ if exists("syntax_on")
39
+ syntax reset
40
+ endif
41
+ endif
42
+ }.strip
43
+ end
44
+
45
+ it "generates a reset when set" do
46
+ subject.reset(true)
47
+ subject.to_s.should include(header)
48
+ end
49
+
50
+ it "doesn't include a reset by default" do
51
+ subject.to_s.should_not include(header)
52
+ end
53
+ end
54
+
55
+ describe Palette::ColorScheme, "background" do
56
+ subject { Palette::ColorScheme.new("abc") }
57
+
58
+ it "generates a light background when set" do
59
+ background = %{
60
+ if has("gui_running")
61
+ set background=light
62
+ endif
63
+ }.strip
64
+ subject.background(:light)
65
+ subject.to_s.should include(background)
66
+ end
67
+
68
+ it "generates a dark background when set" do
69
+ background = %{
70
+ if has("gui_running")
71
+ set background=dark
72
+ endif
73
+ }.strip
74
+ subject.background(:dark)
75
+ subject.to_s.should include(background)
76
+ end
77
+
78
+ it "doesn't create a background by default" do
79
+ subject.to_s.should_not include("set background")
80
+ end
81
+
82
+ it "doesn't create a background if bad data is passed" do
83
+ subject.background("lame")
84
+ subject.to_s.should_not include("set background")
85
+ end
86
+ end
87
+
88
+ describe Palette::ColorScheme, "rule generation" do
89
+ before { Palette::Rule.stubs(:new => "Custom rule") }
90
+
91
+ it "creates simple rules" do
92
+ Palette::ColorScheme.run "one", lambda {
93
+ Comment "ABCDEF", :gui => "bold"
94
+ }
95
+ Palette::Rule.should have_received(:new).with("Comment", "ABCDEF", :gui => "bold")
96
+ end
97
+
98
+ it "creates multiple rules" do
99
+ Palette::ColorScheme.run "one", lambda {
100
+ Comment "ABCDEF", :gui => "bold"
101
+ Regexp :gui => "bold"
102
+ }
103
+ Palette::Rule.should have_received(:new).with("Comment", "ABCDEF", :gui => "bold")
104
+ Palette::Rule.should have_received(:new).with("Regexp", :gui => "bold")
105
+ end
106
+
107
+ it "handles Ruby naming conflicts" do
108
+ Palette::ColorScheme.run "one", lambda {
109
+ String "ABCDEF"
110
+ }
111
+ Palette::Rule.should have_received(:new).with("String", "ABCDEF")
112
+ end
113
+
114
+ it "outputs rules" do
115
+ output = Palette::ColorScheme.run "one", lambda {
116
+ Comment "ABCDEF", :gui => "bold"
117
+ String "ABCDEF"
118
+ }
119
+
120
+ output.should include(%{Custom rule\nCustom rule})
121
+ end
122
+ end
123
+
124
+ describe Palette::ColorScheme, "linking" do
125
+ before { Palette::Link.stubs(:new => "Custom link") }
126
+
127
+ it "handles simple linking" do
128
+ Palette::ColorScheme.run "one", lambda {
129
+ link :Something, :to => :Another
130
+ }
131
+ Palette::Link.should have_received(:new).with(:Something, :Another)
132
+ end
133
+
134
+ it "handles complex linking" do
135
+ Palette::ColorScheme.run "one", lambda {
136
+ link :Something, :Else, :to => :Another
137
+ link :Red, :to => :Black
138
+ }
139
+ Palette::Link.should have_received(:new).with(:Something, :Another)
140
+ Palette::Link.should have_received(:new).with(:Else, :Another)
141
+ Palette::Link.should have_received(:new).with(:Red, :Black)
142
+ end
143
+
144
+ it "outputs links" do
145
+ output = Palette::ColorScheme.run "one", lambda {
146
+ link :Something, :Else, :to => :Another
147
+ link :Red, :to => :Black
148
+ }
149
+
150
+ output.should include(%{Custom link\nCustom link\nCustom link})
151
+ end
152
+ end
153
+
154
+ describe Palette::ColorScheme, "output order" do
155
+ subject { Palette::ColorScheme.new("abc") }
156
+ let(:header) { "header" }
157
+ let(:color_scheme_name) { "color scheme name" }
158
+ let(:reset) { "reset" }
159
+ let(:background) { "background" }
160
+
161
+ before do
162
+ subject.stubs(:header => header,
163
+ :color_scheme_name => color_scheme_name,
164
+ :generate_reset => reset,
165
+ :generate_background => background)
166
+ end
167
+
168
+ it "generates the color file in the correct order" do
169
+ subject.to_s.should == [header, color_scheme_name, reset, background].join("\n")
170
+ end
171
+ end
172
+
173
+ describe Palette::ColorScheme, ".run" do
174
+ let(:color_scheme) do
175
+ mock("color-scheme").tap do |scheme|
176
+ scheme.stubs(:great => "things")
177
+ end
178
+ end
179
+
180
+ before do
181
+ Palette::ColorScheme.stubs(:new => color_scheme)
182
+ end
183
+
184
+ it "creates a new color scheme with the correct name" do
185
+ Palette::ColorScheme.run "Great", lambda {
186
+ great
187
+ }
188
+ Palette::ColorScheme.should have_received(:new).with("Great")
189
+ color_scheme.should have_received(:great)
190
+ end
191
+ end
@@ -0,0 +1,33 @@
1
+ require "spec_helper"
2
+
3
+ describe Palette::Color, "color conversion" do
4
+ it "generates hex from three hex digits" do
5
+ Palette::Color.new("AAA").to_hex.should == "AAAAAA"
6
+ end
7
+
8
+ it "generates hex from six hex digits" do
9
+ Palette::Color.new("FAFAFA").to_hex.should == "FAFAFA"
10
+ end
11
+
12
+ it "generates cterm colors from three hex digits" do
13
+ Palette::Color.new("000").to_cterm.should == 16
14
+ end
15
+
16
+ it "generates cterm colors from six hex digits" do
17
+ Palette::Color.new("eeeeee").to_cterm.should == 255
18
+ end
19
+
20
+ it "generates the closest cterm colors to a hex value" do
21
+ Palette::Color.new("eeeeef").to_cterm.should == 255
22
+ Palette::Color.new("d7005f").to_cterm.should == 161
23
+ Palette::Color.new("fffffa").to_cterm.should == 231
24
+ end
25
+
26
+ it "raises an error if a bad color is passed" do
27
+ expect { Palette::Color.new("abcdfg") }.to raise_error
28
+ expect { Palette::Color.new("abcdf") }.to raise_error
29
+ expect { Palette::Color.new("00ff") }.to raise_error
30
+ expect { Palette::Color.new("0f") }.to raise_error
31
+ end
32
+
33
+ end
data/spec/dsl_spec.rb ADDED
@@ -0,0 +1,19 @@
1
+ require "spec_helper"
2
+
3
+ describe Palette::Dsl do
4
+ let(:color_name) { "great" }
5
+
6
+ it "creates a new scheme" do
7
+ Palette::ColorScheme.stubs(:run)
8
+ Palette::Dsl.new.vim_colors(color_name) {}
9
+ Palette::ColorScheme.should have_received(:run)
10
+ end
11
+
12
+ it "runs schemes" do
13
+ Palette::ColorScheme.stubs(:run)
14
+ Palette::Dsl.run lambda {
15
+ vim_colors("awesome") {}
16
+ }
17
+ Palette::ColorScheme.should have_received(:run)
18
+ end
19
+ end
data/spec/link_spec.rb ADDED
@@ -0,0 +1,12 @@
1
+ require "spec_helper"
2
+
3
+ describe Palette::Link do
4
+ it "creates a link from one rule to another" do
5
+ Palette::Link.new("one", "two").to_s.should == %{hi link one two}
6
+ end
7
+
8
+ it "uses the longest 'from' as a base length" do
9
+ Palette::Link.new("three", "four")
10
+ Palette::Link.new("one", "two").to_s.should == %{hi link one two}
11
+ end
12
+ end
data/spec/rule_spec.rb ADDED
@@ -0,0 +1,84 @@
1
+ require "spec_helper"
2
+
3
+ shared_examples_for "rule with colors" do
4
+ let(:fg) { "DEF" }
5
+ let(:bg) { "ABC" }
6
+ let(:hex) { "ABCDEF" }
7
+ let(:cterm) { 123 }
8
+ let(:color) do
9
+ mock("color").tap do |color|
10
+ color.stubs(:to_hex => hex, :to_cterm => cterm)
11
+ end
12
+ end
13
+
14
+ before { Palette::Color.stubs(:new => color) }
15
+ end
16
+
17
+ describe Palette::Rule, "with a foreground" do
18
+ it_should_behave_like "rule with colors"
19
+ subject { Palette::Rule.new("Awesome", fg) }
20
+
21
+ it "highlights the correct colors" do
22
+ subject.to_s.should == "hi Awesome guifg=##{hex} ctermfg=#{cterm}"
23
+ end
24
+
25
+ it "converts the correct colors" do
26
+ subject.to_s
27
+ Palette::Color.should have_received(:new).with(fg)
28
+ Palette::Color.should_not have_received(:new).with(bg)
29
+ end
30
+ end
31
+
32
+ describe Palette::Rule, "with a foreground and background" do
33
+ it_should_behave_like "rule with colors"
34
+ subject { Palette::Rule.new("Awesome", fg, bg) }
35
+
36
+ it "highlights the correct colors" do
37
+ subject.to_s.should == "hi Awesome guifg=##{hex} ctermfg=#{cterm} guibg=##{hex} ctermbg=#{cterm}"
38
+ end
39
+
40
+ it "converts the correct colors" do
41
+ subject.to_s
42
+ Palette::Color.should have_received(:new).with(fg)
43
+ Palette::Color.should have_received(:new).with(bg)
44
+ end
45
+ end
46
+
47
+ describe Palette::Rule, "with a hash passed" do
48
+ it_should_behave_like "rule with colors"
49
+ subject { Palette::Rule.new("Awesome", :fg => fg, :bg => bg) }
50
+
51
+ it "highlights the correct colors" do
52
+ subject.to_s.should == "hi Awesome guifg=##{hex} ctermfg=#{cterm} guibg=##{hex} ctermbg=#{cterm}"
53
+ end
54
+
55
+ it "converts the correct colors" do
56
+ subject.to_s
57
+ Palette::Color.should have_received(:new).with(fg)
58
+ Palette::Color.should have_received(:new).with(bg)
59
+ end
60
+ end
61
+
62
+ describe Palette::Rule, "with a gui" do
63
+ subject { Palette::Rule.new("Awesome", :gui => "bold") }
64
+
65
+ it "sets the gui correctly" do
66
+ subject.to_s.should == "hi Awesome gui=bold cterm=bold"
67
+ end
68
+ end
69
+
70
+ describe Palette::Rule, "with a gui as italic" do
71
+ subject { Palette::Rule.new("Awesome", :gui => "italic") }
72
+
73
+ it "sets the gui correctly" do
74
+ subject.to_s.should == "hi Awesome gui=italic"
75
+ end
76
+ end
77
+
78
+ describe Palette::Rule, "without colors" do
79
+ subject { Palette::Rule.new("Awesome") }
80
+
81
+ it "is empty" do
82
+ subject.to_s.should == ""
83
+ end
84
+ end
@@ -0,0 +1,10 @@
1
+ require "spec"
2
+ require "mocha"
3
+ require "palette"
4
+
5
+ Spec::Runner.configure do |config|
6
+ config.mock_with :mocha
7
+
8
+ Mocha::Configuration.warn_when(:stubbing_non_existant_method)
9
+ Mocha::Configuration.warn_when(:stubbing_non_public_method)
10
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: palette
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Josh Clayton
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-10-28 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: 27
30
+ segments:
31
+ - 1
32
+ - 3
33
+ - 0
34
+ version: 1.3.0
35
+ type: :development
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: mocha
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - "="
44
+ - !ruby/object:Gem::Version
45
+ hash: 41
46
+ segments:
47
+ - 0
48
+ - 9
49
+ - 9
50
+ version: 0.9.9
51
+ type: :development
52
+ version_requirements: *id002
53
+ description: Palette provides an easy way to build Vim color schemes
54
+ email:
55
+ - joshua.clayton@gmail.com
56
+ executables: []
57
+
58
+ extensions: []
59
+
60
+ extra_rdoc_files: []
61
+
62
+ files:
63
+ - .gitignore
64
+ - Gemfile
65
+ - Gemfile.lock
66
+ - README.markdown
67
+ - Rakefile
68
+ - lib/palette.rb
69
+ - lib/palette/color.rb
70
+ - lib/palette/color_scheme.rb
71
+ - lib/palette/dsl.rb
72
+ - lib/palette/link.rb
73
+ - lib/palette/rule.rb
74
+ - lib/palette/version.rb
75
+ - palette.gemspec
76
+ - spec/color_scheme_spec.rb
77
+ - spec/color_spec.rb
78
+ - spec/dsl_spec.rb
79
+ - spec/link_spec.rb
80
+ - spec/rule_spec.rb
81
+ - spec/spec_helper.rb
82
+ has_rdoc: true
83
+ homepage: http://rubygems.org/gems/palette
84
+ licenses: []
85
+
86
+ post_install_message:
87
+ rdoc_options: []
88
+
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ none: false
102
+ requirements:
103
+ - - ">="
104
+ - !ruby/object:Gem::Version
105
+ hash: 3
106
+ segments:
107
+ - 0
108
+ version: "0"
109
+ requirements: []
110
+
111
+ rubyforge_project:
112
+ rubygems_version: 1.3.7
113
+ signing_key:
114
+ specification_version: 3
115
+ summary: Build Vim colorschemes with ease
116
+ test_files:
117
+ - spec/color_scheme_spec.rb
118
+ - spec/color_spec.rb
119
+ - spec/dsl_spec.rb
120
+ - spec/link_spec.rb
121
+ - spec/rule_spec.rb
122
+ - spec/spec_helper.rb