color_gradient 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85ad2d48320f5989e472c94469c2f242863ed4d8
4
- data.tar.gz: 21d846333dd94fddec2d825232a93c6a0fd318bf
3
+ metadata.gz: df58ebf002bbca822db20b5c8f43baf025e758c9
4
+ data.tar.gz: e12510b7a9d0f2278599944cd71fedc74088e122
5
5
  SHA512:
6
- metadata.gz: c46d4ac50f1d004eb3f0ecd08fb35f4924e5ff15663ca50e0b58098ee75366b8cb1a1f9552e4ce9e4ab9e9c53ac4460b24e729d952eb7c9d7174529ef602de7c
7
- data.tar.gz: b7536885a99ff18a7e6ef3b03e1caa1526be985e0d2ea94a0d721159a420bf14fc0bf9486ceaf5bc565f1f909c8f0ecb0957330033e0fa6d963c096fe75db318
6
+ metadata.gz: 53e20881941e2d7b342a83802a8f7262c307410d58f2086c750164c8a02f7e3ea7f4fe9d5a3e695d2a3322c3edc72a93dccd956902bd475e59ca96f544d77f61
7
+ data.tar.gz: 8ef1ebb766825ced817fee1c1fe61c74f509e32ff3b9e91986b635fd14e55c117468b49dafaa1d22adae950da32a2057cc1f3f1e32981476e3948bc8195ae874
data/README.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # ColorGradient
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/color_gradient.svg)](https://rubygems.org/gems/color_gradient)
4
+ [![Build Status](https://semaphoreci.com/api/v1/limeblast/color_gradient/branches/master/shields_badge.svg)](https://semaphoreci.com/limeblast/color_gradient)
5
+ [![Code Climate](https://codeclimate.com/github/LimeBlast/color_gradient/badges/gpa.svg)](https://codeclimate.com/github/LimeBlast/color_gradient)
6
+ [![Test Coverage](https://codeclimate.com/github/LimeBlast/color_gradient/badges/coverage.svg)](https://codeclimate.com/github/LimeBlast/color_gradient/coverage)
7
+ [![Issue Count](https://codeclimate.com/github/LimeBlast/color_gradient/badges/issue_count.svg)](https://codeclimate.com/github/LimeBlast/color_gradient)
8
+ [![Dependency Status](https://gemnasium.com/badges/github.com/LimeBlast/color_gradient.svg)](https://gemnasium.com/github.com/LimeBlast/color_gradient)
9
+
3
10
  This, my first ever gem, takes a [gradient calculation class](http://tnux.net/blog/2011/10/26/gradient-calculation-in-ruby/) created by [Tom Pesman](http://tnux.net/), and makes it use [Color gem](https://github.com/halostatue/color) objects.
4
11
 
5
12
  ## Installation
@@ -36,11 +43,12 @@ color_gradient.gradient(4)
36
43
  color_gradient.gradient(5)
37
44
  color_gradient.gradient(6)
38
45
  color_gradient.gradient(7)
39
- ```
40
46
 
41
- ## Todo
42
-
43
- - Make the `ColorGradient` object enumerable to make it loopable.
47
+ # Or use as enumerable object
48
+ color_gradient.each do |colour|
49
+ do_something(colour)
50
+ end
51
+ ```
44
52
 
45
53
  ## Development
46
54
 
@@ -1,3 +1,3 @@
1
1
  class ColorGradient
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -1,27 +1,42 @@
1
- require "color_gradient/version"
1
+ require 'color_gradient/version'
2
+ require 'forwardable'
2
3
 
3
4
  class ColorGradient
5
+ include Enumerable
6
+ extend Forwardable
7
+
8
+ def_delegators :result_array, :each, :last, :[]
9
+
4
10
  def initialize(start, stop, resolution)
5
11
  raise ArgumentError, 'start Argument is not Color gem object' unless start.is_a? Color
6
12
  raise ArgumentError, 'stop Argument is not Color gem object' unless stop.is_a? Color
7
13
  raise ArgumentError, 'resolution Argument is not integer' unless resolution.is_a? Integer
8
14
 
9
- @start = start
10
- @stop = stop
11
- @resolution = Float(resolution)
15
+ @start = start
16
+ @stop = stop
17
+ @resolution = Float(resolution)
18
+ @result_array = []
19
+
20
+ (resolution+1).times do |i|
21
+ @result_array << generate_step(i)
22
+ end
12
23
  end
13
24
 
14
25
  def gradient(step)
26
+ result_array[step]
27
+ end
28
+
29
+ private
30
+
31
+ attr_accessor :start, :stop, :resolution, :result_array
32
+
33
+ def generate_step(step)
15
34
  r = interpolate(start.red.to_i, stop.red.to_i, step)
16
35
  g = interpolate(start.green.to_i, stop.green.to_i, step)
17
36
  b = interpolate(start.blue.to_i, stop.blue.to_i, step)
18
37
  Color::RGB.new(r, g, b)
19
38
  end
20
39
 
21
- private
22
-
23
- attr_accessor :start, :stop, :resolution
24
-
25
40
  def interpolate(start, stop, step)
26
41
  if start < stop
27
42
  (((stop - start) * (step / resolution)) + start).round
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: color_gradient
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Hollands
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2016-04-10 00:00:00.000000000 Z
12
+ date: 2016-04-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: color