sudokus 1.4.1

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.
data/.gitignore ADDED
@@ -0,0 +1,5 @@
1
+ *.gem
2
+ .bundle
3
+ Gemfile.lock
4
+ pkg/*
5
+ *.komodoproject
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in sudokus.gemspec
4
+ gemspec
5
+ sudokusolver
data/README.rdoc ADDED
@@ -0,0 +1,23 @@
1
+ = Sudokus
2
+
3
+ 解数独。依赖自Martin-Louis Bright的sudokusolver库。
4
+
5
+ sudoku solver. depends sudokusolver by Martin-Louis Bright.
6
+
7
+ == Playing
8
+
9
+ gem install sudokus
10
+
11
+ sudokus ..9748...7.........2.1.9.....7...24..64.1.59..98...3.....8.3.2.........6...2759..
12
+
13
+ == Patch NoMethodError in sudokusolver
14
+
15
+ sudokus patch /usr/lib/ruby/gems/1.9.1/gems/sudokusolver-1.4/lib/sudokusolver.rb
16
+
17
+ == Find the library file of sudokusolver
18
+
19
+ sudokus which
20
+
21
+ == Authors
22
+
23
+ * {Takafan}[http://hululuu.com]
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/sudokus ADDED
@@ -0,0 +1,64 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ lib_path = File.expand_path('../../lib', __FILE__)
4
+ $:.unshift(lib_path)
5
+ require 'sudokus'
6
+ require 'sudokusolver'
7
+
8
+ begin
9
+ if ARGV[0] and !['-h','--help'].include? ARGV[0]
10
+ case ARGV[0]
11
+ when '--version', '-v' then raise Sudokus::VERSION
12
+ when 'which' then system('gem which sudokusolver')
13
+ when 'patch' then
14
+ if ARGV[1] and File.exists?(ARGV[1])
15
+ File.open(ARGV[1], 'r') do |f|
16
+ buff = f.read
17
+ buff.gsub!('cols.each { |c| @unitlist.push(cross(rows, c)) }', '@cols.each { |c| @unitlist.push(cross(@rows, [c])) }')
18
+ buff.gsub!('rows.each { |r| @unitlist.push(cross(r, cols)) }', '@rows.each { |r| @unitlist.push(cross([r], @cols)) }')
19
+ File.open(ARGV[1], 'w') do |f2|
20
+ f2.write(buff)
21
+ end
22
+ end
23
+ puts 'patched.'
24
+ else
25
+ raise %q{ unknown path of sudokusolver.rb
26
+ command `sudokus patch <path>` to patch
27
+ command `sudokus which` to get the sudokusolver path and paste in <path>. }
28
+ end
29
+ else
30
+ s = SudokuSolver.new
31
+ s.print_grid(s.search(s.parse_grid(ARGV[0])))
32
+ end
33
+ else
34
+ raise %q{
35
+ Usage:
36
+ sudokus -v/--version
37
+ sudokus -h/--help
38
+
39
+ sudokus NUMBER_STRING #Solve NUMBER_STRING
40
+
41
+ [example]
42
+ sudokus ..9748...7.........2.1.9.....7...24..64.1.59..98...3.....8.3.2.........6...2759..
43
+
44
+
45
+ sudokus patch SUDOKUSOLVER_PATH #Patch (NoMethodError) in sudokusolver
46
+
47
+ [example]
48
+ sudokus patch /usr/lib/ruby/gems/1.9.1/gems/sudokusolver-1.4/lib/sudokusolver.rb
49
+
50
+
51
+ sudokus which #Find the library file of sudokusolver
52
+
53
+ }
54
+ end
55
+ rescue NoMethodError => e
56
+ print "#{e.class}: "
57
+ puts "#{e.message}"
58
+ puts 'command `sudokus patch SUDOKUSOLVER_PATH` to fix it.'
59
+ exit 1
60
+ rescue Exception => e
61
+ print "#{e.class}: " unless e.class == RuntimeError
62
+ puts "#{e.message}"
63
+ exit 1
64
+ end
data/lib/sudokus.rb ADDED
@@ -0,0 +1 @@
1
+ require "sudokus/version"
@@ -0,0 +1,3 @@
1
+ module Sudokus
2
+ VERSION = "1.4.1"
3
+ end
data/sudokus.gemspec ADDED
@@ -0,0 +1,24 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "sudokus/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "sudokus"
7
+ s.version = Sudokus::VERSION
8
+ s.authors = ["takafan"]
9
+ s.email = ["takafan@163.com"]
10
+ s.homepage = "http://github.com/takafan/sudokus"
11
+ s.summary = %q{Sudokus}
12
+ s.description = %q{sudoku solver. depends sudokusolver by Martin-Louis Bright.}
13
+
14
+ s.rubyforge_project = "sudokus"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ # specify any dependencies here; for example:
22
+ # s.add_development_dependency "rspec"
23
+ s.add_runtime_dependency "sudokusolver", "<= 1.4"
24
+ end
metadata ADDED
@@ -0,0 +1,65 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sudokus
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - takafan
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-09-08 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: sudokusolver
16
+ requirement: &9392724 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - <=
20
+ - !ruby/object:Gem::Version
21
+ version: '1.4'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *9392724
25
+ description: sudoku solver. depends sudokusolver by Martin-Louis Bright.
26
+ email:
27
+ - takafan@163.com
28
+ executables:
29
+ - sudokus
30
+ extensions: []
31
+ extra_rdoc_files: []
32
+ files:
33
+ - .gitignore
34
+ - Gemfile
35
+ - README.rdoc
36
+ - Rakefile
37
+ - bin/sudokus
38
+ - lib/sudokus.rb
39
+ - lib/sudokus/version.rb
40
+ - sudokus.gemspec
41
+ homepage: http://github.com/takafan/sudokus
42
+ licenses: []
43
+ post_install_message:
44
+ rdoc_options: []
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ required_rubygems_version: !ruby/object:Gem::Requirement
54
+ none: false
55
+ requirements:
56
+ - - ! '>='
57
+ - !ruby/object:Gem::Version
58
+ version: '0'
59
+ requirements: []
60
+ rubyforge_project: sudokus
61
+ rubygems_version: 1.8.10
62
+ signing_key:
63
+ specification_version: 3
64
+ summary: Sudokus
65
+ test_files: []