maze-solver 1.0.3 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 65b2b4ce587ffb4460108ae78224764f56c4b7e0
4
+ data.tar.gz: d3e457a32167c377d2ae1cfcbbbed1a61660c0be
5
+ SHA512:
6
+ metadata.gz: fb92956349f9510af3b887cc6d208a51b427763bda1325a8968d54fd20c65e2ae29613be42cbec309aeabdc16d90323b822e18266e6345a4160c2d86c5b6413f
7
+ data.tar.gz: 82aca0db7cc21e38cc64f503133226e7f01522ddede93bf607ab1af8a519fad4ab63598222778b9807c8c75c70b747aaa528a2251d5899586caa662d6143f620
data/.travis.yml CHANGED
@@ -1,9 +1,8 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 1.9.2
4
- - 1.9.3
5
- - 2.0.0
3
+ - '1.9'
4
+ - '2.0'
5
+ - '2.1'
6
6
  - jruby-19mode
7
7
  - jruby-head
8
- - rbx
9
8
  - ruby-head
data/Gemfile CHANGED
@@ -4,16 +4,11 @@ source 'https://rubygems.org'
4
4
 
5
5
  gemspec
6
6
 
7
- gem 'cane', '~> 2.6.0', require: false
8
- gem 'churn', '~> 0.0.29', require: false
7
+ gem 'cane', require: false
8
+ gem 'churn', require: false
9
9
  gem 'coveralls', require: false
10
- gem 'json', '~> 1.7.7'
10
+ gem 'json'
11
11
  gem 'rake'
12
12
  gem 'rspec'
