geo_pattern 1.3.2 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +58 -0
- data/.simplecov +25 -0
- data/.travis.yml +12 -0
- data/Gemfile +3 -1
- data/README.md +125 -23
- data/Rakefile +72 -9
- data/fixtures/generated_patterns/chevrons.svg +1 -0
- data/fixtures/generated_patterns/concentric_circles.svg +1 -0
- data/fixtures/generated_patterns/diamonds.svg +1 -0
- data/fixtures/generated_patterns/diamonds_with_base_color.svg +1 -0
- data/fixtures/generated_patterns/diamonds_with_color.svg +1 -0
- data/fixtures/generated_patterns/hexagons.svg +1 -0
- data/fixtures/generated_patterns/mosaic_squares.svg +1 -0
- data/fixtures/generated_patterns/nested_squares.svg +1 -0
- data/fixtures/generated_patterns/octagons.svg +1 -0
- data/fixtures/generated_patterns/overlapping_circles.svg +1 -0
- data/fixtures/generated_patterns/overlapping_rings.svg +1 -0
- data/fixtures/generated_patterns/plaid.svg +1 -0
- data/fixtures/generated_patterns/plus_signs.svg +1 -0
- data/fixtures/generated_patterns/sine_waves.svg +1 -0
- data/fixtures/generated_patterns/squares.svg +1 -0
- data/fixtures/generated_patterns/tessellation.svg +1 -0
- data/fixtures/generated_patterns/triangles.svg +1 -0
- data/fixtures/generated_patterns/xes.svg +1 -0
- data/geo_pattern.gemspec +8 -2
- data/lib/geo_pattern.rb +42 -20
- data/lib/geo_pattern/background.rb +25 -0
- data/lib/geo_pattern/background_generators/solid_generator.rb +52 -0
- data/lib/geo_pattern/color.rb +25 -0
- data/lib/geo_pattern/color_generators/base_color_generator.rb +55 -0
- data/lib/geo_pattern/color_generators/simple_generator.rb +27 -0
- data/lib/geo_pattern/color_preset.rb +26 -0
- data/lib/geo_pattern/errors.rb +7 -0
- data/lib/geo_pattern/geo_pattern_task.rb +59 -0
- data/lib/geo_pattern/helpers.rb +47 -0
- data/lib/geo_pattern/pattern.rb +84 -0
- data/lib/geo_pattern/pattern_generator.rb +33 -82
- data/lib/geo_pattern/pattern_helpers.rb +31 -2
- data/lib/geo_pattern/pattern_preset.rb +23 -0
- data/lib/geo_pattern/pattern_sieve.rb +36 -0
- data/lib/geo_pattern/pattern_store.rb +63 -0
- data/lib/geo_pattern/pattern_validator.rb +27 -0
- data/lib/geo_pattern/rake_task.rb +109 -0
- data/lib/geo_pattern/roles/comparable_metadata.rb +35 -0
- data/lib/geo_pattern/roles/named_generator.rb +13 -0
- data/lib/geo_pattern/seed.rb +21 -0
- data/lib/geo_pattern/structure.rb +25 -0
- data/lib/geo_pattern/structure_generators/base_generator.rb +85 -0
- data/lib/geo_pattern/structure_generators/chevrons_generator.rb +55 -0
- data/lib/geo_pattern/structure_generators/concentric_circles_generator.rb +56 -0
- data/lib/geo_pattern/structure_generators/diamonds_generator.rb +66 -0
- data/lib/geo_pattern/structure_generators/hexagons_generator.rb +67 -0
- data/lib/geo_pattern/structure_generators/mosaic_squares_generator.rb +85 -0
- data/lib/geo_pattern/structure_generators/nested_squares_generator.rb +60 -0
- data/lib/geo_pattern/structure_generators/octagons_generator.rb +44 -0
- data/lib/geo_pattern/structure_generators/overlapping_circles_generator.rb +55 -0
- data/lib/geo_pattern/structure_generators/overlapping_rings_generator.rb +55 -0
- data/lib/geo_pattern/structure_generators/plaid_generator.rb +55 -0
- data/lib/geo_pattern/structure_generators/plus_signs_generator.rb +62 -0
- data/lib/geo_pattern/structure_generators/sine_waves_generator.rb +43 -0
- data/lib/geo_pattern/structure_generators/squares_generator.rb +36 -0
- data/lib/geo_pattern/structure_generators/tessellation_generator.rb +103 -0
- data/lib/geo_pattern/structure_generators/triangles_generator.rb +61 -0
- data/lib/geo_pattern/structure_generators/xes_generator.rb +67 -0
- data/lib/geo_pattern/svg_image.rb +101 -0
- data/lib/geo_pattern/version.rb +1 -1
- data/script/bootstrap +30 -0
- data/script/console +8 -0
- data/script/test +21 -0
- data/spec/background_generators/solid_generator_spec.rb +50 -0
- data/spec/background_spec.rb +25 -0
- data/spec/color_generators/base_color_generator_spec.rb +31 -0
- data/spec/color_generators/simple_generator_spec.rb +12 -0
- data/spec/color_preset_spec.rb +53 -0
- data/spec/color_spec.rb +15 -0
- data/spec/geo_pattern_spec.rb +95 -24
- data/spec/helpers_spec.rb +65 -0
- data/spec/pattern_preset_spec.rb +41 -0
- data/spec/pattern_sieve_spec.rb +66 -0
- data/spec/pattern_spec.rb +72 -0
- data/spec/pattern_store_spec.rb +47 -0
- data/spec/pattern_validator_spec.rb +28 -0
- data/spec/seed_spec.rb +14 -0
- data/spec/spec_helper.rb +1 -6
- data/spec/structure_generators/chevrons_generator_spec.rb +5 -0
- data/spec/structure_generators/concentric_circles_generator_spec.rb +5 -0
- data/spec/structure_generators/diamonds_generator_spec.rb +5 -0
- data/spec/structure_generators/hexagons_generator_spec.rb +5 -0
- data/spec/structure_generators/mosaic_squares_generator_spec.rb +5 -0
- data/spec/structure_generators/nested_squares_generator_spec.rb +5 -0
- data/spec/structure_generators/octagons_generator_spec.rb +5 -0
- data/spec/structure_generators/overlapping_circles_generator_spec.rb +5 -0
- data/spec/structure_generators/overlapping_rings_generator_spec.rb +5 -0
- data/spec/structure_generators/plaid_generator_spec.rb +5 -0
- data/spec/structure_generators/plus_signs_generator_spec.rb +5 -0
- data/spec/structure_generators/sine_waves_generator_spec.rb +5 -0
- data/spec/structure_generators/squares_generator_spec.rb +5 -0
- data/spec/structure_generators/tessellation_generator_spec.rb +5 -0
- data/spec/structure_generators/triangles_generator_spec.rb +5 -0
- data/spec/structure_generators/xes_generator_spec.rb +5 -0
- data/spec/structure_spec.rb +38 -0
- data/spec/support/helpers/fixtures.rb +12 -0
- data/spec/support/kernel.rb +40 -0
- data/spec/support/matchers/image.rb +17 -0
- data/spec/support/matchers/name.rb +15 -0
- data/spec/support/rspec.rb +1 -1
- data/spec/support/shared_examples/generator.rb +46 -0
- data/spec/support/shared_examples/pattern.rb +31 -0
- data/spec/support/shared_examples/pattern_name.rb +7 -0
- data/spec/support/shared_examples/structure.rb +48 -0
- data/spec/svg_spec.rb +3 -3
- metadata +141 -25
- data/lib/geo_pattern/pattern/base_pattern.rb +0 -47
- data/lib/geo_pattern/pattern/chevron_pattern.rb +0 -45
- data/lib/geo_pattern/pattern/concentric_circles_pattern.rb +0 -47
- data/lib/geo_pattern/pattern/diamond_pattern.rb +0 -56
- data/lib/geo_pattern/pattern/hexagon_pattern.rb +0 -57
- data/lib/geo_pattern/pattern/mosaic_squares_pattern.rb +0 -76
- data/lib/geo_pattern/pattern/nested_squares_pattern.rb +0 -51
- data/lib/geo_pattern/pattern/octagon_pattern.rb +0 -35
- data/lib/geo_pattern/pattern/overlapping_circles_pattern.rb +0 -46
- data/lib/geo_pattern/pattern/overlapping_rings_pattern.rb +0 -46
- data/lib/geo_pattern/pattern/plaid_pattern.rb +0 -49
- data/lib/geo_pattern/pattern/plus_sign_pattern.rb +0 -53
- data/lib/geo_pattern/pattern/sine_wave_pattern.rb +0 -36
- data/lib/geo_pattern/pattern/square_pattern.rb +0 -27
- data/lib/geo_pattern/pattern/tessellation_pattern.rb +0 -93
- data/lib/geo_pattern/pattern/triangle_pattern.rb +0 -51
- data/lib/geo_pattern/pattern/xes_pattern.rb +0 -58
- data/lib/geo_pattern/svg.rb +0 -77
- data/spec/support/helpers.rb +0 -34
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 505b039dc31f17e65a619928b123b061077629ad
|
4
|
+
data.tar.gz: 549237f81df720c5ef2a9a2767b4d7be0ee3a96f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 982753d4976ffe9aeef807a814aecc5e4a8a64f972228a05eef69dde285c4ec42d9b8dd328f5b0fbd5dbe6218fdad26a6956b729f443b21cb9fa54ea8628a3bc
|
7
|
+
data.tar.gz: 185373a809c450c8427928f72e0c4d4941b1c3182d78ddac129f797a5e67477ab66bfcd232c03358ee996e0c98efd1e578402de00d570dca58f0c968829ed6c4
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
AllCops:
|
2
2
|
Exclude:
|
3
3
|
- 'tmp/**/*'
|
4
|
+
DisplayCopNames: true
|
4
5
|
|
5
6
|
# Configuration parameters: MaxSlashes.
|
6
7
|
Style/RegexpLiteral:
|
@@ -11,3 +12,60 @@ Metrics/AbcSize:
|
|
11
12
|
|
12
13
|
Lint/Debugger:
|
13
14
|
Enabled: false
|
15
|
+
|
16
|
+
# Offense count: 1
|
17
|
+
# Configuration parameters: AllowSafeAssignment.
|
18
|
+
Lint/AssignmentInCondition:
|
19
|
+
Enabled: false
|
20
|
+
|
21
|
+
# Offense count: 2
|
22
|
+
Lint/Eval:
|
23
|
+
Enabled: false
|
24
|
+
|
25
|
+
# Offense count: 6
|
26
|
+
Metrics/BlockNesting:
|
27
|
+
Max: 4
|
28
|
+
|
29
|
+
# Offense count: 8
|
30
|
+
Metrics/CyclomaticComplexity:
|
31
|
+
Max: 22
|
32
|
+
|
33
|
+
# Offense count: 155
|
34
|
+
# Configuration parameters: AllowURI, URISchemes.
|
35
|
+
Metrics/LineLength:
|
36
|
+
Max: 406
|
37
|
+
|
38
|
+
# Offense count: 24
|
39
|
+
# Configuration parameters: CountComments.
|
40
|
+
Metrics/MethodLength:
|
41
|
+
Max: 78
|
42
|
+
|
43
|
+
# Offense count: 6
|
44
|
+
Metrics/PerceivedComplexity:
|
45
|
+
Max: 10
|
46
|
+
|
47
|
+
# Offense count: 2
|
48
|
+
Style/AccessorMethodName:
|
49
|
+
Enabled: false
|
50
|
+
|
51
|
+
# Offense count: 36
|
52
|
+
Style/Documentation:
|
53
|
+
Enabled: false
|
54
|
+
|
55
|
+
# Offense count: 1
|
56
|
+
Style/EmptyElse:
|
57
|
+
Enabled: false
|
58
|
+
|
59
|
+
# Offense count: 10
|
60
|
+
Style/EvenOdd:
|
61
|
+
Enabled: false
|
62
|
+
|
63
|
+
# Offense count: 28
|
64
|
+
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
65
|
+
Style/For:
|
66
|
+
Enabled: false
|
67
|
+
|
68
|
+
# Offense count: 3
|
69
|
+
# Configuration parameters: MaxLineLength.
|
70
|
+
Style/IfUnlessModifier:
|
71
|
+
Enabled: false
|
data/.simplecov
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class ExcludeRegexFilter < SimpleCov::Filter
|
4
|
+
def matches?(source_file)
|
5
|
+
source_file.filename !~ filter_argument
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
class IncludeRegexFilter < SimpleCov::Filter
|
10
|
+
def matches?(source_file)
|
11
|
+
source_file.filename =~ filter_argument
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
SimpleCov.start do
|
16
|
+
add_filter "/features/"
|
17
|
+
add_filter "/fixtures/"
|
18
|
+
add_filter "/spec/"
|
19
|
+
add_filter "/tmp"
|
20
|
+
add_filter "/vendor"
|
21
|
+
|
22
|
+
generator_filter = %r{/background_generators/|/structure_generators/}
|
23
|
+
add_group "lib", ExcludeRegexFilter.new(generator_filter)
|
24
|
+
add_group "generators", IncludeRegexFilter.new(generator_filter)
|
25
|
+
end
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,13 +1,24 @@
|
|
1
1
|
[![](http://img.shields.io/gem/v/geo_pattern.svg?style=flat)](http://rubygems.org/gems/geo_pattern)
|
2
|
+
[![](https://img.shields.io/travis/jasonlong/geo_pattern.svg?style=flat)](https://travis-ci.org/jasonlong/geo_pattern)
|
2
3
|
[![](http://img.shields.io/gem/dt/geo_pattern.svg?style=flat)](http://rubygems.org/gems/geo_pattern)
|
3
4
|
|
4
5
|
# GeoPattern
|
5
6
|
|
6
|
-
Generate beautiful tiling SVG patterns from a string. The string is converted
|
7
|
+
Generate beautiful tiling SVG patterns from a string. The string is converted
|
8
|
+
into a SHA and a color and pattern are determined based on the values in the
|
9
|
+
hash. The color is determined by shifting the hue and saturation from a default
|
10
|
+
(or passed in) base color. One of 16 patterns is used (or you can specify one)
|
11
|
+
and the sizing of the pattern elements is also determined by the hash values.
|
7
12
|
|
8
|
-
You can use the generated pattern as the `background-image` for a container.
|
13
|
+
You can use the generated pattern as the `background-image` for a container.
|
14
|
+
Using the `base64` representation of the pattern still results in SVG
|
15
|
+
rendering, so it looks great on retina displays.
|
9
16
|
|
10
|
-
See the [GitHub Guides](http://guides.github.com) site and the [Explore section
|
17
|
+
See the [GitHub Guides](http://guides.github.com) site and the [Explore section
|
18
|
+
of GitHub](https://github.com/explore) are examples of this library in action.
|
19
|
+
Brandon Mills has put together an awesome [live preview
|
20
|
+
page](http://btmills.github.io/geopattern/geopattern.html) that's built on his
|
21
|
+
Javascript port.
|
11
22
|
|
12
23
|
## Installation
|
13
24
|
|
@@ -46,93 +57,175 @@ pattern = GeoPattern.generate('Mastering Markdown', color: '#fc0')
|
|
46
57
|
To use a specific [pattern generator](#available-patterns):
|
47
58
|
|
48
59
|
```ruby
|
49
|
-
pattern = GeoPattern.generate('Mastering Markdown',
|
60
|
+
pattern = GeoPattern.generate('Mastering Markdown', patterns: :sine_waves)
|
61
|
+
```
|
62
|
+
|
63
|
+
To use a subset of the [available patterns](#available-patterns):
|
64
|
+
|
65
|
+
```ruby
|
66
|
+
pattern = GeoPattern.generate('Mastering Markdown', patterns: [:sine_waves, :xes])
|
50
67
|
```
|
51
68
|
|
52
69
|
Get the SVG string:
|
53
70
|
|
54
71
|
```ruby
|
55
|
-
puts pattern.
|
72
|
+
puts pattern.to_svg
|
56
73
|
# => <svg xmlns="http://www.w3.org/2000/svg" ...
|
57
74
|
```
|
58
75
|
|
59
76
|
Get the Base64 encoded string:
|
60
77
|
|
61
78
|
```ruby
|
62
|
-
puts pattern.
|
79
|
+
puts pattern.to_base64
|
63
80
|
# => PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC...
|
64
81
|
```
|
65
82
|
|
66
83
|
You can then use this string to set the background:
|
67
84
|
|
68
85
|
```html
|
69
|
-
<div style="background-image: <%= pattern.
|
86
|
+
<div style="background-image: <%= pattern.to_data_uri %>"></div>
|
70
87
|
```
|
71
88
|
|
72
89
|
## Available patterns
|
73
90
|
|
74
|
-
*Note: As of version `1.3.0`, string references (e.g. `overlapping_circles`)
|
91
|
+
*Note: As of version `1.3.0`, string references (e.g. `overlapping_circles`)
|
92
|
+
are deprecated in favor of symbol references (e.g. `:overlapping_circles`).*
|
93
|
+
|
94
|
+
### :chevrons
|
95
|
+
|
96
|
+
![](http://jasonlong.github.io/geo_pattern/examples/chevrons.png)
|
75
97
|
|
76
|
-
|
98
|
+
|
99
|
+
### :octagons
|
77
100
|
|
78
101
|
![](http://jasonlong.github.io/geo_pattern/examples/octogons.png)
|
79
102
|
|
80
|
-
###
|
103
|
+
### :overlapping_circles
|
81
104
|
|
82
105
|
![](http://jasonlong.github.io/geo_pattern/examples/overlapping_circles.png)
|
83
106
|
|
84
|
-
###
|
107
|
+
### :plus_signs
|
85
108
|
|
86
109
|
![](http://jasonlong.github.io/geo_pattern/examples/plus_signs.png)
|
87
110
|
|
88
|
-
###
|
111
|
+
### :xes
|
89
112
|
|
90
113
|
![](http://jasonlong.github.io/geo_pattern/examples/xes.png)
|
91
114
|
|
92
|
-
###
|
115
|
+
### :sine_waves
|
93
116
|
|
94
117
|
![](http://jasonlong.github.io/geo_pattern/examples/sine_waves.png)
|
95
118
|
|
96
|
-
###
|
119
|
+
### :hexagons
|
97
120
|
|
98
121
|
![](http://jasonlong.github.io/geo_pattern/examples/hexagons.png)
|
99
122
|
|
100
|
-
###
|
123
|
+
### :overlapping_rings
|
101
124
|
|
102
125
|
![](http://jasonlong.github.io/geo_pattern/examples/overlapping_rings.png)
|
103
126
|
|
104
|
-
###
|
127
|
+
### :plaid
|
105
128
|
|
106
129
|
![](http://jasonlong.github.io/geo_pattern/examples/plaid.png)
|
107
130
|
|
108
|
-
###
|
131
|
+
### :triangles
|
109
132
|
|
110
133
|
![](http://jasonlong.github.io/geo_pattern/examples/triangles.png)
|
111
134
|
|
112
|
-
###
|
135
|
+
### :squares
|
113
136
|
|
114
137
|
![](http://jasonlong.github.io/geo_pattern/examples/squares.png)
|
115
138
|
|
116
|
-
###
|
139
|
+
### :nested_squares
|
117
140
|
|
118
141
|
![](http://jasonlong.github.io/geo_pattern/examples/nested_squares.png)
|
119
142
|
|
120
|
-
###
|
143
|
+
### :mosaic_squares
|
121
144
|
|
122
145
|
![](http://jasonlong.github.io/geo_pattern/examples/mosaic_squares.png)
|
123
146
|
|
124
|
-
###
|
147
|
+
### :concentric_circles
|
125
148
|
|
126
149
|
![](http://jasonlong.github.io/geo_pattern/examples/concentric_circles.png)
|
127
150
|
|
128
|
-
###
|
151
|
+
### :diamonds
|
129
152
|
|
130
153
|
![](http://jasonlong.github.io/geo_pattern/examples/diamonds.png)
|
131
154
|
|
132
|
-
###
|
155
|
+
### :tessellation
|
133
156
|
|
134
157
|
![](http://jasonlong.github.io/geo_pattern/examples/tessellation.png)
|
135
158
|
|
159
|
+
### GeoPattern::ChevronPattern
|
160
|
+
|
161
|
+
![](http://jasonlong.github.io/geo_pattern/examples/chevrons.png)
|
162
|
+
|
163
|
+
|
164
|
+
## Inspection of pattern
|
165
|
+
|
166
|
+
If you want to get some more information about a pattern, please use the
|
167
|
+
following methods.
|
168
|
+
|
169
|
+
```ruby
|
170
|
+
pattern = GeoPattern.generate('Mastering Markdown', patterns: [:sine_waves, :xes])
|
171
|
+
|
172
|
+
# The color of the background in html notation
|
173
|
+
pattern.background.color.to_html
|
174
|
+
|
175
|
+
# The color of the background in svg notation
|
176
|
+
pattern.background.color.to_svg
|
177
|
+
|
178
|
+
|
179
|
+
# The input colors
|
180
|
+
pattern.background.preset.color
|
181
|
+
pattern.background.preset.base_color
|
182
|
+
|
183
|
+
# The generator
|
184
|
+
pattern.background.generator
|
185
|
+
```
|
186
|
+
|
187
|
+
To get more information about the structure of the pattern, please use the following methods:
|
188
|
+
|
189
|
+
```ruby
|
190
|
+
pattern = GeoPattern.generate('Mastering Markdown', patterns: [:sine_waves, :xes])
|
191
|
+
|
192
|
+
# The name of the structure
|
193
|
+
pattern.structure.name
|
194
|
+
|
195
|
+
# The generator of the structure
|
196
|
+
pattern.structure.generator
|
197
|
+
```
|
198
|
+
|
199
|
+
## Rake Support
|
200
|
+
|
201
|
+
```ruby
|
202
|
+
string = 'Mastering markdown'
|
203
|
+
|
204
|
+
require 'geo_pattern/geo_pattern_task'
|
205
|
+
|
206
|
+
GeoPattern::GeoPatternTask.new(
|
207
|
+
name: 'generate',
|
208
|
+
description: 'Generate patterns to make them available as fixtures',
|
209
|
+
data: {
|
210
|
+
'fixtures/generated_patterns/diamonds_with_color.svg' => { input: string, patterns: [:diamonds], color: '#00ff00' },
|
211
|
+
'fixtures/generated_patterns/diamonds_with_base_color.svg' => { input: string, patterns: [:diamonds], base_color: '#00ff00' }
|
212
|
+
}
|
213
|
+
)
|
214
|
+
```
|
215
|
+
|
216
|
+
## Developing
|
217
|
+
|
218
|
+
### Generate Fixtures
|
219
|
+
|
220
|
+
```ruby
|
221
|
+
rake fixtures:generate
|
222
|
+
```
|
223
|
+
|
224
|
+
### Run tests
|
225
|
+
|
226
|
+
```ruby
|
227
|
+
rake test
|
228
|
+
```
|
136
229
|
|
137
230
|
## Contributing
|
138
231
|
|
@@ -142,6 +235,15 @@ You can then use this string to set the background:
|
|
142
235
|
4. Push to the branch (`git push origin my-new-feature`)
|
143
236
|
5. Create new Pull Request
|
144
237
|
|
238
|
+
## Development
|
239
|
+
|
240
|
+
Prefix rspec-commandline with `RSPEC_PROFILE=1` to output the ten slowest
|
241
|
+
examples of the test suite.
|
242
|
+
|
243
|
+
```bash
|
244
|
+
RSPEC_PROFILE=1 bundle exec rspec
|
245
|
+
```
|
246
|
+
|
145
247
|
## Ports
|
146
248
|
|
147
249
|
JavaScript port by Brandon Mills:
|
data/Rakefile
CHANGED
@@ -1,23 +1,86 @@
|
|
1
|
-
|
2
|
-
require 'inch/rake'
|
3
|
-
require 'rspec/core/rake_task'
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../lib', __FILE__)
|
4
2
|
|
5
3
|
desc 'Default task running Tests'
|
6
4
|
task default: :test
|
7
5
|
|
8
6
|
desc 'Run test suite'
|
9
|
-
task test: 'test:rspec'
|
10
|
-
|
11
|
-
|
7
|
+
task test: ['test:rubocop', 'test:rspec']
|
8
|
+
task 'test:ci' => ['bootstrap:gem_requirements', :test]
|
12
9
|
namespace :test do
|
10
|
+
task :rspec do
|
11
|
+
sh 'rspec'
|
12
|
+
end
|
13
13
|
|
14
|
-
|
14
|
+
task :rubocop do
|
15
|
+
sh 'rubocop'
|
16
|
+
end
|
15
17
|
|
16
|
-
|
18
|
+
task 'rubocop:autocorrect' do
|
19
|
+
sh 'rubocop --auto-correct'
|
20
|
+
end
|
17
21
|
|
18
|
-
|
22
|
+
task 'inch' do
|
23
|
+
sh 'inch'
|
24
|
+
end
|
19
25
|
end
|
20
26
|
|
21
27
|
namespace :gem do
|
22
28
|
require 'bundler/gem_tasks'
|
23
29
|
end
|
30
|
+
|
31
|
+
unless ENV.key?('CI')
|
32
|
+
require 'geo_pattern/geo_pattern_task'
|
33
|
+
|
34
|
+
namespace :fixtures do
|
35
|
+
string = 'Mastering Markdown'
|
36
|
+
|
37
|
+
GeoPattern::GeoPatternTask.new(
|
38
|
+
name: 'generate',
|
39
|
+
description: 'Generate patterns to make them available as fixtures',
|
40
|
+
data: {
|
41
|
+
'fixtures/generated_patterns/chevrons.svg' => { input: string, patterns: [:chevrons] },
|
42
|
+
'fixtures/generated_patterns/concentric_circles.svg' => { input: string, patterns: [:concentric_circles] },
|
43
|
+
'fixtures/generated_patterns/diamonds.svg' => { input: string, patterns: [:diamonds] },
|
44
|
+
'fixtures/generated_patterns/hexagons.svg' => { input: string, patterns: [:hexagons] },
|
45
|
+
'fixtures/generated_patterns/mosaic_squares.svg' => { input: string, patterns: [:mosaic_squares] },
|
46
|
+
'fixtures/generated_patterns/nested_squares.svg' => { input: string, patterns: [:nested_squares] },
|
47
|
+
'fixtures/generated_patterns/octagons.svg' => { input: string, patterns: [:octagons] },
|
48
|
+
'fixtures/generated_patterns/overlapping_circles.svg' => { input: string, patterns: [:overlapping_circles] },
|
49
|
+
'fixtures/generated_patterns/overlapping_rings.svg' => { input: string, patterns: [:overlapping_rings] },
|
50
|
+
'fixtures/generated_patterns/plaid.svg' => { input: string, patterns: [:plaid] },
|
51
|
+
'fixtures/generated_patterns/plus_signs.svg' => { input: string, patterns: [:plus_signs] },
|
52
|
+
'fixtures/generated_patterns/sine_waves.svg' => { input: string, patterns: [:sine_waves] },
|
53
|
+
'fixtures/generated_patterns/squares.svg' => { input: string, patterns: [:squares] },
|
54
|
+
'fixtures/generated_patterns/tessellation.svg' => { input: string, patterns: [:tessellation] },
|
55
|
+
'fixtures/generated_patterns/triangles.svg' => { input: string, patterns: [:triangles] },
|
56
|
+
'fixtures/generated_patterns/xes.svg' => { input: string, patterns: [:xes] },
|
57
|
+
'fixtures/generated_patterns/diamonds_with_color.svg' => { input: string, patterns: [:diamonds], color: '#00ff00' },
|
58
|
+
'fixtures/generated_patterns/diamonds_with_base_color.svg' => { input: string, patterns: [:diamonds], base_color: '#00ff00' }
|
59
|
+
}
|
60
|
+
)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
desc 'Bootstrap project'
|
65
|
+
task bootstrap: %w(bootstrap:bundler)
|
66
|
+
|
67
|
+
desc 'Bootstrap project for ci'
|
68
|
+
task 'bootstrap:ci' do
|
69
|
+
Rake::Task['bootstrap'].invoke
|
70
|
+
end
|
71
|
+
|
72
|
+
namespace :bootstrap do
|
73
|
+
desc 'Bootstrap bundler'
|
74
|
+
task :bundler do |t|
|
75
|
+
puts t.comment
|
76
|
+
sh 'gem install bundler'
|
77
|
+
sh 'bundle install'
|
78
|
+
end
|
79
|
+
|
80
|
+
desc 'Require gems'
|
81
|
+
task :gem_requirements do |t|
|
82
|
+
puts t.comment
|
83
|
+
require 'bundler'
|
84
|
+
Bundler.require
|
85
|
+
end
|
86
|
+
end
|