mosaiq 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: 9467adff2eb89abcec732cf6182e1a6c660c82ad7f4d6d854753f7ad3c2d5664
4
- data.tar.gz: 7dd7ce113284a6ef78d0051994c14a460264d9154819a0f30ee0de0281e32299
3
+ metadata.gz: 544b21c20826297ee626f191b5bd7169f8a82013ab9c35b45554d78c42a9981a
4
+ data.tar.gz: fa00e04db556682405c99381b434f416a711e2a8318cdc0dec69efabce67cd5a
5
5
  SHA512:
6
- metadata.gz: 60968a2d1b740d6a8856d2da4f387cc10bdc47e4e1553e8e1299ea12e5d5b09ca3d49f5d289b3a59e8457104ae7929b17ec6c048afd52a689b6a82d3dc8143a9
7
- data.tar.gz: 487ccf1b840cd9a7d501fd64261cc0e5560c085dd97cfb22f1c05322c6b0a9fee2c2ac174681a3e889f9b31d3f01ea8adb4fd57a291db7d285591a1589466a39
6
+ metadata.gz: f7592c0ca8158c951ae14e07f185fd6ce8e233135a7227e46d4bac449601ed35cc7ebba0820eb14e6ad03fa6ba69c2f9685f085ded8bc9e3daadfcabf1044647
7
+ data.tar.gz: e814b8e37c71066ec0d159887e9a0f9d4c858f95549cd5ecac10399f21f14d40a107f43d8c2364486e57435d6c36d386917f5c1cee47e7a4b438da7dcc65e7a9
data/.travis.yml CHANGED
@@ -6,7 +6,11 @@ rvm:
6
6
  before_install:
7
7
  - "gem update --system"
8
8
  - "gem install bundler"
9
+ before_script:
10
+ - "curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter"
11
+ - "chmod +x ./cc-test-reporter"
12
+ - "./cc-test-reporter before-build"
9
13
  script:
10
14
  - "bin/test"
11
-
12
-
15
+ after_script:
16
+ - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
data/Gemfile.lock CHANGED
@@ -1,14 +1,16 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- mosaiq (0.1.1)
4
+ mosaiq (0.1.2)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
9
  ast (2.4.0)
10
10
  byebug (11.0.1)
11
+ docile (1.3.2)
11
12
  jaro_winkler (1.5.3)
13
+ json (2.2.0)
12
14
  mini_portile2 (2.4.0)
13
15
  minitest (5.12.2)
14
16
  nokogiri (1.10.4)
@@ -26,6 +28,11 @@ GEM
26
28
  ruby-progressbar (~> 1.7)
27
29
  unicode-display_width (>= 1.4.0, < 1.7)
28
30
  ruby-progressbar (1.10.1)
31
+ simplecov (0.17.1)
32
+ docile (~> 1.1)
33
+ json (>= 1.8, < 3)
34
+ simplecov-html (~> 0.10.0)
35
+ simplecov-html (0.10.2)
29
36
  unicode-display_width (1.6.0)
30
37
 
31
38
  PLATFORMS
@@ -39,6 +46,7 @@ DEPENDENCIES
39
46
  nokogiri
40
47
  rake (~> 10.0)
41
48
  rubocop
49
+ simplecov
42
50
 
43
51
  BUNDLED WITH
44
52
  2.0.2
