maze-solver 1.0.3 → 1.0.4

Sign up to get free protection for your applications and to get access to all the features.
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: