numero 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown ADDED
@@ -0,0 +1,3 @@
1
+ # Numero
2
+
3
+ This tiny gem contains helpers for validating US phone numbers.
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ require 'rake/testtask'
2
+
3
+ $LOAD_PATH.unshift 'lib'
4
+
5
+ task :default => :test
6
+
7
+ Rake::TestTask.new(:test) do |test|
8
+ test.libs << 'lib' << 'test' << '.'
9
+ test.pattern = 'test/**/*_test.rb'
10
+ test.verbose = true
11
+ end
12
+
13
+ desc "Open an IRB session preloaded with this library"
14
+ task :console do
15
+ sh "irb -r./lib/numero.rb -I./lib"
16
+ end
@@ -0,0 +1,5 @@
1
+ module Numero
2
+ class Base
3
+ VALID_US_NUMBER = /^1?([2-9][0-8][0-9])([2-9][0-9]{2})([0-9]{4})$/
4
+ end
5
+ end
@@ -0,0 +1,26 @@
1
+ module Numero
2
+ module Rails
3
+ module Validations
4
+
5
+ def self.included(base)
6
+ base.class_eval do
7
+ # Rails 1-2
8
+ if Numero::Rails.major < 3
9
+ validates_presence_of :number
10
+ validates_numericality_of :number, :allow_blank => true
11
+ validates_format_of :number, :with => Numero::VALID_US_NUMBER
12
+
13
+ # Rails 3
14
+ else
15
+ validates :number,
16
+ :presence => true,
17
+ :numericality => { :allow_blank => true },
18
+ :format => { :with => Numero::VALID_US_NUMBER }
19
+
20
+ end
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,21 @@
1
+ module Numero
2
+ module Rails
3
+ autoload :Validations, 'numero/rails/validations'
4
+
5
+ def self.version
6
+ @version ||= (::Rails.version || RAILS_GEM_VERSION)
7
+ end
8
+
9
+ def self.major
10
+ @major ||= version.split('.').first.to_i
11
+ end
12
+
13
+ def self.minor
14
+ @minor ||= version.split('.')[1].to_i
15
+ end
16
+
17
+ def self.tiny
18
+ @tiny ||= version.split('.').last.to_i
19
+ end
20
+ end
21
+ end
data/lib/numero.rb ADDED
@@ -0,0 +1,9 @@
1
+ module Numero
2
+ VERSION = Version = '0.0.1'
3
+
4
+ VALID_US_NUMBER = /^1?([2-9][0-8][0-9])([2-9][0-9]{2})([0-9]{4})$/
5
+
6
+ def self.valid_us_number?(number)
7
+ !! number.to_s.match(VALID_US_NUMBER)
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ context 'Numero' do
4
+ test 'validates a US number' do
5
+ valid_number = 15185554488
6
+ valid_number10 = 15185554488
7
+ invalid_number = 199999999999
8
+
9
+ assert Numero.valid_us_number?(valid_number)
10
+ assert Numero.valid_us_number?(valid_number10)
11
+ assert ! Numero.valid_us_number?(invalid_number)
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ require 'test/unit'
2
+ require 'numero'
3
+
4
+ ##
5
+ # test/spec/mini 3
6
+ # http://gist.github.com/25455
7
+ # chris@ozmm.org
8
+ #
9
+ def context(*args, &block)
10
+ return super unless (name = args.first) && block
11
+ klass = Class.new(Test::Unit::TestCase) do
12
+ def self.test(name, &block)
13
+ define_method("test_#{name.gsub(/\W/,'_')}", &block) if block
14
+ end
15
+ def self.xtest(*args) end
16
+ def self.setup(&block) define_method(:setup, &block) end
17
+ def self.teardown(&block) define_method(:teardown, &block) end
18
+ end
19
+ (class << klass; self end).send(:define_method, :name) { name.gsub(/\W/,'_') }
20
+ klass.class_eval &block
21
+ end
metadata ADDED
@@ -0,0 +1,69 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: numero
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Joshua Priddle
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-12-08 00:00:00 -05:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: " Numero: Phone number validation for Ruby/Rails\n"
22
+ email: jpriddle@nevercraft.net
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.markdown
29
+ files:
30
+ - Rakefile
31
+ - README.markdown
32
+ - lib/numero/base.rb
33
+ - lib/numero/rails/validations.rb
34
+ - lib/numero/rails.rb
35
+ - lib/numero.rb
36
+ - test/numero_test.rb
37
+ - test/test_helper.rb
38
+ has_rdoc: true
39
+ homepage: http://github.com/itspriddle/numero
40
+ licenses: []
41
+
42
+ post_install_message:
43
+ rdoc_options:
44
+ - --charset=UTF-8
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - ">="
50
+ - !ruby/object:Gem::Version
51
+ segments:
52
+ - 0
53
+ version: "0"
54
+ required_rubygems_version: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ requirements: []
62
+
63
+ rubyforge_project:
64
+ rubygems_version: 1.3.6
65
+ signing_key:
66
+ specification_version: 3
67
+ summary: "Numero: Phone number validation for Ruby/Rails"
68
+ test_files: []
69
+