rubius 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,12 @@
1
+
2
+
3
+ # adds exceptions from .gitignore file, please modify exceptions there!
4
+ imported_exceptions = IO.readlines('.gitignore').inject([]) do |acc, line|
5
+ acc << line.strip if line.to_s[0] != '#' && line.strip != ''; acc
6
+ end
7
+
8
+ Autotest.add_hook :initialize do |autotest|
9
+ imported_exceptions.each do |exception|
10
+ autotest.add_exception(exception)
11
+ end
12
+ end
data/Gemfile CHANGED
@@ -1,13 +1,3 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
5
2
 
6
- # Add dependencies to develop your gem here.
7
- # Include everything needed to run rake, tests, features, etc.
8
- group :development do
9
- gem "shoulda", ">= 0"
10
- gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.2"
12
- gem "rcov", ">= 0"
13
- end
3
+ gemspec
@@ -1,8 +1,57 @@
1
- = rubius
1
+ = Rubius: A simple native Ruby RADIUS authentication gem
2
2
 
3
- A simply ruby RADIUS authentication gem
3
+ Rubius provides a simple interface to RADIUS authentication
4
4
 
5
- == Contributing to rubius
5
+ == Requirements
6
+
7
+ * Ruby >= 1.9.2 (not tested with previous versions)
8
+ * Rails >= 3.0.6 (not tested with previous versions)
9
+
10
+ Rubius works with the following RADIUS servers:
11
+
12
+ * FreeRADIUS 1.1.8
13
+
14
+ == Installation
15
+
16
+ Include the gem in your Gemfile:
17
+
18
+ gem "rubius"
19
+
20
+ And then run bundler:
21
+
22
+ $ bundle install
23
+
24
+ Or install using rubygems
25
+
26
+ $ gem install rubius
27
+
28
+ You can then use it in your programs:
29
+
30
+ require 'rubius'
31
+
32
+ Another way would be to clone the git repository
33
+
34
+ $ git clone git://github.com/rahvin/rubius.git
35
+
36
+ And then install the gem
37
+
38
+ $ cd rubius
39
+ $ rake install
40
+
41
+ == Quick Start
42
+
43
+ $ cd /my/rails/app
44
+ $ rails generate rubius:install
45
+
46
+ This will create an initial 'config/rubius.yml' configuration file and a 'config/radius-dictionary' RADIUS dictionary file, it will also create an initializer in 'config/initializers/rubius.rb' to load Rubius when your application starts up.
47
+
48
+ Now configure your RADIUS server properties in 'config/rubius.yml'. When you're done, you can authenticate with:
49
+
50
+ if Rubius::Authenticator.authenticate('username', 'password')
51
+ # woohoo
52
+ end
53
+
54
+ == Contributing to Rubius
6
55
 
7
56
  * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
57
  * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
@@ -14,6 +63,4 @@ A simply ruby RADIUS authentication gem
14
63
 
15
64
  == Copyright
16
65
 
17
- Copyright (c) 2011 Ralph Rooding. See LICENSE.txt for
18
- further details.
19
-
66
+ Copyright (c) 2011 Ralph Rooding. See LICENSE.txt for further details.
data/Rakefile CHANGED
@@ -15,14 +15,17 @@ Jeweler::Tasks.new do |gem|
15
15
  gem.name = "rubius"
16
16
  gem.homepage = "http://github.com/rahvin/rubius"
17
17
  gem.license = "MIT"
18
- gem.summary = %Q{A simply ruby RADIUS authentication gem}
19
- gem.description = %Q{A simply ruby RADIUS authentication gem}
18
+ gem.summary = %Q{A simple ruby RADIUS authentication gem}
19
+ gem.description = %Q{Rubius provides a simple interface to RADIUS authentication}
20
20
  gem.email = "ralph@izerion.com"
21
21
  gem.authors = ["Ralph Rooding"]
22
- # Include your dependencies below. Runtime dependencies are required when using your gem,
23
- # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
- # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
- # gem.add_development_dependency 'rspec', '> 1.2.3'
22
+
23
+ gem.add_development_dependency 'bundler', '~> 1.0.0'
24
+ gem.add_development_dependency 'shoulda'
25
+ gem.add_development_dependency 'mocha', '~> 0.9.12'
26
+ gem.add_development_dependency 'jeweler', '~> 1.5.2'
27
+ gem.add_development_dependency 'simplecov', '>= 0.4.0'
28
+ gem.add_development_dependency 'autotest-standalone', '~> 4.5.5'
26
29
  end
