colorly 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,38 @@
1
+ require 'chroma'
2
+
3
+ module StringRefinements
4
+ refine String do
5
+ def spin(*args)
6
+ paint.spin *args
7
+ end
8
+
9
+ def brighten(*args)
10
+ paint.brighten *args
11
+ end
12
+
13
+ def lighten(*args)
14
+ paint.lighten *args
15
+ end
16
+
17
+ def darken(*args)
18
+ paint.darken *args
19
+ end
20
+
21
+ def saturate(*args)
22
+ paint.saturate *args
23
+ end
24
+
25
+ def desaturate(*args)
26
+ paint.desaturate *args
27
+ end
28
+
29
+ def greyscale
30
+ paint.greyscale
31
+ end
32
+ alias grayscale greyscale
33
+
34
+ def palette(*args)
35
+ paint.palette *args
36
+ end
37
+ end
38
+ end
@@ -1,5 +1,6 @@
1
1
  module Colorly
2
2
  class Script
3
+ using StringRefinements
3
4
  attr_reader :script, :filename
4
5
 
5
6
  def self.load(script_file)
@@ -12,20 +13,29 @@ module Colorly
12
13
  end
13
14
 
14
15
  def run
15
- instance_eval script
16
+ run!
17
+ rescue SyntaxError => e
18
+ raise ScriptSyntaxError.new e
19
+ rescue => e
20
+ raise ScriptError.new e
16
21
  end
17
22
 
18
23
  def output
19
24
  @output ||= {}
20
25
  end
21
26
 
22
- def to_h
27
+ def simple_output(names: false)
23
28
  output.transform_values do |chroma_array|
24
29
  chroma_array.map do |chroma|
25
- chroma.to_hex
30
+ if names
31
+ { hex: chroma.to_hex, name: [chroma.name, chroma.shade] }
32
+ else
33
+ chroma.to_hex
34
+ end
26
35
  end
27
36
  end
28
37
  end
38
+ alias to_h simple_output
29
39
 
30
40
  # DSL Methods
31
41
 
@@ -38,11 +48,15 @@ module Colorly
38
48
  color.each { |c| add c }
39
49
  else
40
50
  output[current_title] ||= []
41
- @last = color.is_a?(String) ? color.paint : color
51
+ register color
42
52
  output[current_title] << last
43
53
  end
44
54
  end
45
55
 
56
+ def register(color)
57
+ @last = color.is_a?(String) ? color.paint : color
58
+ end
59
+
46
60
  def last
47
61
  @last ||= 'red'.paint
48
62
  end
@@ -53,6 +67,14 @@ module Colorly
53
67
 
54
68
  private
55
69
 
70
+ def run!
71
+ if filename
72
+ instance_eval script, filename
73
+ else
74
+ instance_eval script
75
+ end
76
+ end
77
+
56
78
  def current_title
57
79
  @current_title ||= "Untitled"
58
80
  end
@@ -29,16 +29,23 @@
29
29
  }
30
30
  </style>
31
31
 
32
- <% output.each do |name, colors| %>
32
+ <%- output.each do |name, colors| -%>
33
+ <div class='colorset'>
33
34
  <h2><%= name %></h2>
34
- <% colors.each do |color| %>
35
- <% css_class = color.dark? ? 'dark color' : 'light color' %>
36
- <div class='<%= css_class %>' style='background-color:<%= color.to_hex %>'>
37
- <%= color.to_hex.upcase %><br>
38
- <%= color.shade %><br>
39
- <%= color.name %><br>
40
- </div>
41
- <% end %>
42
- <% end %>
35
+
36
+ <%- colors.each do |color| -%>
37
+ <%- css_class = color.dark? ? 'dark color' : 'light color' -%>
38
+ <div class='<%= css_class %>' style='background-color:<%= color.to_hex %>'>
39
+ <%= color.to_hex.upcase %>
40
+ <%- if use_names -%>
41
+ <br><%= color.shade %><br><%= color.name %>
42
+ <%- end -%>
43
+ </div>
44
+
45
+ <%- end -%>
46
+ </div>
47
+
48
+ <%- end -%>
49
+
43
50
  </body>
44
51
  </html>
@@ -1,3 +1,3 @@
1
1
  module Colorly
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: colorly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-17 00:00:00.000000000 Z
11
+ date: 2021-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chroma
@@ -92,9 +92,10 @@ files:
92
92
  - lib/colorly.rb
93
93
  - lib/colorly/cli.rb
94
94
  - lib/colorly/command.rb
95
+ - lib/colorly/data/color-names.yml
95
96
  - lib/colorly/exceptions.rb
96
97
  - lib/colorly/extensions/chroma_color.rb
97
- - lib/colorly/extensions/string.rb
98
+ - lib/colorly/refinements/string.rb
98
99
  - lib/colorly/script.rb
99
100
  - lib/colorly/templates/html.erb
100
101
  - lib/colorly/version.rb
@@ -1,27 +0,0 @@
1
- require 'chroma'
2
-
3
- class String
4
- def spin(*args)
5
- paint.spin *args
6
- end
7
-
8
- def darken(*args)
9
- paint.darken *args
10
- end
11
-
12
- def lighten(*args)
13
- paint.lighten *args
14
- end
15
-
16
- def saturate(*args)
17
- paint.saturate *args
18
- end
19
-
20
- def desaturate(*args)
21
- paint.desaturate *args
22
- end
23
-
24
- def palette(*args)
25
- paint.palette *args
26
- end
27
- end