rack-auth-ip 0.0.2 → 0.0.3

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.
Files changed (22) hide show
  1. data/ChangeLog +39 -2
  2. data/README +4 -4
  3. data/Rakefile +1 -1
  4. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-block_rb.html +1 -1
  5. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-callbacks_rb.html +1 -1
  6. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-change_rb.html +1 -1
  7. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs-hunk_rb.html +1 -1
  8. data/doc/output/coverage/-Library-Ruby-Gems-gems-diff-lcs-1_1_2-lib-diff-lcs_rb.html +1 -1
  9. data/doc/output/coverage/-Library-Ruby-Gems-gems-rcov-0_8_1_2_0-lib-rcov_rb.html +1 -1
  10. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-drb_rb.html +1 -1
  11. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-eq_rb.html +1 -1
  12. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-invokemethod_rb.html +1 -1
  13. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-ipaddr_rb.html +1 -1
  14. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-pp_rb.html +1 -1
  15. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-prettyprint_rb.html +1 -1
  16. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-timeout_rb.html +1 -1
  17. data/doc/output/coverage/index.html +18 -45
  18. data/doc/output/coverage/lib-rack-auth-ip_rb.html +59 -47
  19. data/lib/rack/auth/ip.rb +14 -2
  20. data/spec/rack-auth-ip_spec.rb +3 -8
  21. metadata +2 -3
  22. data/doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-forwardable_rb.html +0 -828
data/ChangeLog CHANGED
@@ -1,4 +1,41 @@
1
- == 0.0.1 / 2008-05-24
1
+ commit dfd279f9ab5f5ec3c028765350dd0b7dcc986338
2
+ Author: Keiji, Yoshimi <walf443@gmail.com>
3
+ Date: Sat Jun 28 12:53:47 2008 +0900
2
4
 
3
- * initial release
5
+ release 0.0.3
4
6
 
7
+ commit b6a7d890b8ac9dd9edccc669b34a9f860943fcf5
8
+ Author: Keiji, Yoshimi <walf443@gmail.com>
9
+ Date: Sat Jun 28 12:49:59 2008 +0900
10
+
11
+ fixed bug: using block was not worked.
12
+
13
+ commit b5f1366e9f39aa0a37eb2996e8d35e58df05c920
14
+ Author: Keiji, Yoshimi <walf443@gmail.com>
15
+ Date: Tue May 27 01:49:33 2008 +0900
16
+
17
+ Tweaked README.
18
+
19
+ commit ddc24760138294f349003f683dc972f9a1f74539
20
+ Author: Keiji, Yoshimi <walf443@gmail dot com>
21
+ Date: Sat May 24 15:23:06 2008 +0900
22
+
23
+ release 0.0.2
24
+
25
+ commit 0fd1c34d64ff9df4b34da2c5c29c8ec2dc596b6c
26
+ Author: Keiji, Yoshimi <walf443@gmail dot com>
27
+ Date: Sat May 24 15:21:04 2008 +0900
28
+
29
+ added content-type header.
30
+
31
+ commit 7b8880ca5d3079aa3d87fafa0ab5316bc58f7a2b
32
+ Author: Keiji, Yoshimi <walf443@gmail dot com>
33
+ Date: Sat May 24 14:17:36 2008 +0900
34
+
35
+ fixed dependency
36
+
37
+ commit bdd84d2ef7eb015397d0d663399be6c4186730fc
38
+ Author: Keiji, Yoshimi <walf443@gmail dot com>
39
+ Date: Sat May 24 14:05:50 2008 +0900
40
+
41
+ initial commit
data/README CHANGED
@@ -7,13 +7,13 @@ middleware to restrict ip address
7
7
  in your_app.ru
8
8
  require 'rack/auth/ip'
9
9
  # allow access only local network
10
- use Rack::Auth::IP, (%w( 192.168.0.0/24 ))
10
+ use Rack::Auth::IP, %w( 192.168.0.0/24 )
11
11
 
12
12
  # you can use block
13
13
  # ip is IPAddr instance.
14
- use Rack::Auth::IP {|ip|
14
+ use Rack::Auth::IP do |ip|
15
15
  Your::Model::IP.count({ :ip => ip.to_s }) != 0
16
- }
16
+ end
17
17
 
18
18
  == Description
19
19
  middleware to restrict ip address
@@ -26,7 +26,7 @@ middleware to restrict ip address
26
26
 
27
27
  === Gem Installation
28
28
 
29
- gem install rackauthip
29
+ gem install rack-auth-ip
30
30
 
31
31
  == Features/Problems
32
32
 
data/Rakefile CHANGED
@@ -17,7 +17,7 @@ DESCRIPTION = <<-"END_DESCRIPTION"
17
17
  rack's moddleware to restrict ip address
18
18
  END_DESCRIPTION
19
19
  BIN_FILES = %w( )
20
- VERS = "0.0.2"
20
+ VERS = "0.0.3"
21
21
 
22
22
  EXTRA_RDOC_FILES = []
23
23
  HECKLE_ROOT_MODULES = ["Rack::Auth::Ip"]
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:16 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:54 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:16 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:54 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:16 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:54 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:16 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:55 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:16 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:54 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:16 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:55 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:18 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:57 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:18 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:57 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:18 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:57 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:18 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:57 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:18 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:57 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:19 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:58 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:19 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:58 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -148,7 +148,7 @@ table.report tr.dark {
148
148
  </script>
149
149
  </head>
150
150
  <body><h3>C0 code coverage information</h3>
151
- <p>Generated on Sat May 24 15:19:15 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
151
+ <p>Generated on Sat Jun 28 12:48:53 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
152
152
  </p>
153
153
  <hr/>
154
154
  <table class='report'><thead><tr><td class='heading'>Name</td>
@@ -159,21 +159,21 @@ table.report tr.dark {
159
159
  </tr>
160
160
  </thead>
161
161
  <tbody><tr class='light'><td>TOTAL</td>
162
- <td class='lines_total'><tt>7146</tt>
162
+ <td class='lines_total'><tt>6940</tt>
163
163
  </td>
164
- <td class='lines_code'><tt>4131</tt>
164
+ <td class='lines_code'><tt>4082</tt>
165
165
  </td>
166
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>42.9%</tt>
166
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>41.8%</tt>
167
167
  &nbsp;</td>
168
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='43'/>
169
- <td class='uncovered' width='57'/>
168
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='42'/>
169
+ <td class='uncovered' width='58'/>
170
170
  </tr>
171
171
  </table>
172
172
  </td>
173
173
  </tr>
174
174
  </table>
175
175
  </td>
176
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>15.9%</tt>
176
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>15.7%</tt>
177
177
  &nbsp;</td>
178
178
  <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='16'/>
179
179
  <td class='uncovered' width='84'/>
@@ -427,34 +427,7 @@ table.report tr.dark {
427
427
  </table>
428
428
  </td>
429
429
  </tr>
430
- <tr class='light'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-forwardable_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/forwardable.rb</a>
431
- </td>
432
- <td class='lines_total'><tt>218</tt>
433
- </td>
434
- <td class='lines_code'><tt>50</tt>
435
- </td>
436
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>82.6%</tt>
437
- &nbsp;</td>
438
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='83'/>
439
- <td class='uncovered' width='17'/>
440
- </tr>
441
- </table>
442
- </td>
443
- </tr>
444
- </table>
445
- </td>
446
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>32.0%</tt>
447
- &nbsp;</td>
448
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='32'/>
449
- <td class='uncovered' width='68'/>
450
- </tr>
451
- </table>
452
- </td>
453
- </tr>
454
- </table>
455
- </td>
456
- </tr>
457
- <tr class='dark'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-ipaddr_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/ipaddr.rb</a>
430
+ <tr class='light'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-ipaddr_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/ipaddr.rb</a>
458
431
  </td>
459
432
  <td class='lines_total'><tt>529</tt>
460
433
  </td>
@@ -481,7 +454,7 @@ table.report tr.dark {
481
454
  </table>
482
455
  </td>
483
456
  </tr>
484
- <tr class='light'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-pp_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/pp.rb</a>
457
+ <tr class='dark'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-pp_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/pp.rb</a>
485
458
  </td>
486
459
  <td class='lines_total'><tt>647</tt>
487
460
  </td>
@@ -508,7 +481,7 @@ table.report tr.dark {
508
481
  </table>
509
482
  </td>
510
483
  </tr>
511
- <tr class='dark'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-prettyprint_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/prettyprint.rb</a>
484
+ <tr class='light'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-prettyprint_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/prettyprint.rb</a>
512
485
  </td>
513
486
  <td class='lines_total'><tt>896</tt>
514
487
  </td>
@@ -535,7 +508,7 @@ table.report tr.dark {
535
508
  </table>
536
509
  </td>
537
510
  </tr>
538
- <tr class='light'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-timeout_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb</a>
511
+ <tr class='dark'><td><a href='-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-timeout_rb.html'>/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/timeout.rb</a>
539
512
  </td>
540
513
  <td class='lines_total'><tt>105</tt>
541
514
  </td>
@@ -562,23 +535,23 @@ table.report tr.dark {
562
535
  </table>
563
536
  </td>
564
537
  </tr>
565
- <tr class='dark'><td><a href='lib-rack-auth-ip_rb.html'>lib/rack/auth/ip.rb</a>
538
+ <tr class='light'><td><a href='lib-rack-auth-ip_rb.html'>lib/rack/auth/ip.rb</a>
566
539
  </td>
567
- <td class='lines_total'><tt>44</tt>
540
+ <td class='lines_total'><tt>56</tt>
568
541
  </td>
569
- <td class='lines_code'><tt>38</tt>
542
+ <td class='lines_code'><tt>39</tt>
570
543
  </td>
571
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>93.2%</tt>
544
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>94.6%</tt>
572
545
  &nbsp;</td>
573
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='93'/>
574
- <td class='uncovered' width='7'/>
546
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='95'/>
547
+ <td class='uncovered' width='5'/>
575
548
  </tr>
576
549
  </table>
577
550
  </td>
578
551
  </tr>
579
552
  </table>
580
553
  </td>
581
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>92.1%</tt>
554
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>92.3%</tt>
582
555
  &nbsp;</td>
583
556
  <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='92'/>
584
557
  <td class='uncovered' width='8'/>
@@ -553,7 +553,7 @@ span.run100 {
553
553
  </style>
554
554
  </head>
555
555
  <body><h3>C0 code coverage information</h3>
556
- <p>Generated on Sat May 24 15:19:19 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
556
+ <p>Generated on Sat Jun 28 12:48:58 +0900 2008 with <a href='http://eigenclass.org/hiki/rcov'>rcov 0.8.1.2</a>
557
557
  </p>
558
558
  <hr/>
559
559
  <pre><span class='marked0'>Code reported as executed by Ruby looks like this...
@@ -571,21 +571,21 @@ span.run100 {
571
571
  </thead>
572
572
  <tbody><tr class='light'><td><a href='lib-rack-auth-ip_rb.html'>lib/rack/auth/ip.rb</a>
573
573
  </td>
574
- <td class='lines_total'><tt>44</tt>
574
+ <td class='lines_total'><tt>56</tt>
575
575
  </td>
576
- <td class='lines_code'><tt>38</tt>
576
+ <td class='lines_code'><tt>39</tt>
577
577
  </td>
578
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>93.2%</tt>
578
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_total'>94.6%</tt>
579
579
  &nbsp;</td>
580
- <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='93'/>
581
- <td class='uncovered' width='7'/>
580
+ <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='95'/>
581
+ <td class='uncovered' width='5'/>
582
582
  </tr>
583
583
  </table>
584
584
  </td>
585
585
  </tr>
586
586
  </table>
587
587
  </td>
588
- <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>92.1%</tt>
588
+ <td><table cellspacing='0' cellpadding='0' align='right'><tr><td><tt class='coverage_code'>92.3%</tt>
589
589
  &nbsp;</td>
590
590
  <td><table cellspacing='0' class='percent_graph' cellpadding='0' width='100'><tr><td class='covered' width='92'/>
591
591
  <td class='uncovered' width='8'/>
@@ -601,47 +601,59 @@ span.run100 {
601
601
  <pre><span class="marked1"><a name="line1"></a> 1 require 'ipaddr'
602
602
  </span><span class="marked0"><a name="line2"></a> 2 module Rack
603
603
  </span><span class="marked1"><a name="line3"></a> 3 module Auth
604
- </span><span class="marked0"><a name="line4"></a> 4 class IP
605
- </span><span class="marked1"><a name="line5"></a> 5 module Util
606
- </span><span class="inferred0"><a name="line6"></a> 6 # consider using reverse proxy
607
- </span><span class="marked1"><a name="line7"></a> 7 def detect_ip env
608
- </span><span class="marked0"><a name="line8"></a> 8 if env['HTTP_X_FORWARDED_FOR']
609
- </span><span class="marked1"><a name="line9"></a> 9 env['HTTP_X_FORWARDED_FOR'].split(',').pop
610
- </span><span class="inferred0"><a name="line10"></a>10 else
611
- </span><span class="marked1"><a name="line11"></a>11 env[&quot;REMOTE_ADDR&quot;]
612
- </span><span class="inferred0"><a name="line12"></a>12 end
613
- </span><span class="marked1"><a name="line13"></a>13 end
614
- </span><span class="inferred0"><a name="line14"></a>14
615
- </span><span class="marked1"><a name="line15"></a>15 module_function :detect_ip
616
- </span><span class="inferred0"><a name="line16"></a>16 end
617
- </span><span class="marked1"><a name="line17"></a>17 include Util
618
- </span><span class="inferred0"><a name="line18"></a>18
619
- </span><span class="marked1"><a name="line19"></a>19 def initialize app, ip_list=nil
620
- </span><span class="marked0"><a name="line20"></a>20 @app = app
621
- </span><span class="marked1"><a name="line21"></a>21 @ip_list = ip_list
622
- </span><span class="inferred0"><a name="line22"></a>22
623
- </span><span class="marked1"><a name="line23"></a>23 if @ip_list
624
- </span><span class="marked0"><a name="line24"></a>24 @ip_list = @ip_list.map {|ip| IPAddr.new(ip) }
625
- </span><span class="inferred1"><a name="line25"></a>25 end
604
+ </span><span class="inferred0"><a name="line4"></a> 4 # in your_app.ru
605
+ </span><span class="inferred1"><a name="line5"></a> 5 # require 'rack/auth/ip'
606
+ </span><span class="inferred0"><a name="line6"></a> 6 # # allow access only local network
607
+ </span><span class="inferred1"><a name="line7"></a> 7 # use Rack::Auth::IP, %w( 192.168.0.0/24 )
608
+ </span><span class="inferred0"><a name="line8"></a> 8
609
+ </span><span class="inferred1"><a name="line9"></a> 9 # # you can use block
610
+ </span><span class="inferred0"><a name="line10"></a>10 # # ip is IPAddr instance.
611
+ </span><span class="inferred1"><a name="line11"></a>11 # use Rack::Auth::IP do |ip|
612
+ </span><span class="inferred0"><a name="line12"></a>12 # Your::Model::IP.count({ :ip =&gt; ip.to_s }) != 0
613
+ </span><span class="inferred1"><a name="line13"></a>13 # end
614
+ </span><span class="marked0"><a name="line14"></a>14 class IP
615
+ </span><span class="marked1"><a name="line15"></a>15 module Util
616
+ </span><span class="inferred0"><a name="line16"></a>16 # consider using reverse proxy
617
+ </span><span class="marked1"><a name="line17"></a>17 def detect_ip env
618
+ </span><span class="marked0"><a name="line18"></a>18 if env['HTTP_X_FORWARDED_FOR']
619
+ </span><span class="marked1"><a name="line19"></a>19 env['HTTP_X_FORWARDED_FOR'].split(',').pop
620
+ </span><span class="inferred0"><a name="line20"></a>20 else
621
+ </span><span class="marked1"><a name="line21"></a>21 env[&quot;REMOTE_ADDR&quot;]
622
+ </span><span class="inferred0"><a name="line22"></a>22 end
623
+ </span><span class="marked1"><a name="line23"></a>23 end
624
+ </span><span class="inferred0"><a name="line24"></a>24
625
+ </span><span class="marked1"><a name="line25"></a>25 module_function :detect_ip
626
626
  </span><span class="inferred0"><a name="line26"></a>26 end
627
- </span><span class="inferred1"><a name="line27"></a>27
628
- </span><span class="marked0"><a name="line28"></a>28 def call env
629
- </span><span class="marked1"><a name="line29"></a>29 req_ip = IPAddr.new(detect_ip(env))
630
- </span><span class="inferred0"><a name="line30"></a>30
631
- </span><span class="marked1"><a name="line31"></a>31 if @ip_list
632
- </span><span class="marked0"><a name="line32"></a>32 if @ip_list.find {|ip| ip.include? req_ip }
633
- </span><span class="marked1"><a name="line33"></a>33 return @app.call(env)
634
- </span><span class="inferred0"><a name="line34"></a>34 end
635
- </span><span class="inferred1"><a name="line35"></a>35 else
636
- </span><span class="marked0"><a name="line36"></a>36 if yield(req_ip)
637
- </span><span class="uncovered1"><a name="line37"></a>37 return @app.call(env)
638
- </span><span class="uncovered0"><a name="line38"></a>38 end
639
- </span><span class="uncovered1"><a name="line39"></a>39 end
640
- </span><span class="marked0"><a name="line40"></a>40 return [403, {'Content-Type' =&gt; 'text/plain' }, 'Forbidden' ]
641
- </span><span class="inferred1"><a name="line41"></a>41 end
642
- </span><span class="inferred0"><a name="line42"></a>42 end
643
- </span><span class="inferred1"><a name="line43"></a>43 end
644
- </span><span class="inferred0"><a name="line44"></a>44 end
627
+ </span><span class="marked1"><a name="line27"></a>27 include Util
628
+ </span><span class="inferred0"><a name="line28"></a>28
629
+ </span><span class="marked1"><a name="line29"></a>29 def initialize app, ip_list=nil, &amp;block
630
+ </span><span class="marked0"><a name="line30"></a>30 @app = app
631
+ </span><span class="marked1"><a name="line31"></a>31 @ip_list = ip_list
632
+ </span><span class="inferred0"><a name="line32"></a>32
633
+ </span><span class="marked1"><a name="line33"></a>33 if @ip_list
634
+ </span><span class="marked0"><a name="line34"></a>34 @ip_list = @ip_list.map {|ip| IPAddr.new(ip) }
635
+ </span><span class="inferred1"><a name="line35"></a>35 end
636
+ </span><span class="inferred0"><a name="line36"></a>36
637
+ </span><span class="marked1"><a name="line37"></a>37 @cond = block
638
+ </span><span class="inferred0"><a name="line38"></a>38 end
639
+ </span><span class="inferred1"><a name="line39"></a>39
640
+ </span><span class="marked0"><a name="line40"></a>40 def call env
641
+ </span><span class="marked1"><a name="line41"></a>41 req_ip = IPAddr.new(detect_ip(env))
642
+ </span><span class="inferred0"><a name="line42"></a>42
643
+ </span><span class="marked1"><a name="line43"></a>43 if @ip_list
644
+ </span><span class="marked0"><a name="line44"></a>44 if @ip_list.find {|ip| ip.include? req_ip }
645
+ </span><span class="marked1"><a name="line45"></a>45 return @app.call(env)
646
+ </span><span class="inferred0"><a name="line46"></a>46 end
647
+ </span><span class="inferred1"><a name="line47"></a>47 else
648
+ </span><span class="marked0"><a name="line48"></a>48 if @cond &amp;&amp; @cond.call(req_ip)
649
+ </span><span class="uncovered1"><a name="line49"></a>49 return @app.call(env)
650
+ </span><span class="uncovered0"><a name="line50"></a>50 end
651
+ </span><span class="uncovered1"><a name="line51"></a>51 end
652
+ </span><span class="marked0"><a name="line52"></a>52 return [403, {'Content-Type' =&gt; 'text/plain' }, 'Forbidden' ]
653
+ </span><span class="inferred1"><a name="line53"></a>53 end
654
+ </span><span class="inferred0"><a name="line54"></a>54 end
655
+ </span><span class="inferred1"><a name="line55"></a>55 end
656
+ </span><span class="inferred0"><a name="line56"></a>56 end
645
657
  </span></pre><hr/>
646
658
  <p>Generated using the <a href='http://eigenclass.org/hiki.rb?rcov'>rcov code coverage analysis tool for Ruby</a>
647
659
  version 0.8.1.2.</p>
data/lib/rack/auth/ip.rb CHANGED
@@ -1,6 +1,16 @@
1
1
  require 'ipaddr'
2
2
  module Rack
3
3
  module Auth
4
+ # in your_app.ru
5
+ # require 'rack/auth/ip'
6
+ # # allow access only local network
7
+ # use Rack::Auth::IP, %w( 192.168.0.0/24 )
8
+
9
+ # # you can use block
10
+ # # ip is IPAddr instance.
11
+ # use Rack::Auth::IP do |ip|
12
+ # Your::Model::IP.count({ :ip => ip.to_s }) != 0
13
+ # end
4
14
  class IP
5
15
  module Util
6
16
  # consider using reverse proxy
@@ -16,13 +26,15 @@ module Rack
16
26
  end
17
27
  include Util
18
28
 
19
- def initialize app, ip_list=nil
29
+ def initialize app, ip_list=nil, &block
20
30
  @app = app
21
31
  @ip_list = ip_list
22
32
 
23
33
  if @ip_list
24
34
  @ip_list = @ip_list.map {|ip| IPAddr.new(ip) }
25
35
  end
36
+
37
+ @cond = block
26
38
  end
27
39
 
28
40
  def call env
@@ -33,7 +45,7 @@ module Rack
33
45
  return @app.call(env)
34
46
  end
35
47
  else
36
- if yield(req_ip)
48
+ if @cond && @cond.call(req_ip)
37
49
  return @app.call(env)
38
50
  end
39
51
  end
@@ -34,21 +34,16 @@ describe Rack::Auth::IP do
34
34
  end
35
35
  end
36
36
 
37
- describe 'when without ip list' do
37
+ describe 'when with block' do
38
38
  before do
39
39
  @env = { "REMOTE_ADDR" => '127.0.0.1' }
40
40
  @app = proc {|env| env }
41
- @auth_ip = Rack::Auth::IP.new(@app)
42
- end
43
-
44
- it 'should raise LocalJumpError without block' do
45
- lambda { @auth_ip.call(@env) }.should raise_error(LocalJumpError)
46
41
  end
47
42
 
48
43
  it 'should recieve IPAddr instance in block' do
49
- @auth_ip.call(@env) do |ip|
44
+ Rack::Auth::IP.new(@app) {|ip|
50
45
  ip.should == IPAddr.new(@env["REMOTE_ADDR"])
51
- end
46
+ }.call(@env)
52
47
  end
53
48
  end
54
49
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-auth-ip
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keiji, Yoshimi
@@ -9,7 +9,7 @@ autorequire: ""
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-05-24 00:00:00 +09:00
12
+ date: 2008-06-28 00:00:00 +09:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -51,7 +51,6 @@ files:
51
51
  - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-drb_rb.html
52
52
  - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-eq_rb.html
53
53
  - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-drb-invokemethod_rb.html
54
- - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-forwardable_rb.html
55
54
  - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-ipaddr_rb.html
56
55
  - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-pp_rb.html
57
56
  - doc/output/coverage/-System-Library-Frameworks-Ruby_framework-Versions-1_8-usr-lib-ruby-1_8-prettyprint_rb.html