turing 0.0.10 → 0.0.11

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGES CHANGED
@@ -1,4 +1,12 @@
1
1
  ------------------------------------------------------------------------
2
+ r312 | wejn | 2007-06-08 15:08:06 +0200 (Fri, 08 Jun 2007) | 1 line
3
+
4
+ Added samples dir to gems
5
+ ------------------------------------------------------------------------
6
+ r311 | wejn | 2007-06-08 13:02:25 +0200 (Fri, 08 Jun 2007) | 1 line
7
+
8
+ Fixed repo path in Rakefile
9
+ ------------------------------------------------------------------------
2
10
  r309 | wejn | 2007-06-08 12:36:33 +0200 (Fri, 08 Jun 2007) | 4 lines
3
11
 
4
12
  Made compatible with gems 0.9.4.
data/Rakefile CHANGED
@@ -16,7 +16,7 @@ spec = Gem::Specification.new do |s|
16
16
  s.summary = "Another implementation of captcha (http://captcha.net/)"
17
17
  s.description = 'Implementation of captcha (Completely Automated Public Turing-Test to Tell Computers and Humans Apart) that is both easy to use and easy to customize/extend.'
18
18
 
19
- candidates = Dir.glob("{bin,lib,shared,tests}/**/*")
19
+ candidates = Dir.glob("{bin,lib,shared,tests,samples}/**/*")
20
20
  candidates = candidates.delete_if do |item|
21
21
  item.include?(".svn") || item.include?("rdoc")
22
22
  end
@@ -76,7 +76,7 @@ end
76
76
  require 'fileutils'
77
77
 
78
78
  task :release do
79
- rel = "file:///home/wejn/data/SVN-repo/turing/tags/REL-#{Turing::VERSION}"
79
+ rel = "file:///home/wejn/.repos/default/turing/tags/REL-#{Turing::VERSION}"
80
80
  target = "turing-#{Turing::VERSION}"
81
81
  system "svn co #{rel} #{target}"
82
82
  system "svn log #{rel} > #{target}/CHANGES"
@@ -28,7 +28,7 @@
28
28
  # * Turing::Challenge: Captcha challenge generator and verifier.
29
29
  # * Turing::CGIHandler: Simple Turing::Challenge wrapper designed to run as CGI.
30
30
  module Turing # {{{
31
- VERSION = "0.0.10".freeze
31
+ VERSION = "0.0.11".freeze
32
32
  end # }}}
33
33
 
34
34
  require 'turing/image'
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Turing -- Ruby implementation of Captcha
4
+ #
5
+ # Copyright © 2005 Michal Šafránek <wejn@box.cz>
6
+ #
7
+ # This file is part of http://turing.rubyforge.org/
8
+ #
9
+ # See turing.rb in lib/ directory for license terms.
10
+ #
11
+
12
+ # This file demonstrates simple CGI challenge/response
13
+ # authenticator built using CGIHandler.
14
+ #
15
+ # It handles autonomously all requests thrown at it
16
+ # and when user successfully passes turing challenge,
17
+ # he's given cookie and redirected to some location.
18
+ #
19
+ # BTW, it would be fairly easy to convert this to FCGI.
20
+ #
21
+ # Warning: For real world please create more intelligent
22
+ # on_success handler since this one is VERY easy to bypass.
23
+
24
+ require 'rubygems'
25
+ gem 'turing'
26
+ require 'turing'
27
+
28
+ tcgi_config = {
29
+ :imagepath => "/imgs",
30
+ :outdir => '/home/wejn/ap/htdocs/imgs',
31
+ :store => '/home/wejn/ap/data/turing.pstore',
32
+ :redirect_to => 'http://localhost:8000/secured/',
33
+ }
34
+
35
+ tcgi_config[:on_success] = proc do
36
+ out = {}
37
+ out[:headers] = {
38
+ "cookie" => CGI::Cookie.new({
39
+ 'name' => 'turing_passed',
40
+ 'value' => 'true',
41
+ 'path' => '/',
42
+ 'expires' => Time.now + 3600*24,
43
+ }),
44
+ "dude" => "you_rock!",
45
+ }
46
+ out
47
+ end
48
+
49
+ Turing::CGIHandler.new(tcgi_config).handle
@@ -0,0 +1,31 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Turing -- Ruby implementation of Captcha
4
+ #
5
+ # Copyright © 2005 Michal Šafránek <wejn@box.cz>
6
+ #
7
+ # This file is part of http://turing.rubyforge.org/
8
+ #
9
+ # See turing.rb in lib/ directory for license terms.
10
+ #
11
+
12
+ # This file demonstrates how to use Turing::Challenge
13
+ # to create challenge/response interface with Captcha.
14
+
15
+ require 'rubygems'
16
+ gem 'turing'
17
+ require 'turing'
18
+
19
+ tc = Turing::Challenge.new(:store => 'store', :outdir => '.')
20
+ c = tc.generate_challenge
21
+
22
+ system("xv", c.file)
23
+
24
+ puts "Enter solution:"
25
+ r = $stdin.gets.chomp
26
+
27
+ if tc.valid_answer?(c.id, r)
28
+ puts "That's right."
29
+ else
30
+ puts "I don't think so."
31
+ end
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/ruby
2
+ #
3
+ # Turing -- Ruby implementation of Captcha
4
+ #
5
+ # Copyright © 2005 Michal Šafránek <wejn@box.cz>
6
+ #
7
+ # This file is part of http://turing.rubyforge.org/
8
+ #
9
+ # See turing.rb in lib/ directory for license terms.
10
+ #
11
+
12
+ # This file demonstrates how to use Turing::Image
13
+ # to generate image using various methods.
14
+ #
15
+ # And how to create and use your own plugin
16
+
17
+ require 'rubygems'
18
+ gem 'turing'
19
+ require 'turing'
20
+
21
+ # Default options
22
+ ti = Turing::Image.new
23
+
24
+ # Create some images
25
+ 3.times do |i|
26
+ ti.generate(File.join(Dir.getwd, i.to_s + '.jpg'), "randomword")
27
+ end
28
+
29
+ # Now create small images using Spiral plugin
30
+ ti_small = Turing::Image.new(:width => 100, :height => 50, :outdir => '.')
31
+ ti_small.generate('small.jpg', 'small', Turing::Image::Spiral)
32
+
33
+ # Create plugin
34
+ class BlankMethod < Class.new(Turing::Image)
35
+ def initialize(opts = {})
36
+ super(opts)
37
+ end
38
+
39
+ def generate(img, word)
40
+ write_string(img, 'cour.ttf', GD2::Color[0, 0, 0], "someword", 48)
41
+ write_string(img, 'cour.ttf', GD2::Color[255, 0, 0, 50.percent], "blankmethod", 14)
42
+ end
43
+ end
44
+
45
+ # Use it exclusively
46
+ ti.generate(File.join(Dir.getwd, 'blank.jpg'), 'blank', BlankMethod)
47
+
48
+ # vim: set ts=4 sw=4 :
metadata CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: turing
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.10
6
+ version: 0.0.11
7
7
  date: 2007-06-08 00:00:00 +02:00
8
8
  summary: Another implementation of captcha (http://captcha.net/)
9
9
  require_paths:
@@ -63,6 +63,9 @@ files:
63
63
  - shared/templates/challenge.rhtml
64
64
  - shared/templates/success.rhtml
65
65
  - shared/templates/error.rhtml
66
+ - samples/cgi_handler.rb
67
+ - samples/challenge.rb
68
+ - samples/image.rb
66
69
  - README
67
70
  - CHANGES
68
71
  - TODO