word_search 0.5.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (117) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -1
  3. data/.rubocop.yml +8 -5
  4. data/.ruby-version +1 -1
  5. data/.travis.yml +3 -2
  6. data/Gemfile +2 -1
  7. data/README.md +26 -4
  8. data/Rakefile +26 -12
  9. data/bin/console +5 -4
  10. data/bin/test +19 -0
  11. data/docs/Gemfile +8 -7
  12. data/docs/Gemfile.lock +31 -31
  13. data/docs/Rakefile +2 -1
  14. data/docs/config.rb +4 -3
  15. data/docs/source/images/logo.png +0 -0
  16. data/docs/source/images/search.png +0 -0
  17. data/docs/source/index.html.haml +49 -7
  18. data/docs/source/layouts/layout.html.haml +7 -9
  19. data/docs/source/stylesheets/site.css.sass +83 -0
  20. data/docs/vendor/cache/activesupport-5.0.1.gem +0 -0
  21. data/docs/vendor/cache/addressable-2.5.0.gem +0 -0
  22. data/docs/vendor/cache/backports-3.6.8.gem +0 -0
  23. data/docs/vendor/cache/coffee-script-2.4.1.gem +0 -0
  24. data/docs/vendor/cache/coffee-script-source-1.12.2.gem +0 -0
  25. data/docs/vendor/cache/compass-import-once-1.0.5.gem +0 -0
  26. data/docs/vendor/cache/concurrent-ruby-1.0.4.gem +0 -0
  27. data/docs/vendor/cache/contracts-0.13.0.gem +0 -0
  28. data/docs/vendor/cache/dotenv-2.1.1.gem +0 -0
  29. data/docs/vendor/cache/em-websocket-0.5.1.gem +0 -0
  30. data/docs/vendor/cache/erubis-2.7.0.gem +0 -0
  31. data/docs/vendor/cache/eventmachine-1.2.1.gem +0 -0
  32. data/docs/vendor/cache/execjs-2.7.0.gem +0 -0
  33. data/docs/vendor/cache/fast_blank-1.0.0.gem +0 -0
  34. data/docs/vendor/cache/fastimage-2.0.1.gem +0 -0
  35. data/docs/vendor/cache/ffi-1.9.14.gem +0 -0
  36. data/docs/vendor/cache/haml-4.0.7.gem +0 -0
  37. data/docs/vendor/cache/hamster-3.0.0.gem +0 -0
  38. data/docs/vendor/cache/hashie-3.4.6.gem +0 -0
  39. data/docs/vendor/cache/http_parser.rb-0.6.0.gem +0 -0
  40. data/docs/vendor/cache/i18n-0.7.0.gem +0 -0
  41. data/docs/vendor/cache/kramdown-1.13.2.gem +0 -0
  42. data/docs/vendor/cache/listen-3.0.8.gem +0 -0
  43. data/docs/vendor/cache/memoist-0.15.0.gem +0 -0
  44. data/docs/vendor/cache/middleman-4.2.0.gem +0 -0
  45. data/docs/vendor/cache/middleman-cli-4.2.0.gem +0 -0
  46. data/docs/vendor/cache/middleman-core-4.2.0.gem +0 -0
  47. data/docs/vendor/cache/middleman-gh-pages-0.3.1.gem +0 -0
  48. data/docs/vendor/cache/middleman-livereload-3.4.6.gem +0 -0
  49. data/docs/vendor/cache/minitest-5.10.1.gem +0 -0
  50. data/docs/vendor/cache/padrino-helpers-0.13.3.3.gem +0 -0
  51. data/docs/vendor/cache/padrino-support-0.13.3.3.gem +0 -0
  52. data/docs/vendor/cache/parallel-1.10.0.gem +0 -0
  53. data/docs/vendor/cache/public_suffix-2.0.5.gem +0 -0
  54. data/docs/vendor/cache/rack-2.0.1.gem +0 -0
  55. data/docs/vendor/cache/rack-livereload-0.3.16.gem +0 -0
  56. data/docs/vendor/cache/rake-12.0.0.gem +0 -0
  57. data/docs/vendor/cache/rb-fsevent-0.9.8.gem +0 -0
  58. data/docs/vendor/cache/rb-inotify-0.9.7.gem +0 -0
  59. data/docs/vendor/cache/sass-3.4.23.gem +0 -0
  60. data/docs/vendor/cache/servolux-0.12.0.gem +0 -0
  61. data/docs/vendor/cache/thor-0.19.4.gem +0 -0
  62. data/docs/vendor/cache/thread_safe-0.3.5.gem +0 -0
  63. data/docs/vendor/cache/tilt-2.0.5.gem +0 -0
  64. data/docs/vendor/cache/tzinfo-1.2.2.gem +0 -0
  65. data/docs/vendor/cache/uglifier-3.0.4.gem +0 -0
  66. data/lib/word_search.rb +25 -24
  67. data/lib/word_search/catalog.rb +1 -0
  68. data/lib/word_search/generator.rb +9 -3
  69. data/lib/word_search/generator/base.rb +50 -2
  70. data/lib/word_search/plane.rb +1 -0
  71. data/lib/word_search/plane/base.rb +25 -2
  72. data/lib/word_search/position_word/base.rb +32 -3
  73. data/lib/word_search/solver.rb +113 -3
  74. data/lib/word_search/three_dimensional/direction.rb +1 -0
  75. data/lib/word_search/three_dimensional/generator.rb +1 -18
  76. data/lib/word_search/three_dimensional/plane.rb +8 -1
  77. data/lib/word_search/three_dimensional/point.rb +5 -0
  78. data/lib/word_search/three_dimensional/position_word.rb +7 -0
  79. data/lib/word_search/two_dimensional/direction.rb +1 -0
  80. data/lib/word_search/two_dimensional/generator.rb +1 -18
  81. data/lib/word_search/two_dimensional/plane.rb +6 -1
  82. data/lib/word_search/two_dimensional/point.rb +5 -0
  83. data/lib/word_search/two_dimensional/position_word.rb +7 -0
  84. data/lib/word_search/version.rb +2 -1
  85. data/lib/word_search/word_bank.rb +4 -3
  86. data/vendor/cache/activemodel-5.0.1.gem +0 -0
  87. data/vendor/cache/activesupport-5.0.1.gem +0 -0
  88. data/vendor/cache/codeclimate-test-reporter-1.0.4.gem +0 -0
  89. data/vendor/cache/concurrent-ruby-1.0.4.gem +0 -0
  90. data/vendor/cache/metaclass-0.0.4.gem +0 -0
  91. data/vendor/cache/minitest-5.10.1.gem +0 -0
  92. data/vendor/cache/mocha-1.2.1.gem +0 -0
  93. data/vendor/cache/parser-2.3.3.1.gem +0 -0
  94. data/vendor/cache/rainbow-2.2.1.gem +0 -0
  95. data/vendor/cache/rake-12.0.0.gem +0 -0
  96. data/vendor/cache/rspec-core-3.5.4.gem +0 -0
  97. data/vendor/cache/rubocop-0.46.0.gem +0 -0
  98. data/vendor/cache/ruby-enum-0.6.0.gem +0 -0
  99. data/vendor/cache/unicode-display_width-1.1.2.gem +0 -0
  100. data/word_search.gemspec +23 -21
  101. metadata +91 -29
  102. data/docs/source/images/github-light.png +0 -0
  103. data/docs/source/images/github.png +0 -0
  104. data/docs/source/stylesheets/site.css.scss +0 -71
  105. data/lib/solution.rb +0 -67
  106. data/vendor/cache/activemodel-5.0.0.1.gem +0 -0
  107. data/vendor/cache/activesupport-5.0.0.1.gem +0 -0
  108. data/vendor/cache/codeclimate-test-reporter-0.6.0.gem +0 -0
  109. data/vendor/cache/concurrent-ruby-1.0.2.gem +0 -0
  110. data/vendor/cache/minitest-5.9.0.gem +0 -0
  111. data/vendor/cache/parser-2.3.1.2.gem +0 -0
  112. data/vendor/cache/rainbow-2.1.0.gem +0 -0
  113. data/vendor/cache/rake-10.5.0.gem +0 -0
  114. data/vendor/cache/rspec-core-3.5.2.gem +0 -0
  115. data/vendor/cache/rubocop-0.42.0.gem +0 -0
  116. data/vendor/cache/ruby-enum-0.5.0.gem +0 -0
  117. data/vendor/cache/unicode-display_width-1.1.0.gem +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 77f4e1d1505ddcae37cdfacdd41906a8315f3da9