27
30
  Jeweler::RubygemsDotOrgTasks.new
28
31
 
@@ -47,7 +50,7 @@ Rake::RDocTask.new do |rdoc|
47
50
  version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
51
 
49
52
  rdoc.rdoc_dir = 'rdoc'
50
- rdoc.title = "rubius #{version}"
53
+ rdoc.title = "Rubius #{version}"
51
54
  rdoc.rdoc_files.include('README*')
52
55
  rdoc.rdoc_files.include('lib/**/*.rb')
53
56
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.1
1
+ 0.0.2
@@ -3,13 +3,11 @@ module Rubius
3
3
  VENDOR = 'VENDOR'
4
4
  ATTRIBUTE = 'ATTRIBUTE'
5
5
  VALUE = 'VALUE'
6
- NAME = 'NAME'
7
- TYPE = 'TYPE'
8
6
  DEFAULT_VENDOR = 0
9
7
 
10
8
  def initialize
11
9
  @dictionary = Hash.new
12
- @dictionary[DEFAULT_VENDOR] = {NAME => ''}
10
+ @dictionary[DEFAULT_VENDOR] = {:name => ''}
13
11
  end
14
12
 
15
13
  def load(dictionary_file)
@@ -25,33 +23,34 @@ module Rubius
25
23
  when VENDOR
26
24
  vendor_id = tokens[2].to_i
27
25
  vendor_name = tokens[1].strip
28
- @dictionary[vendor_id] ||= {NAME => vendor_name}
26
+ @dictionary[vendor_id] ||= {:name => vendor_name}
29
27
  when ATTRIBUTE
30
- @dictionary[vendor_id][tokens[2].to_i] = {NAME => tokens[1].strip, TYPE => tokens[3].strip}
28
+ @dictionary[vendor_id][tokens[2].to_i] = {:name => tokens[1].strip, :type => tokens[3].strip}
31
29
  when VALUE
32
30
  @dictionary[vendor_id][tokens[1]] = {tokens[2].strip => tokens[3].to_i}
33
31
  end
34
32
  end
35
33
  end
36
34
 
37
- def vendor_name(vendor_id)
38
- @dictionary[vendor_id][NAME]
35
+ def vendor_name(vendor_id = DEFAULT_VENDOR)
36
+ @dictionary[vendor_id][:name]
39
37
  end
40
38
 
41
- def attribute(vendor_id, attr_id)
42
- @dictionary[vendor_id][attr_id] rescue nil
39
+ def attribute_name(attr_id, vendor_id = DEFAULT_VENDOR)
40
+ attribute(attr_id, vendor_id)[:name] rescue nil
43
41
  end
44
42
 
45
- def attribute_name(vendor_id, attr_id)
46
- attribute(vendor_id, attr_id)[NAME] rescue nil
43
+ def attribute_type(attr_id, vendor_id = DEFAULT_VENDOR)
44
+ attribute(attr_id, vendor_id)[:type] rescue nil
47
45
  end
48
46
 
49
- def attribute_type(vendor_id, attr_id)
50
- attribute(vendor_id, attr_id)[TYPE] rescue nil
47
+ def attribute_id(attr_name, vendor_id = DEFAULT_VENDOR)
48
+ @dictionary[vendor_id].reject{|k,v| !v.is_a?(Hash) || v[:name]!=attr_name}.flatten.first
51
49
  end
52
50
 
53
- def attribute_id(attr_name, vendor_id=0)
54
- @dictionary[vendor_id].reject{|k,v| !v.is_a?(Hash) || v[NAME]!=attr_name}.flatten.first
51
+ private
52
+ def attribute(attr_id, vendor_id)
53
+ @dictionary[vendor_id][attr_id] rescue nil
55
54
  end
56
55
  end
57
56
  end
@@ -125,7 +125,7 @@ module Rubius
125
125
  end
126
126
 
127
127
  def set_vendor_attribute(vendor_id, attr_id, value)
128
- attr_name = @dictionary.attribute_name(vendor_id, attr_id)
128
+ attr_name = @dictionary.attribute_name(attr_id, vendor_id)
129
129
  set_attribute(attr_name, value)
130
130
  end
131
131
 