data/README.md CHANGED
@@ -1,4 +1,6 @@
1
1
  [![Build Status](https://travis-ci.org/lxxxvi/mosaiq.svg?branch=master)](https://travis-ci.org/lxxxvi/mosaiq)
2
+ [![Maintainability](https://api.codeclimate.com/v1/badges/b78dd888a84f07d25867/maintainability)](https://codeclimate.com/github/lxxxvi/mosaiq/maintainability)
3
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/b78dd888a84f07d25867/test_coverage)](https://codeclimate.com/github/lxxxvi/mosaiq/test_coverage)
2
4
 
3
5
  # Mosaiq
4
6
 
@@ -22,14 +24,23 @@ Or install it yourself as:
22
24
 
23
25
  ## Usage
24
26
 
25
- Currently only SVG is supported.
27
+ Base usage:
28
+
29
+ ```ruby
30
+ image = Mosaiq::Image.new(width: 3, height: 4, colors: %w[red green blue])
31
+ ```
32
+
33
+ * Unit of `width` and `height` is pixels
34
+ * `colors` is an `Array` of color names. Any valid HTML color will work. There are also predefined color "Palettes", [see below](#palette).
35
+
26
36
 
27
37
  ### SVG
28
38
 
39
+ Currently only SVG is supported.
40
+
29
41
  ```ruby
30
- mosaiq = Mosaiq::Image.new(3, 4, %w[red green blue])
31
- puts mosaiq.svg
32
- # => <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg width="100%" height="100%" viewBox="0 0 4 3" version="1.1" xmlns="http://www.w3.org/2000/svg"><rect x="0" y="0" width="1" height="1" style="fill: blue;"/><rect x="0" y="1" width="1" height="1" style="fill: green;"/><rect x="0" y="2" width="1" height="1" style="fill: red;"/><rect x="1" y="0" width="1" height="1" style="fill: red;"/><rect x="1" y="1" width="1" height="1" style="fill: red;"/><rect x="1" y="2" width="1" height="1" style="fill: red;"/><rect x="2" y="0" width="1" height="1" style="fill: blue;"/><rect x="2" y="1" width="1" height="1" style="fill: blue;"/><rect x="2" y="2" width="1" height="1" style="fill: red;"/><rect x="3" y="0" width="1" height="1" style="fill: red;"/><rect x="3" y="1" width="1" height="1" style="fill: blue;"/><rect x="3" y="2" width="1" height="1" style="fill: red;"/></svg>
42
+ puts image.svg.raw
43
+ # => <?xml version="1.0" encoding="UTF-8"?> ...
33
44
  ```
34
45
 
35
46
  which looks like this when saved to a file
@@ -38,19 +49,16 @@ which looks like this when saved to a file
38
49
  |---------------------------------------------------------------|
39
50
  | ![Example mosaiq](./documentation/example_red_green_blue.svg) |
40
51
 
41
- * The first argument is the `width` of the image.
42
- * The second argument is the `height` of the image.
43
- * The third argument is an array of color names. Any valid HTML color names will do.
44
52
 
45
53
  ## Palette
46
54
 
47
55
  There are three predefined "Palettes" of colors:
48
56
 
49
- | Palette | Example | Result |
50
- |--------------------|---------------------------------------------------------------|-------------------------------------------------------------------------|
51
- | `black_and_white` | `Mosaiq::Image.new(10, 5, Mosaiq::Palette::black_and_white)` | ![Example black_and_white](./documentation/example_black_and_white.svg) |
52
- | `grays` | `Mosaiq::Image.new(10, 5, Mosaiq::Palette::grays)` | ![Example grays](./documentation/example_grays.svg) |
53
- | `random_colors(n)` | `Mosaiq::Image.new(10, 5, Mosaiq::Palette::random_colors(8))` | ![Example random_colors](./documentation/example_random_colors_8.svg) |
57
+ | Palette | Example | Result |
58
+ |--------------------|--------------------------------------------------------------------------------------|-------------------------------------------------------------------------|
59
+ | `black_and_white` | `Mosaiq::Image.new(width: 10, height: 5, colors: Mosaiq::Palette::black_and_white)` | ![Example black_and_white](./documentation/example_black_and_white.svg) |
60
+ | `grays` | `Mosaiq::Image.new(width: 10, height: 5, colors: Mosaiq::Palette::grays)` | ![Example grays](./documentation/example_grays.svg) |
61
+ | `random_colors(n)` | `Mosaiq::Image.new(width: 10, height: 5, colors: Mosaiq::Palette::random_colors(8))` | ![Example random_colors](./documentation/example_random_colors_8.svg) |
54
62
 
55
63
 
56
64
  ## Development
@@ -61,7 +69,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
61
69
 
62
70
  ## Contributing
63
71
 
64
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/mosaiq. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
72
+ Bug reports and pull requests are welcome on GitHub at https://github.com/lxxxvi/mosaiq. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
65
73
 
66
74
  ## License
67
75
 
data/lib/mosaiq/image.rb CHANGED
@@ -5,7 +5,7 @@ require 'mosaiq/svg'
5
5
  module Mosaiq
6
6
  # Main class to create a Mosaiq Image
7
7
  class Image
8
- def initialize(width, height, colors = Palette.black_and_white)
8
+ def initialize(width:, height:, colors: Palette.black_and_white)
9
9
  @width = read_positive_integer(width: width)
10
10
  @height = read_positive_integer(height: height)
11
11
  @colors = read_colors(colors)
@@ -14,7 +14,7 @@ module Mosaiq
14
14
  end
15
15
 
16
16
  def svg
17
- Mosaiq::Svg.new(@canvas).generate
17
+ Mosaiq::Svg.new(@canvas)
18
18
  end
19
19
 
20
20
  private
data/lib/mosaiq/svg.rb CHANGED
@@ -9,7 +9,7 @@ module Mosaiq
9
9
  @height = canvas.count
10
10
  end
11
11
 
12
- def generate
12
+ def raw
13
13
  %(#{svg_header} #{svg_body}).tr("\n", '').gsub(/ +/, ' ')
14
14
  end
15
15
 
@@ -17,18 +17,18 @@ module Mosaiq
17
17
 
18
18
  def svg_header
19
19
  %(<?xml version="1.0" encoding="UTF-8"?>
20
- <!DOCTYPE svg
21
- PUBLIC
22
- "-//W3C//DTD SVG 1.1//EN"
23
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">)
20
+ <!DOCTYPE svg
21
+ PUBLIC
22
+ "-//W3C//DTD SVG 1.1//EN"
23
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">)
24
24
  end
25
25
 
26
26
  def svg_body
27
27
  %(<svg width="100%"
28
- height="100%"
29
- viewBox="0 0 #{@width} #{@height}"
30
- version="1.1"
31
- xmlns="http://www.w3.org/2000/svg">#{svg_rectangles.join}</svg>)
28
+ height="100%"
29
+ viewBox="0 0 #{@width} #{@height}"
30
+ version="1.1"
31
+ xmlns="http://www.w3.org/2000/svg">#{svg_rectangles.join}</svg>)
32
32
  end
33
33
 
34
34
  def svg_rectangles
@@ -41,10 +41,10 @@ module Mosaiq
41
41
 
42
42
  def svg_rectangle(x_coordinates, y_coordinates, color)
43
43
  %(<rect x="#{x_coordinates}"
44
- y="#{y_coordinates}"
45
- width="1"
46
- height="1"
47
- style="fill: #{color};"/>)
44
+ y="#{y_coordinates}"
45
+ width="1"
46
+ height="1"
47
+ style="fill: #{color};"/>)
48
48
  end
49
49
  end
50
50
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mosaiq
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
data/mosaiq.gemspec CHANGED
@@ -30,10 +30,13 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ['lib']
32
32
 
33
+ spec.required_ruby_version = '>= 2.3'
34
+
33
35
  spec.add_development_dependency 'bundler', '~> 2.0'
34
36
  spec.add_development_dependency 'byebug'
35
37
  spec.add_development_dependency 'minitest', '~> 5.0'
36
38
  spec.add_development_dependency 'nokogiri'
37
39
  spec.add_development_dependency 'rake', '~> 10.0'
38
40
  spec.add_development_dependency 'rubocop'
41
+ spec.add_development_dependency 'simplecov'
39
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mosaiq
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - lxxxvi
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-10-28 00:00:00.000000000 Z
11
+ date: 2019-10-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: simplecov
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  description: Mosaiq generates images of randomly colored pixels
98
112
  email:
99
113
  - lxxxvi@users.noreply.github.com
@@ -139,7 +153,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
139
153
  requirements:
140
154
  - - ">="
141
155
  - !ruby/object:Gem::Version
142
- version: '0'
156
+ version: '2.3'
143
157
  required_rubygems_version: !ruby/object:Gem::Requirement
144
158
  requirements:
145
159
  - - ">="