numero 0.0.1
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.
- data/README.markdown +3 -0
- data/Rakefile +16 -0
- data/lib/numero/base.rb +5 -0
- data/lib/numero/rails/validations.rb +26 -0
- data/lib/numero/rails.rb +21 -0
- data/lib/numero.rb +9 -0
- data/test/numero_test.rb +13 -0
- data/test/test_helper.rb +21 -0
- metadata +69 -0
data/README.markdown
ADDED
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
|
data/lib/numero/base.rb
ADDED
@@ -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
|
data/lib/numero/rails.rb
ADDED
@@ -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
data/test/numero_test.rb
ADDED
@@ -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
|
data/test/test_helper.rb
ADDED
@@ -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
|
+
|