@@ -0,0 +1,127 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rubius}
8
+ s.version = "0.0.2"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Ralph Rooding"]
12
+ s.date = %q{2011-04-20}
13
+ s.description = %q{Rubius provides a simple interface to RADIUS authentication}
14
+ s.email = %q{ralph@izerion.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ ".autotest",
21
+ "Gemfile",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "lib/generators/rubius/install_generator.rb",
27
+ "lib/generators/rubius/templates/radius-dictionary",
28
+ "lib/generators/rubius/templates/rubius.yml",
29
+ "lib/generators/rubius/templates/rubius_initializer.rb",
30
+ "lib/rubius.rb",
31
+ "lib/rubius/authenticator.rb",
32
+ "lib/rubius/dictionary.rb",
33
+ "lib/rubius/packet.rb",
34
+ "lib/rubius/rails.rb",
35
+ "lib/rubius/string.rb",
36
+ "rubius.gemspec",
37
+ "test/helper.rb",
38
+ "test/test_dictionary.rb",
39
+ "test/test_string.rb"
40
+ ]
41
+ s.homepage = %q{http://github.com/rahvin/rubius}
42
+ s.licenses = ["MIT"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = %q{1.5.2}
45
+ s.summary = %q{A simple ruby RADIUS authentication gem}
46
+ s.test_files = [
47
+ "test/helper.rb",
48
+ "test/test_dictionary.rb",
49
+ "test/test_string.rb"
50
+ ]
51
+
52
+ if s.respond_to? :specification_version then
53
+ s.specification_version = 3
54
+
55
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
56
+ s.add_runtime_dependency(%q<rubius>, [">= 0"])
57
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
58
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
59
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
60
+ s.add_development_dependency(%q<rcov>, [">= 0"])
61
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
62
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
63
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
64
+ s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
65
+ s.add_development_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
66
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
67
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
68
+ s.add_development_dependency(%q<mocha>, ["~> 0.9.12"])
69
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
70
+ s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
71
+ s.add_development_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
72
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
73
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
74
+ s.add_development_dependency(%q<mocha>, ["~> 0.9.12"])
75
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
76
+ s.add_development_dependency(%q<simplecov>, [">= 0.4.0"])
77
+ s.add_development_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
78
+ else
79
+ s.add_dependency(%q<rubius>, [">= 0"])
80
+ s.add_dependency(%q<shoulda>, [">= 0"])
81
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
82
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
83
+ s.add_dependency(%q<rcov>, [">= 0"])
84
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
85
+ s.add_dependency(%q<shoulda>, [">= 0"])
86
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
87
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
88
+ s.add_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
89
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
90
+ s.add_dependency(%q<shoulda>, [">= 0"])
91
+ s.add_dependency(%q<mocha>, ["~> 0.9.12"])
92
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
93
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
94
+ s.add_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
95
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
96
+ s.add_dependency(%q<shoulda>, [">= 0"])
97
+ s.add_dependency(%q<mocha>, ["~> 0.9.12"])
98
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
99
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
100
+ s.add_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
101
+ end
102
+ else
103
+ s.add_dependency(%q<rubius>, [">= 0"])
104
+ s.add_dependency(%q<shoulda>, [">= 0"])
105
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
106
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
107
+ s.add_dependency(%q<rcov>, [">= 0"])
108
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
109
+ s.add_dependency(%q<shoulda>, [">= 0"])
110
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
111
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
112
+ s.add_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
113
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
114
+ s.add_dependency(%q<shoulda>, [">= 0"])
115
+ s.add_dependency(%q<mocha>, ["~> 0.9.12"])
116
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
117
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
118
+ s.add_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
119
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
120
+ s.add_dependency(%q<shoulda>, [">= 0"])
121
+ s.add_dependency(%q<mocha>, ["~> 0.9.12"])
122
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
123
+ s.add_dependency(%q<simplecov>, [">= 0.4.0"])
124
+ s.add_dependency(%q<autotest-standalone>, ["~> 4.5.5"])
125
+ end
126
+ end
127
+
@@ -1,5 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'bundler'
3
+ require 'simplecov'
4
+ SimpleCov.start
3
5
  begin
4
6
  Bundler.setup(:default, :development)
5
7
  rescue Bundler::BundlerError => e
@@ -9,6 +11,7 @@ rescue Bundler::BundlerError => e
9
11
  end
10
12
  require 'test/unit'
11
13
  require 'shoulda'
14
+ require 'mocha'
12
15
 
13
16
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
17
  $LOAD_PATH.unshift(File.dirname(__FILE__))
@@ -16,3 +19,38 @@ require 'rubius'
16
19
 
17
20
  class Test::Unit::TestCase
18
21
  end
22
+
23
+ RADIUS_DICTIONARY = [
24
+ "# -*- text -*-",
25
+ "#",
26
+ "# Attributes and values defined in RFC 2865.",
27
+ "ATTRIBUTE User-Name 1 string",
28
+ "ATTRIBUTE User-Password 2 string encrypt=1",
29
+ "ATTRIBUTE Service-Type 6 integer",
30
+ "",
31
+ "# Values",
32
+ "VALUE Service-Type Login-User 1",
33
+ "VALUE Service-Type Framed-User 2",
34
+ "VALUE Service-Type Callback-Login-User 3",
35
+ "",
36
+ "# -*- text -*-",
37
+ "#",
38
+ "# dictionary.cisco",
39
+ "VENDOR Cisco 9",
40
+ "",
41
+ "BEGIN-VENDOR Cisco",
42
+ "",
43
+ "ATTRIBUTE Cisco-AVPair 1 string",
44
+ "ATTRIBUTE Cisco-NAS-Port 2 string",
45
+ "ATTRIBUTE Cisco-Disconnect-Cause 195 integer",
46
+ "",
47
+ "VALUE Cisco-Disconnect-Cause Unknown 2",
48
+ "VALUE Cisco-Disconnect-Cause CLID-Authentication-Failure 4",
49
+ "#",
50
+ "",
51
+ "VENDOR Juniper 2636",
52
+ "",
53
+ "BEGIN-VENDOR Juniper",
54
+ "",
55
+ "ATTRIBUTE Juniper-Local-User-Name 1 string"
56
+ ]
@@ -0,0 +1,22 @@
1
+ require 'helper'
2
+
3
+ class TestDictionary < Test::Unit::TestCase
4
+ def setup
5
+ @dictionary = Rubius::Dictionary.new
6
+ end
7
+
8
+ context "A Rubius::Dictionary" do
9
+ should "load and parse a RADIUS dictionary file" do
10
+ IO.stubs(:readlines).returns(RADIUS_DICTIONARY)
11
+
12
+ assert @dictionary.load("file")
13
+
14
+ assert_equal "Cisco", @dictionary.vendor_name(9)
15
+ assert_equal "Juniper", @dictionary.vendor_name(2636)
16
+
17
+ assert_equal "Service-Type", @dictionary.attribute_name(6)
18
+ assert_equal "string", @dictionary.attribute_type(2, 9)
19
+ assert_equal 1, @dictionary.attribute_id("Juniper-Local-User-Name", 2636)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,40 @@
1
+ require 'helper'
2
+
3
+ class TestString < Test::Unit::TestCase
4
+ should "define a xor method" do
5
+ assert String.method_defined?(:xor)
6
+ end
7
+
8
+ should "return correct string when xor-ed with an empty string" do
9
+ str1 = "test string"
10
+ str2 = ""
11
+
12
+ result = str1.xor(str2)
13
+ assert_equal str1, result
14
+
15
+ result2 = result.xor(str2)
16
+ assert_equal str1, result2
17
+ end
18
+
19
+ should "return correct string when xor-ed with a longer string" do
20
+ str1 = "test string"
21
+ str2 = "longer test string"
22
+
23
+ result = str1.xor(str2)
24
+ assert_equal "\x18\n\x1D\x13E\x01T\x06\f\x1D\x13", result
25
+
26
+ result2 = result.xor(str2)
27
+ assert_equal str1, result2
28
+ end
29
+
30
+ should "return correct string when xor-ed with a shorter string" do
31
+ str1 = "test string"
32
+ str2 = "short s"
33
+
34
+ result = str1.xor(str2)
35
+ assert_equal "\a\r\x1C\x06TS\a\x01\x01\x01\x15", result
36
+
37
+ result2 = result.xor(str2)
38
+ assert_equal str1, result2
39
+ end
40
+ end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: rubius
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.1
5
+ version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Ralph Rooding
@@ -10,23 +10,34 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-19 00:00:00 +02:00
13
+ date: 2011-04-20 00:00:00 +02:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
- name: shoulda
17
+ name: rubius
18
18
  requirement: &id001 !ruby/object:Gem::Requirement
19
19
  none: false
20
20
  requirements:
21
21
  - - ">="
22
22
  - !ruby/object:Gem::Version
23
23
  version: "0"
24
- type: :development
24
+ type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: *id001
27
27
  - !ruby/object:Gem::Dependency
28
- name: bundler
28
+ name: shoulda
29
29
  requirement: &id002 !ruby/object:Gem::Requirement
30
+ none: false
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: "0"
35
+ type: :development
36
+ prerelease: false
37
+ version_requirements: *id002
38
+ - !ruby/object:Gem::Dependency
39
+ name: bundler
40
+ requirement: &id003 !ruby/object:Gem::Requirement
30
41
  none: false
31
42
  requirements:
32
43
  - - ~>
@@ -34,10 +45,10 @@ dependencies:
34
45
  version: 1.0.0
35
46
  type: :development
36
47
  prerelease: false
37
- version_requirements: *id002
48
+ version_requirements: *id003
38
49
  - !ruby/object:Gem::Dependency
39
50
  name: jeweler
40
- requirement: &id003 !ruby/object:Gem::Requirement
51
+ requirement: &id004 !ruby/object:Gem::Requirement
41
52
  none: false
42
53
  requirements:
43
54
  - - ~>
@@ -45,10 +56,10 @@ dependencies:
45
56
  version: 1.5.2
46
57
  type: :development
47
58
  prerelease: false
48
- version_requirements: *id003
59
+ version_requirements: *id004
49
60
  - !ruby/object:Gem::Dependency
50
61
  name: rcov
51
- requirement: &id004 !ruby/object:Gem::Requirement
62
+ requirement: &id005 !ruby/object:Gem::Requirement
52
63
  none: false
53
64
  requirements:
54
65
  - - ">="
@@ -56,8 +67,195 @@ dependencies:
56
67
  version: "0"
57
68
  type: :development
58
69
  prerelease: false
59
- version_requirements: *id004
60
- description: A simply ruby RADIUS authentication gem
70
+ version_requirements: *id005
71
+ - !ruby/object:Gem::Dependency
72
+ name: bundler
73
+ requirement: &id006 !ruby/object:Gem::Requirement
74
+ none: false
75
+ requirements:
76
+ - - ~>
77
+ - !ruby/object:Gem::Version
78
+ version: 1.0.0
79
+ type: :development
80
+ prerelease: false
81
+ version_requirements: *id006
82
+ - !ruby/object:Gem::Dependency
83
+ name: shoulda
84
+ requirement: &id007 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: "0"
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: *id007
93
+ - !ruby/object:Gem::Dependency
94
+ name: jeweler
95
+ requirement: &id008 !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ~>
99
+ - !ruby/object:Gem::Version
100
+ version: 1.5.2
101
+ type: :development
102
+ prerelease: false
103
+ version_requirements: *id008
104
+ - !ruby/object:Gem::Dependency
105
+ name: simplecov
106
+ requirement: &id009 !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 0.4.0
112
+ type: :development
113
+ prerelease: false
114
+ version_requirements: *id009
115
+ - !ruby/object:Gem::Dependency
116
+ name: autotest-standalone
117
+ requirement: &id010 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ~>
121
+ - !ruby/object:Gem::Version
122
+ version: 4.5.5
123
+ type: :development
124
+ prerelease: false
125
+ version_requirements: *id010
126
+ - !ruby/object:Gem::Dependency
127
+ name: bundler
128
+ requirement: &id011 !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 1.0.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: *id011
137
+ - !ruby/object:Gem::Dependency
138
+ name: shoulda
139
+ requirement: &id012 !ruby/object:Gem::Requirement
140
+ none: false
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: "0"
145
+ type: :development
146
+ prerelease: false
147
+ version_requirements: *id012
148
+ - !ruby/object:Gem::Dependency
149
+ name: mocha
150
+ requirement: &id013 !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: 0.9.12
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: *id013
159
+ - !ruby/object:Gem::Dependency
160
+ name: jeweler
161
+ requirement: &id014 !ruby/object:Gem::Requirement
162
+ none: false
163
+ requirements:
164
+ - - ~>
165
+ - !ruby/object:Gem::Version
166
+ version: 1.5.2
167
+ type: :development
168
+ prerelease: false
169
+ version_requirements: *id014
170
+ - !ruby/object:Gem::Dependency
171
+ name: simplecov
172
+ requirement: &id015 !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ">="
176
+ - !ruby/object:Gem::Version
177
+ version: 0.4.0
178
+ type: :development
179
+ prerelease: false
180
+ version_requirements: *id015
181
+ - !ruby/object:Gem::Dependency
182
+ name: autotest-standalone
183
+ requirement: &id016 !ruby/object:Gem::Requirement
184
+ none: false
185
+ requirements:
186
+ - - ~>
187
+ - !ruby/object:Gem::Version
188
+ version: 4.5.5
189
+ type: :development
190
+ prerelease: false
191
+ version_requirements: *id016
192
+ - !ruby/object:Gem::Dependency
193
+ name: bundler
194
+ requirement: &id017 !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ~>
198
+ - !ruby/object:Gem::Version
199
+ version: 1.0.0
200
+ type: :development
201
+ prerelease: false
202
+ version_requirements: *id017
203
+ - !ruby/object:Gem::Dependency
204
+ name: shoulda
205
+ requirement: &id018 !ruby/object:Gem::Requirement
206
+ none: false
207
+ requirements:
208
+ - - ">="
209
+ - !ruby/object:Gem::Version
210
+ version: "0"
211
+ type: :development
212
+ prerelease: false
213
+ version_requirements: *id018
214
+ - !ruby/object:Gem::Dependency
215
+ name: mocha
216
+ requirement: &id019 !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: 0.9.12
222
+ type: :development
223
+ prerelease: false
224
+ version_requirements: *id019
225
+ - !ruby/object:Gem::Dependency
226
+ name: jeweler
227
+ requirement: &id020 !ruby/object:Gem::Requirement
228
+ none: false
229
+ requirements:
230
+ - - ~>
231
+ - !ruby/object:Gem::Version
232
+ version: 1.5.2
233
+ type: :development
234
+ prerelease: false
235
+ version_requirements: *id020
236
+ - !ruby/object:Gem::Dependency
237
+ name: simplecov
238
+ requirement: &id021 !ruby/object:Gem::Requirement
239
+ none: false
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: 0.4.0
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: *id021
247
+ - !ruby/object:Gem::Dependency
248
+ name: autotest-standalone
249
+ requirement: &id022 !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ~>
253
+ - !ruby/object:Gem::Version
254
+ version: 4.5.5
255
+ type: :development
256
+ prerelease: false
257
+ version_requirements: *id022
258
+ description: Rubius provides a simple interface to RADIUS authentication
61
259
  email: ralph@izerion.com
62
260
  executables: []
63
261
 
@@ -67,6 +265,7 @@ extra_rdoc_files:
67
265
  - LICENSE.txt
68
266
  - README.rdoc
69
267
  files:
268
+ - .autotest
70
269
  - Gemfile
71
270
  - LICENSE.txt
72
271
  - README.rdoc
@@ -82,8 +281,10 @@ files:
82
281
  - lib/rubius/packet.rb
83
282
  - lib/rubius/rails.rb
84
283
  - lib/rubius/string.rb
284
+ - rubius.gemspec
85
285
  - test/helper.rb
86
- - test/test_rubius.rb
286
+ - test/test_dictionary.rb
287
+ - test/test_string.rb
87
288
  has_rdoc: true
88
289
  homepage: http://github.com/rahvin/rubius
89
290
  licenses:
@@ -98,7 +299,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
299
  requirements:
99
300
  - - ">="
100
301
  - !ruby/object:Gem::Version
101
- hash: 4409384527015067188
302
+ hash: -3471732790188196430
102
303
  segments:
103
304
  - 0
104
305
  version: "0"
@@ -114,7 +315,8 @@ rubyforge_project:
114
315
  rubygems_version: 1.5.2
115
316
  signing_key:
116
317
  specification_version: 3
117
- summary: A simply ruby RADIUS authentication gem
318
+ summary: A simple ruby RADIUS authentication gem
118
319
  test_files:
119
320
  - test/helper.rb
120
- - test/test_rubius.rb
321
+ - test/test_dictionary.rb
322
+ - test/test_string.rb
@@ -1,7 +0,0 @@
1
- require 'helper'
2
-
3
- class TestRubius < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
7
- end