13
-
14
- platforms :rbx do
15
- gem 'racc'
16
- gem 'iconv'
17
- gem 'rubinius-coverage'
18
- gem 'rubysl', '~> 2.0'
19
- end
13
+ gem 'rspec-its'
14
+ gem 'rubocop'
data/README.md CHANGED
@@ -1,8 +1,13 @@
1
- # Maze Solver [![Build Status](https://travis-ci.org/johnsyweb/ruby_maze_solver.png)](https://travis-ci.org/johnsyweb/ruby_maze_solver) [![Gem Version](https://badge.fury.io/rb/maze-solver.png)](http://badge.fury.io/rb/maze-solver) [![Dependency Status](https://gemnasium.com/johnsyweb/ruby_maze_solver.png)](https://gemnasium.com/johnsyweb/ruby_maze_solver) [![Code Climate](https://codeclimate.com/github/johnsyweb/ruby_maze_solver.png)](https://codeclimate.com/github/johnsyweb/ruby_maze_solver) [![Coverage Status](https://coveralls.io/repos/johnsyweb/ruby_maze_solver/badge.png?branch=master)](https://coveralls.io/r/johnsyweb/ruby_maze_solver?branch=master)
1
+ # Maze Solver
2
+ [![Build Status](https://travis-ci.org/johnsyweb/ruby_maze_solver.png)](https://travis-ci.org/johnsyweb/ruby_maze_solver)
3
+ [![Gem Version](https://badge.fury.io/rb/maze-solver.png)](http://badge.fury.io/rb/maze-solver)
4
+ [![Dependency Status](https://gemnasium.com/johnsyweb/ruby_maze_solver.png)](https://gemnasium.com/johnsyweb/ruby_maze_solver)
5
+ [![Code Climate](https://codeclimate.com/github/johnsyweb/ruby_maze_solver.png)](https://codeclimate.com/github/johnsyweb/ruby_maze_solver)
6
+ [![Coverage Status](https://coveralls.io/repos/johnsyweb/ruby_maze_solver/badge.png?branch=master)](https://coveralls.io/r/johnsyweb/ruby_maze_solver?branch=master)
2
7
 
3
8
  Written as an exercise in applying Ruby, this project solves mazes:
4
9
 
5
- maze-solver etc/demo.maze 18 0 38 0
10
+ maze_solver etc/demo.maze 18 0 38 0
6
11
  About to solve your 40x14 maze from (18, 0) to (38,0).
7
12
  GO!
8
13
  Solved!
@@ -31,7 +36,7 @@ Maze Solver is available from
31
36
 
32
37
  ## Usage
33
38
 
34
- $ maze-solver filename start_x start_y end_x end_y
39
+ $ maze_solver filename start_x start_y end_x end_y
35
40
 
36
41
  ## Contributing
37
42
 
data/Rakefile CHANGED
@@ -2,9 +2,12 @@
2
2
 
3
3
  require 'bundler/gem_tasks'
4
4
  require 'rspec/core/rake_task'
5
+ require 'rubocop/rake_task'
6
+
7
+ RuboCop::RakeTask.new
5
8
 
6
9
  RSpec::Core::RakeTask.new('spec')
7
- task default: [:spec]
10
+ task default: [:spec, :rubocop]
8
11
 
9
12
  begin
10
13
  require 'cane/rake_task'
@@ -7,7 +7,7 @@ require 'maze_solver'
7
7
 
8
8
  def main(filename, start_x, start_y, end_x, end_y)
9
9
  maze = MazeSolver::MazeSolver.new(from_file: filename)
10
- puts "About to solve your #{maze.width}x#{maze.height} maze from " +
10
+ puts "About to solve your #{maze.width}x#{maze.height} maze from " \
11
11
  "(#{start_x}, #{start_y}) to (#{end_x},#{end_y})."
12
12
  puts 'GO!'
13
13
  if maze.solve start_x.to_i, start_y.to_i, end_x.to_i, end_y.to_i
data/lib/maze_solver.rb CHANGED
@@ -24,7 +24,7 @@ module MazeSolver
24
24
  end
25
25
 
26
26
  def width
27
- grid.map { |row| row.length }.max
27
+ grid.map(&:length).max
28
28
  end
29
29
 
30
30
  def visitable?(x, y)
@@ -71,7 +71,7 @@ module MazeSolver
71
71
 
72
72
  def from_file(filename)
73
73
  grid = File.open(filename, 'r').readlines
74
- grid.each { | row | row.strip! }
74
+ grid.each(&:strip!)
75
75
  end
76
76
 
77
77
  private
@@ -1,5 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
+ # Versioning
3
4
  module MazeSolver
4
- VERSION = '1.0.3'
5
+ VERSION = '1.0.4'
5
6
  end
data/maze_solver.gemspec CHANGED
@@ -13,7 +13,8 @@ Gem::Specification.new do |gem|
13
13
  gem.homepage = 'https://github.com/johnsyweb/ruby_maze_solver#readme'
14
14
 
15
15
  gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
16
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
16
+ gem.executables = gem.files.grep(/^bin\//).map { |f| File.basename(f) }
17
+ gem.test_files = gem.files.grep(/^(test|spec|features)\//)
18
18
  gem.require_paths = ['lib']
19
+ gem.licenses = 'MIT'
19
20
  end
@@ -4,7 +4,8 @@ require 'spec_helper'
4
4
 
5
5
  describe MazeSolver::MazeSolver do
6
6
  context 'a simple 8 x 3 maze' do
7
- let(:grid) do <<-GRID
7
+ let(:grid) do
8
+ <<-GRID
8
9
  ********
9
10
 
10
11
  ********
@@ -13,8 +14,8 @@ GRID
13
14
 
14
15
  subject(:maze) { described_class.new(from_grid: grid) }
15
16
 
16
- its(:width) { should eq 8 }
17
- its(:height) { should eq 3 }
17
+ its(:width) { should be 8 }
18
+ its(:height) { should be 3 }
18
19
 
19
20
  it 'is possible to visit an empty space' do
20
21
  expect(maze).to be_visitable(0, 1)
@@ -40,16 +41,16 @@ GRID
40
41
  end
41
42
 
42
43
  it 'is soluble' do
43
- expect(maze.solve(0, 1, 7, 1)).to be_true
44
+ expect(maze.solve(0, 1, 7, 1)).to be true
44
45
  end
45
46
 
46
47
  it 'is soluble backwards' do
47
- expect(maze.solve(7, 1, 0, 1)).to be_true
48
+ expect(maze.solve(7, 1, 0, 1)).to be true
48
49
  end
49
50
 
50
51
  it 'is printable' do
51
- expect(maze.to_s).to eq "********\n" +
52
- " \n" +
52
+ expect(maze.to_s).to eq "********\n" \
53
+ " \n" \
53
54
  "********\n"
54
55
  end
55
56
 
@@ -80,7 +81,7 @@ GRID
80
81
  subject(:maze) { described_class.new(from_grid: grid) }
81
82
 
82
83
  it 'is soluble' do
83
- expect(maze.solve(0, 1, 3, 3)).to be_true
84
+ expect(maze.solve(0, 1, 3, 3)).to be true
84
85
  end
85
86
  end
86
87
 
@@ -101,7 +102,7 @@ GRID
101
102
  subject(:maze) { described_class.new(from_grid: grid) }
102
103
 
103
104
  it 'is insoluble' do
104
- expect(maze.solve(0, 1, 3, 3)).to be_false
105
+ expect(maze.solve(0, 1, 3, 3)).to be false
105
106
  end
106
107
  end
107
108
 
@@ -119,11 +120,16 @@ GRID
119
120
  )
120
121
  end
121
122
 
122
- before { File.stub(:open).with('test.maze', 'r').and_return(test_maze) }
123
+ before do
124
+ expect(File)
125
+ .to receive(:open)
126
+ .with('test.maze', 'r')
127
+ .and_return(test_maze)
128
+ end
123
129
 
124
130
  it 'is creatable' do
125
131
  maze = MazeSolver::MazeSolver.new(from_file: 'test.maze')
126
- expect(maze.solve(18, 0, 12, 6)).to be_true
132
+ expect(maze.solve(18, 0, 12, 6)).to be true
127
133
  end
128
134
  end
129
135
  end
data/spec/spec_helper.rb CHANGED
@@ -3,12 +3,12 @@
3
3
  require 'coveralls'
4
4
  Coveralls.wear!
5
5
 
6
- require 'rubygems'
7
6
  require 'bundler/setup'
8
7
  require 'maze_solver'
8
+ require 'rspec/its'
9
+ require 'rubygems'
9
10
 
10
11
  RSpec.configure do |config|
11
- config.treat_symbols_as_metadata_keys_with_true_values = true
12
12
  config.run_all_when_everything_filtered = true
13
13
  config.order = 'random'
14
14
  end
metadata CHANGED
@@ -1,33 +1,32 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: maze-solver
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
5
- prerelease:
4
+ version: 1.0.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Pete Johns
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-12-23 00:00:00.000000000 Z
11
+ date: 2014-12-01 00:00:00.000000000 Z
13
12
  dependencies: []
14
13
  description: A gem to solve a 2D maze.
15
14
  email:
16
15
  - paj-github@johnsy.com
17
16
  executables:
18
- - maze-solver
17
+ - maze_solver
19
18
  extensions: []
20
19
  extra_rdoc_files: []
21
20
  files:
22
- - .coveralls.yml
23
- - .gitignore
24
- - .rspec
25
- - .travis.yml
21
+ - ".coveralls.yml"
22
+ - ".gitignore"
23
+ - ".rspec"
24
+ - ".travis.yml"
26
25
  - Gemfile
27
26
  - LICENSE.txt
28
27
  - README.md
29
28
  - Rakefile
30
- - bin/maze-solver
29
+ - bin/maze_solver
31
30
  - etc/demo.maze
32
31
  - lib/maze_solver.rb
33
32
  - lib/maze_solver/version.rb
@@ -35,30 +34,29 @@ files:
35
34
  - spec/maze_solver_spec.rb
36
35
  - spec/spec_helper.rb
37
36
  homepage: https://github.com/johnsyweb/ruby_maze_solver#readme
38
- licenses: []
37
+ licenses:
38
+ - MIT
39
+ metadata: {}
39
40
  post_install_message:
40
41
  rdoc_options: []
41
42
  require_paths:
42
43
  - lib
43
44
  required_ruby_version: !ruby/object:Gem::Requirement
44
- none: false
45
45
  requirements:
46
- - - ! '>='
46
+ - - ">="
47
47
  - !ruby/object:Gem::Version
48
48
  version: '0'
49
49
  required_rubygems_version: !ruby/object:Gem::Requirement
50
- none: false
51
50
  requirements:
52
- - - ! '>='
51
+ - - ">="
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
54
  requirements: []
56
55
  rubyforge_project:
57
- rubygems_version: 1.8.23
56
+ rubygems_version: 2.2.2
58
57
  signing_key:
59
- specification_version: 3
58
+ specification_version: 4
60
59
  summary: Written as an exercise
61
60
  test_files:
62
61
  - spec/maze_solver_spec.rb
63
62
  - spec/spec_helper.rb
64
- has_rdoc: