Skip to content

Commit 8db55ee

Browse files
author
Jason Long
committed
Merge pull request #39 from maxmeyer/feature/test_suite
Add basic test suite
2 parents c43e883 + dd230af commit 8db55ee

17 files changed

+263
-25
lines changed

.rspec

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
--format Fuubar
2+
--order rand
3+
--color

.rubocop.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
AllCops:
2+
Exclude:
3+
- 'tmp/**/*'
4+
5+
# Configuration parameters: MaxSlashes.
6+
Style/RegexpLiteral:
7+
MaxSlashes: 0
8+
9+
Metrics/AbcSize:
10+
Enabled: false
11+
12+
Lint/Debugger:
13+
Enabled: false

Gemfile

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,23 @@ source 'https://rubygems.org'
22

33
# Specify your gem's dependencies in geopatterns.gemspec
44
gemspec
5+
6+
group :development, :test do
7+
gem 'rspec'
8+
gem 'aruba'
9+
gem 'rake'
10+
gem 'rubocop'
11+
gem 'simplecov'
12+
gem 'fuubar'
13+
gem 'inch'
14+
gem 'activesupport'
15+
gem 'pry'
16+
17+
if RUBY_VERSION >= "2"
18+
gem 'byebug'
19+
gem 'pry-byebug'
20+
else
21+
gem 'debugger'
22+
gem 'pry-debugger'
23+
end
24+
end

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,25 +28,25 @@ Or install it yourself as:
2828
Make a new pattern:
2929

3030
```ruby
31-
pattern = GeoPattern.generate("Mastering Markdown")
31+
pattern = GeoPattern.generate('Mastering Markdown')
3232
```
3333

3434
To specify a base background color (with a hue and saturation that adjusts depending on the string):
3535

3636
```ruby
37-
pattern = GeoPattern.generate("Mastering Markdown", {:base_color => "#fc0"})
37+
pattern = GeoPattern.generate('Mastering Markdown', base_color: '#fc0')
3838
```
3939

4040
To use a specific background color (w/o any hue or saturation adjustments):
4141

4242
```ruby
43-
pattern = GeoPattern.generate("Mastering Markdown", {:color => "#fc0"})
43+
pattern = GeoPattern.generate('Mastering Markdown', color: '#fc0')
4444
```
4545

4646
To use a specific [pattern generator](#available-patterns):
4747

4848
```ruby
49-
pattern = GeoPattern.generate("Mastering Markdown", {:generator => GeoPattern::SineWavePattern})
49+
pattern = GeoPattern.generate('Mastering Markdown', generator: GeoPattern::SineWavePattern)
5050
```
5151

5252
Get the SVG string:

Rakefile

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,23 @@
1-
require "bundler/gem_tasks"
1+
require 'rubocop/rake_task'
2+
require 'inch/rake'
3+
require 'rspec/core/rake_task'
4+
5+
desc 'Default task running Tests'
6+
task default: :test
7+
8+
desc 'Run test suite'
9+
task test: 'test:rspec'
10+
# task test: %w(test:rspec test:rubocop)
11+
12+
namespace :test do
13+
14+
RSpec::Core::RakeTask.new(:rspec)
15+
16+
RuboCop::RakeTask.new
17+
18+
Inch::Rake::Suggest.new
19+
end
20+
21+
namespace :gem do
22+
require 'bundler/gem_tasks'
23+
end

geo_pattern.gemspec

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,22 +4,20 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
44
require 'geo_pattern/version'
55

66
Gem::Specification.new do |spec|
7-
spec.name = "geo_pattern"
7+
spec.name = 'geo_pattern'
88
spec.version = GeoPattern::VERSION
9-
spec.authors = ["Jason Long"]
10-
spec.email = ["[email protected]"]
9+
spec.authors = ['Jason Long']
10+
spec.email = ['[email protected]']
1111
spec.summary = %q{Generate SVG beautiful patterns}
1212
spec.description = %q{Generate SVG beautiful patterns}
13-
spec.homepage = "https://github.com/jasonlong/geo_pattern"
14-
spec.license = "MIT"
13+
spec.homepage = 'https://github.com/jasonlong/geo_pattern'
14+
spec.license = 'MIT'
1515

1616
spec.files = `git ls-files -z`.split("\x0")
1717
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
1818
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19-
spec.require_paths = ["lib"]
19+
spec.require_paths = ['lib']
2020

21-
spec.add_dependency "color", "~> 1.5"
22-
23-
spec.add_development_dependency "bundler", "~> 1.5"
24-
spec.add_development_dependency "rake"
21+
spec.add_dependency 'color', '~> 1.5'
22+
spec.add_development_dependency 'bundler', '~> 1.5'
2523
end

lib/geo_pattern.rb

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,30 @@
1-
require "geo_pattern/version"
2-
require "geo_pattern/svg"
3-
require 'geo_pattern/pattern/pattern_helpers'
4-
require "geo_pattern/pattern_generator"
1+
require 'base64'
2+
require 'digest/sha1'
3+
require 'color'
4+
5+
require 'geo_pattern/version'
6+
require 'geo_pattern/svg'
7+
require 'geo_pattern/pattern_helpers'
8+
9+
require 'geo_pattern/pattern/base_pattern'
10+
require 'geo_pattern/pattern/chevron_pattern'
11+
require 'geo_pattern/pattern/concentric_circles_pattern'
12+
require 'geo_pattern/pattern/diamond_pattern'
13+
require 'geo_pattern/pattern/hexagon_pattern'
14+
require 'geo_pattern/pattern/mosaic_squares_pattern'
15+
require 'geo_pattern/pattern/nested_squares_pattern'
16+
require 'geo_pattern/pattern/octagon_pattern'
17+
require 'geo_pattern/pattern/overlapping_circles_pattern'
18+
require 'geo_pattern/pattern/overlapping_rings_pattern'
19+
require 'geo_pattern/pattern/plaid_pattern'
20+
require 'geo_pattern/pattern/plus_sign_pattern'
21+
require 'geo_pattern/pattern/sine_wave_pattern'
22+
require 'geo_pattern/pattern/square_pattern'
23+
require 'geo_pattern/pattern/tessellation_pattern'
24+
require 'geo_pattern/pattern/triangle_pattern'
25+
require 'geo_pattern/pattern/xes_pattern'
26+
27+
require 'geo_pattern/pattern_generator'
528

629
module GeoPattern
730
def self.generate(string=Time.now, opts={})

lib/geo_pattern/pattern_generator.rb

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
require 'base64'
2-
require 'digest/sha1'
3-
require 'color'
4-
51
module GeoPattern
62
class PatternGenerator
73
DEFAULTS = {

lib/geo_pattern/pattern/pattern_helpers.rb renamed to lib/geo_pattern/pattern_helpers.rb

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
Dir[File.join(File.dirname(__FILE__), '**', '*.rb')].each { |file| require file }
2-
31
module GeoPattern
42
module PatternHelpers
53
def self.hex_val(hash, index, length)

lib/geo_pattern/svg.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module GeoPattern
22
class SVG
3+
include Comparable
4+
35
def initialize
46
@width = 100
57
@height = 100
@@ -67,5 +69,9 @@ def write_args(args)
6769
def self.as_comment(str)
6870
"<!-- #{str} -->"
6971
end
72+
73+
def <=>(other)
74+
to_s <=> other.to_s
75+
end
7076
end
7177
end

0 commit comments

Comments
 (0)