4
- data.tar.gz: 23b157e475059758bd1ca08eff8faee31ced31b6
3
+ metadata.gz: 1ab4c207882de6d2a510e22e640abbdf722623d6
4
+ data.tar.gz: 8ef6b1e8219ee91afd6b5e8539292fceafd5f3db
5
5
  SHA512:
6
- metadata.gz: 7189d7726bcc25a675e29ceef9b6c9ae9746948d368c7cb6ed3c84d45099e09540b53af967b9fa4ab3b123099a73eb22427130fc5a8f8fa97c2b7776cac1bd6e
7
- data.tar.gz: cd104a514e60a429979ad0b5e6a32b0330bab253c664de2cdd14515716c101f3026e0387441e0c3ecf517ef3f54013ef9f5679e4d02481ee922024daeced4dd3
6
+ metadata.gz: abbf179e39919da87e853702dad9b42c632ed38ed84af4da3247d21d5881f54255a334e08fcb27280b0f227ee28d60a3075f4620a8e62b40015d666bf60489aa
7
+ data.tar.gz: db8fad799ccb6361baf556f52282e1d777d3ddff12aa356dfb89fc577fac83b4d2c51f5678536b406a5fbc2c1dfdf4bd3279ac6974e61cd19a99acd4848687aa
data/.gitignore CHANGED
@@ -1,4 +1,4 @@
1
- /crossword
1
+ /word_search
2
2
  /words.csv
