rubius 0.0.1 → 0.0.2

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.
@@ -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