3
3
  /.bundle/
4
4
  /.yardoc
@@ -12,3 +12,4 @@
12
12
  /*.gem
13
13
  /docs/.sass-cache
14
14
  /docs/build
15
+ solution_*
data/.rubocop.yml CHANGED
@@ -1043,6 +1043,7 @@ Style/SpecialGlobalVars:
1043
1043
  Style/StringLiterals:
1044
1044
  Description: 'Checks if uses of quotes match the configured preference.'
1045
1045
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#consistent-string-literals'
1046
+ EnforcedStyle: double_quotes
1046
1047
  Enabled: true
1047
1048
 
1048
1049
  Style/StringLiteralsInInterpolation:
@@ -1146,21 +1147,23 @@ Style/WhileUntilModifier:
1146
1147
  Enabled: true
1147
1148
 
1148
1149
  Style/MutableConstant:
1149
- Enabled: false
1150
+ Enabled: true
1150
1151
 
1151
1152
  Style/FrozenStringLiteralComment:
1152
- Enabled: false
1153
+ Enabled: true
1153
1154
 
1154
1155
  Style/WordArray:
1155
1156
  Description: 'Use %w or %W for arrays of words.'
1156
1157
  StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#percent-w'
1157
1158
  Enabled: true
1159
+
1160
+ Style/EmptyMethod:
1161
+ Enabled: false
1162
+
1158
1163
  AllCops:
1159
1164
  Exclude:
1160
1165
  - 'vendor/**/*'
1161
- - 'config/**/*'
1162
1166
  - 'db/**/*'
1163
- - 'bin/*'
1164
- - 'Gemfile'
1165
1167
  - 'Gemfile.lock'
1166
1168
  - 'Rakefile'
1169
+ TargetRubyVersion: 2.3
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.0
1
+ 2.3.3
data/.travis.yml CHANGED
@@ -1,5 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.3.0
3
+ - 2.3.3
4
4
  script:
5
- - rake
5
+ - bin/test
6
+ - codeclimate-test-reporter
data/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
2
3
 
3
4
  gemspec
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  ## Install
8
8
  Add WordSearch to your `Gemfile` and `bundle install`:
9
9
 
10
- `gem 'word_search'`
10
+ `gem "word_search"`
11
11
 
12
12
  Alternatively, you can install the gem from [rubygems.org](https://rubygems.org/):
13
13
 
@@ -30,10 +30,10 @@ zqloh
30
30
  muudd
31
31
  himyj
32
32
 
33
- # To print to a file(without a filename defaults to 'crossword')
33
+ # To print to a file(without a filename defaults to "word_search")
34
34
  ❯ plane.print(file_name)
35
35
 
36
- # When printing a 3D crossword there are two spaces between z slices. The top slice is z = 0.
36
+ # When printing a 3D word search there are two spaces between z slices. The top slice is z = 0.
37
37
  ❯ plane = WordSearch::Plane.new(3, 3, 2)
38
38
  ❯ plane.add_letters
39
39
  ❯ plane.pto_s
@@ -48,7 +48,7 @@ utg
48
48
 
49
49
  To create plane filled with words supplied by a word bank:
50
50
  ```ruby
51
- ❯ generator = WordSearch::Generator.new('words.csv', 5, 5) # or add a z param to get a 3D word search
51
+ ❯ generator = WordSearch::Generator.new("words.csv", 5, 5) # or add a z param to get a 3D word search
52
52
  ❯ generator.perform
53
53
  ❯ generator.word_bank
54
54
  => ["word", "hello", "bye"]
@@ -59,3 +59,25 @@ ylcon
59
59
  blarz
60
60
  yoydt
61
61
  ```
62
+
63
+ To solve or benchmark your solution script:
64
+ ```ruby
65
+ ❯ solver = WordSearch::Solver.new(
66
+ ❯ "path/to/script", "path/to/word/bank", "path/to/word/search"
67
+ ❯ )
68
+ ❯ solver.perform
69
+ => #<Benchmark::Tms:0x007fd722cc6b58 @cstime=0.07, @cutime=0.44, @label="", @real=0.5259899999946356, @stime=0.0, @total=0.51, @utime=0.0>
70
+ ```
71
+ _NOTE_: Your script should be an executable ruby script that writes the location
72
+ of each letter to a file in the following format and returns the file path:
73
+ ```
74
+ h [4, 9]
75
+ e [5, 9]
76
+ l [6, 9]
77
+ l [7, 9]
78
+ o [8, 9]
79
+ ---
80
+ b [6, 8]
81
+ y [7, 7]
82
+ e [8, 6]
83
+ ```
data/Rakefile CHANGED
@@ -1,14 +1,28 @@
1
- require 'bundler/gem_tasks'
2
- require 'rspec/core/rake_task'
3
- require 'rubocop/rake_task'
4
-
5
- task :console do
6
- require 'pry'
7
- require 'word_searcher'
8
- ARGV.clear
9
- Pry.start
1
+ begin
2
+ require "bundler/setup"
3
+ rescue LoadError
4
+ puts "You must `gem install bundler` and `bundle install` to run rake tasks"
10
5
  end
11
6
 
12
- RuboCop::RakeTask.new
13
- RSpec::Core::RakeTask.new(:spec)
14
- task default: [:spec, :rubocop]
7
+ require "rdoc/task"
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = "rdoc"
11
+ rdoc.title = "Chat"
12
+ rdoc.options << "--line-numbers"
13
+ rdoc.rdoc_files.include("README.md")
14
+ rdoc.rdoc_files.include("lib/**/*.rb")
15
+ end
16
+
17
+ require "bundler/gem_tasks"
18
+
19
+ require "rake/testtask"
20
+
21
+ Rake::TestTask.new(:test) do |t|
22
+ t.libs << "lib"
23
+ t.libs << "test"
24
+ t.pattern = "test/**/*_test.rb"
25
+ t.verbose = false
26
+ end
27
+
28
+ task default: :test
data/bin/console CHANGED
@@ -1,8 +1,9 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require 'bundler/setup'
4
- require 'word_search'
5
- require 'pry'
6
- require 'benchmark'
4
+ require "bundler/setup"
5
+ require "word_search"
6
+ require "pry"
7
+ require "benchmark"
7
8
 
8
9
  Pry.start
data/bin/test ADDED
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+ require "pathname"
4
+ require "fileutils"
5
+ include FileUtils
6
+
7
+ # path to your application root.
8
+ APP_ROOT = Pathname.new File.expand_path("../../", __FILE__)
9
+
10
+ def system!(*args)
11
+ system(*args) || abort("\n== Command #{args} failed ==")
12
+ end
13
+
14
+ chdir APP_ROOT do
15
+ system! "rspec"
16
+
17
+ puts "\nChecking rubocop\n"
18
+ system! "bundle exec rubocop"
19
+ end
data/docs/Gemfile CHANGED
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  # If you do not have OpenSSL installed, change
2
3
  # the following line to use 'http://'
3
- source 'https://rubygems.org'
4
+ source "https://rubygems.org"
4
5
 
5
6
  # For faster file watcher updates on Windows:
6
- gem 'wdm', '~> 0.1.0', platforms: [:mswin, :mingw]
7
+ gem "wdm", "~> 0.1.0", platforms: [:mswin, :mingw]
7
8
 
8
9
  # Windows does not come with time zone data
9
- gem 'tzinfo-data', platforms: [:mswin, :mingw, :jruby]
10
+ gem "tzinfo-data", platforms: [:mswin, :mingw, :jruby]
10
11
 
11
12
  # Middleman Gems
12
- gem 'middleman', '>= 4.0.0'
13
- gem 'middleman-livereload'
14
- gem 'middleman-gh-pages'
13
+ gem "middleman", ">= 4.0.0"
14
+ gem "middleman-gh-pages"
15
+ gem "middleman-livereload"
15
16
 
16
- gem 'haml'
17
+ gem "haml"
data/docs/Gemfile.lock CHANGED
@@ -1,31 +1,31 @@
1
1
  GEM
2
2
  remote: https://rubygems.org/
3
3
  specs:
4
- activesupport (4.2.7.1)
4
+ activesupport (5.0.1)
5
+ concurrent-ruby (~> 1.0, >= 1.0.2)
5
6
  i18n (~> 0.7)
6
- json (~> 1.7, >= 1.7.7)
7
7
  minitest (~> 5.1)
8
- thread_safe (~> 0.3, >= 0.3.4)
9
8
  tzinfo (~> 1.1)
10
- addressable (2.4.0)
9
+ addressable (2.5.0)
10
+ public_suffix (~> 2.0, >= 2.0.2)
11
11
  backports (3.6.8)
12
12
  coffee-script (2.4.1)
13
13
  coffee-script-source
14
14
  execjs
15
- coffee-script-source (1.10.0)
15
+ coffee-script-source (1.12.2)
16
16
  compass-import-once (1.0.5)
17
17
  sass (>= 3.2, < 3.5)
18
- concurrent-ruby (1.0.2)
18
+ concurrent-ruby (1.0.4)
19
19
  contracts (0.13.0)
20
20
  dotenv (2.1.1)
21
21
  em-websocket (0.5.1)
22
22
  eventmachine (>= 0.12.9)
23
23
  http_parser.rb (~> 0.6.0)
24
24
  erubis (2.7.0)
25
- eventmachine (1.2.0.1)
25
+ eventmachine (1.2.1)
26
26
  execjs (2.7.0)
27
27
  fast_blank (1.0.0)
28
- fastimage (2.0.0)
28
+ fastimage (2.0.1)
29
29
  addressable (~> 2)
30
30
  ffi (1.9.14)
31
31
  haml (4.0.7)
@@ -35,24 +35,23 @@ GEM
35
35
  hashie (3.4.6)
36
36
  http_parser.rb (0.6.0)
37
37
  i18n (0.7.0)
38
- json (1.8.3)
39
- kramdown (1.12.0)
38
+ kramdown (1.13.2)
40
39
  listen (3.0.8)
41
40
  rb-fsevent (~> 0.9, >= 0.9.4)
42
41
  rb-inotify (~> 0.9, >= 0.9.7)
43
42
  memoist (0.15.0)
44
- middleman (4.1.10)
43
+ middleman (4.2.0)
45
44
  coffee-script (~> 2.2)
46
45
  compass-import-once (= 1.0.5)
47
46
  haml (>= 4.0.5)
48
47
  kramdown (~> 1.2)
49
- middleman-cli (= 4.1.10)
50
- middleman-core (= 4.1.10)
48
+ middleman-cli (= 4.2.0)
49
+ middleman-core (= 4.2.0)
51
50
  sass (>= 3.4.0, < 4.0)
52
- middleman-cli (4.1.10)
51
+ middleman-cli (4.2.0)
53
52
  thor (>= 0.17.0, < 2.0)
54
- middleman-core (4.1.10)
55
- activesupport (~> 4.2)
53
+ middleman-core (4.2.0)
54
+ activesupport (>= 4.2, < 5.1)
56
55
  addressable (~> 2.3)
57
56
  backports (~> 3.6)
58
57
  bundler (~> 1.1)
@@ -69,10 +68,10 @@ GEM
69
68
  memoist (~> 0.14)
70
69
  padrino-helpers (~> 0.13.0)
71
70
  parallel
72
- rack (>= 1.4.5, < 2.0)
71
+ rack (>= 1.4.5, < 3)
73
72
  sass (>= 3.4)
74
73
  servolux
75
- tilt (~> 1.4.1)
74
+ tilt (~> 2.0)
76
75
  uglifier (~> 3.0)
77
76
  middleman-gh-pages (0.3.1)
78
77
  rake (> 0.9.3)
@@ -80,29 +79,30 @@ GEM
80
79
  em-websocket (~> 0.5.1)
81
80
  middleman-core (>= 3.3)
82
81
  rack-livereload (~> 0.3.15)
83
- minitest (5.9.1)
84
- padrino-helpers (0.13.3.2)
82
+ minitest (5.10.1)
83
+ padrino-helpers (0.13.3.3)
85
84
  i18n (~> 0.6, >= 0.6.7)
86
- padrino-support (= 0.13.3.2)
85
+ padrino-support (= 0.13.3.3)
87
86
  tilt (>= 1.4.1, < 3)
88
- padrino-support (0.13.3.2)
87
+ padrino-support (0.13.3.3)
89
88
  activesupport (>= 3.1)
90
- parallel (1.9.0)
91
- rack (1.6.4)
89
+ parallel (1.10.0)
90
+ public_suffix (2.0.5)
91
+ rack (2.0.1)
92
92
  rack-livereload (0.3.16)
93
93
  rack
94
- rake (11.3.0)
95
- rb-fsevent (0.9.7)
94
+ rake (12.0.0)
95
+ rb-fsevent (0.9.8)
96
96
  rb-inotify (0.9.7)
97
97
  ffi (>= 0.5.0)
98
- sass (3.4.22)
98
+ sass (3.4.23)
99
99
  servolux (0.12.0)
100
- thor (0.19.1)
100
+ thor (0.19.4)
101
101
  thread_safe (0.3.5)
102
- tilt (1.4.1)
102
+ tilt (2.0.5)
103
103
  tzinfo (1.2.2)
104
104
  thread_safe (~> 0.1)
105
- uglifier (3.0.2)
105
+ uglifier (3.0.4)
106
106
  execjs (>= 0.3.0, < 3)
107
107
 
108
108
  PLATFORMS
@@ -117,4 +117,4 @@ DEPENDENCIES
117
117
  wdm (~> 0.1.0)
118
118
 
119
119
  BUNDLED WITH
120
- 1.12.5
120
+ 1.13.7
data/docs/Rakefile CHANGED
@@ -1 +1,2 @@
1
- require 'middleman-gh-pages'
1
+ # frozen_string_literal: true
2
+ require "middleman-gh-pages"
data/docs/config.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ###
2
3
  # Page options, layouts, aliases and proxies
3
4
  ###
@@ -5,9 +6,9 @@
5
6
  # Per-page layout changes:
6
7
  #
7
8
  # With no layout
8
- page '/*.xml', layout: false
9
- page '/*.json', layout: false
10
- page '/*.txt', layout: false
9
+ page "/*.xml", layout: false
10
+ page "/*.json", layout: false
11
+ page "/*.txt", layout: false
11
12
 
12
13
  # With alternative layout
13
14
  # page "/path/to/file.html", layout: :otherlayout
Binary file
Binary file
@@ -5,7 +5,7 @@ title: Word Search Gem
5
5
  .fork
6
6
  .block
7
7
  = link_to "https://github.com/npezza93/word_search" do
8
- .github-icon
8
+ %i.fa.fa-github
9
9
  Fork on GitHub
10
10
 
11
11
  .container
@@ -22,9 +22,9 @@ title: Word Search Gem
22
22
  Add word_search to your Gemfile and bundle install:
23
23
  %pre
24
24
  %code
25
- gem 'word_search'
26
-
27
- Alternatively, you can install the gem from rubygems.org and require it in your script:
25
+ gem "word_search"
26
+ %p
27
+ Alternatively, you can install the gem from rubygems.org and require it in your script:
28
28
  %pre
29
29
  %code
30
30
  gem install word_search
@@ -39,10 +39,10 @@ title: Word Search Gem
39
39
  %pre
40
40
  %code
41
41
  :preserve
42
- require 'word_search'
42
+ require "word_search"
43
43
 
44
44
  # You can also add another param, z, to get a 3D word search
45
- generator = WordSearch::Generator.new('words.csv', 5, 5)
45
+ generator = WordSearch::Generator.new("words.csv", 5, 5)
46
46
  # Calling #perform will place the words and fill the empty spots
47
47
  # with random letters
48
48
  generator.perform
@@ -60,7 +60,7 @@ title: Word Search Gem
60
60
  %pre
61
61
  %code
62
62
  :preserve
63
- require 'word_search'
63
+ require "word_search"
64
64
 
65
65
  plane = WordSearch::Plane.make_from_file("word_search")
66
66
  # To find the max of x or y
@@ -84,3 +84,45 @@ title: Word Search Gem
84
84
  zqloh
85
85
  muudd
86
86
  himyj
87
+
88
+ %br
89
+ %br
90
+
91
+ %h3
92
+ Solver
93
+ %p
94
+ You can benchmark and check if your solution works by using the Solver class.
95
+ Your script should be an executable ruby script that writes the location
96
+ of each letter to a file in the following format and returns the file path.
97
+ %pre
98
+ :preserve
99
+ h [4, 9]
100
+ e [5, 9]
101
+ l [6, 9]
102
+ l [7, 9]
103
+ o [8, 9]
104
+ ---
105
+ b [6, 8]
106
+ y [7, 7]
107
+ e [8, 6]
108
+ %pre
109
+ %code
110
+ :preserve
111
+ require "word_search"
112
+
113
+ plane = WordSearch::Solver.new(
114
+ "path/to/script", "path/to/word/bank", "path/to/word/search"
115
+ )
116
+ solver.perform
117
+ => Benchmark::Tms:0x007fd722cc6b58 @cstime=0.07,
118
+ @cutime=0.44, @label="", @real=0.5259899999946356,
119
+ @stime=0.0, @total=0.51, @utime=0.0
120
+ # If your script fails or is incorrect a message will appear instead
121
+ # of the benchmark.
122
+
123
+ #np_logo_container
124
+ = link_to "https://github.com/npezza93", class: "social-container" do
125
+ %i.fa.fa-github
126
+ = image_tag "logo.png", id: "np_logo"
127
+ = link_to "https://www.linkedin.com/in/nick-pezza-02166668", class: "social-container" do
128
+ %i.fa.fa-linkedin