rubymisc 0.0.4 → 0.1.0
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/.rvmrc +1 -1
- data/Gemfile +1 -1
- data/LICENSE +1 -1
- data/README +2 -5
- data/lib/rubymisc.rb +1 -1
- data/lib/rubymisc/exceptional.rb +6 -14
- data/lib/rubymisc/regex.rb +19 -0
- data/lib/rubymisc/version.rb +1 -1
- data/rubymisc.gemspec +4 -4
- data/spec/rubymisc/exceptional_spec.rb +0 -12
- data/spec/rubymisc/regex_spec.rb +8 -0
- data/spec/spec_helper.rb +2 -1
- metadata +15 -15
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use 1.9.3
|
1
|
+
rvm use 1.9.3
|
data/Gemfile
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
source
|
1
|
+
source 'http://rubygems.org'
|
2
2
|
gemspec
|
data/LICENSE
CHANGED
data/README
CHANGED
@@ -37,18 +37,15 @@
|
|
37
37
|
p 'socket E'
|
38
38
|
end
|
39
39
|
|
40
|
-
#ASSERT
|
41
|
-
e13: ASSERT { fail SecurityError.new('Fail message!') }
|
42
|
-
|
43
40
|
2.3 Integer
|
44
41
|
|
45
42
|
#percent_of
|
46
|
-
|
43
|
+
e13: 50.percent_of(100) # => 50.0
|
47
44
|
|
48
45
|
2.4 String
|
49
46
|
|
50
47
|
#^, #xor
|
51
|
-
|
48
|
+
e14: 'rubymisc'.xor 'test' # => "\u0006\u0010\u0011\r\u0019\f\u0000\u0017"
|
52
49
|
|
53
50
|
2.5 ActiveRecord::Base
|
54
51
|
|
data/lib/rubymisc.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
# This module encapsulates the entry point functionality to
|
4
4
|
# the extension modules.
|
5
5
|
#--
|
6
|
-
# Copyright (c)
|
6
|
+
# Copyright (c) 2013 Ivan Povalyukhin.
|
7
7
|
# Licensed under the same terms as Ruby. No warranty is provided.
|
8
8
|
module Rubymisc
|
9
9
|
class << self
|
data/lib/rubymisc/exceptional.rb
CHANGED
@@ -2,26 +2,18 @@
|
|
2
2
|
|
3
3
|
module Rubymisc
|
4
4
|
module Exceptional
|
5
|
-
def ASSERT(&block)
|
6
|
-
begin
|
7
|
-
yield
|
8
|
-
rescue Exception => e
|
9
|
-
STDERR.puts e.inspect
|
10
|
-
STDERR.puts e.backtrace
|
11
|
-
# raise e.class, "#{e.message}", caller
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
5
|
##
|
16
6
|
# @example
|
17
|
-
# begin
|
7
|
+
# begin
|
8
|
+
# raise 'Timeout socket'
|
9
|
+
# rescue errors_with_message /socket/
|
10
|
+
# p 'socket E'
|
11
|
+
# end
|
18
12
|
#
|
19
13
|
def errors_with_message(pattern)
|
20
14
|
m = Module.new
|
21
15
|
(class << m; self; end).instance_eval do
|
22
|
-
define_method(:===)
|
23
|
-
pattern === e.message
|
24
|
-
end
|
16
|
+
define_method(:===) { |e| pattern === e.message }
|
25
17
|
end
|
26
18
|
m
|
27
19
|
end
|
data/lib/rubymisc/regex.rb
CHANGED
@@ -12,6 +12,25 @@ module Rubymisc
|
|
12
12
|
/\A#{email_name_regex}@#{domain_head_regex}#{domain_tld_regex}\z/i
|
13
13
|
end
|
14
14
|
|
15
|
+
def phone
|
16
|
+
/\A
|
17
|
+
(?:
|
18
|
+
(?<prefix>\d) # prefix digit
|
19
|
+
[ \-\.]? # optional separator
|
20
|
+
)?
|
21
|
+
(?:
|
22
|
+
\(?(?<areacode>\d{3})\)? # area code
|
23
|
+
[ \-\.] # separator
|
24
|
+
)?
|
25
|
+
(?<trunk>\d{3}) # trunk
|
26
|
+
[ \-\.] # separator
|
27
|
+
(?<line>\d{4}) # line
|
28
|
+
(?:\ ?x? # optional space or 'x'
|
29
|
+
(?<extension>\d+) # extension
|
30
|
+
)?
|
31
|
+
\z/x
|
32
|
+
end
|
33
|
+
|
15
34
|
def url
|
16
35
|
/\A((https?):(([A-Za-z0-9$_.+!*(),;\/?:@&~=-])|%[A-Za-z0-9]{2}){2,}(#([a-zA-Z0-9][a-zA-Z0-9$_.+!*(),;\/?:@&~=%-]*))?([A-Za-z0-9$_+!*();\/?:~-]))\z/
|
17
36
|
end
|
data/lib/rubymisc/version.rb
CHANGED
data/rubymisc.gemspec
CHANGED
@@ -20,14 +20,14 @@ Gem::Specification.new do |s|
|
|
20
20
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
21
|
s.require_paths = ['lib']
|
22
22
|
|
23
|
-
s.required_ruby_version = '>= 1.9.
|
23
|
+
s.required_ruby_version = '>= 1.9.3'
|
24
24
|
s.required_rubygems_version = '>= 1.3.5'
|
25
25
|
|
26
26
|
s.extra_rdoc_files = ['README']
|
27
27
|
s.license = 'MIT'
|
28
28
|
|
29
|
-
{ rspec: '~> 2.
|
29
|
+
{ rspec: '~> 2.11.0',
|
30
30
|
rake: '~> 0.9.2.2',
|
31
|
-
bundler: '~> 1.
|
32
|
-
simplecov: '~> 0.
|
31
|
+
bundler: '~> 1.3.4',
|
32
|
+
simplecov: '~> 0.6.1' }.each { |lib, v| s.add_development_dependency lib.to_s, v }
|
33
33
|
end
|
@@ -3,18 +3,6 @@
|
|
3
3
|
require 'spec_helper'
|
4
4
|
|
5
5
|
describe Rbm::Exceptional do
|
6
|
-
describe '#ASSERT' do
|
7
|
-
specify 'catches failing block and swallows the exception' do
|
8
|
-
failing_proc = -> { fail SecurityError.new('Fail message!') }
|
9
|
-
expect { ASSERT &failing_proc }.not_to raise_error
|
10
|
-
end
|
11
|
-
|
12
|
-
specify 'ok block does not raise error' do
|
13
|
-
success_proc = -> { true }
|
14
|
-
expect { ASSERT &success_proc }.to_not raise_error
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
6
|
describe '#errors_with_message' do
|
19
7
|
specify 'rescue an exception if message match' do
|
20
8
|
e_socket = -> {
|
data/spec/rubymisc/regex_spec.rb
CHANGED
@@ -64,4 +64,12 @@ describe Rbm::Regex do
|
|
64
64
|
Rbm::Regex.usd.should_not match '$.99'
|
65
65
|
end
|
66
66
|
end
|
67
|
+
|
68
|
+
describe '.phone' do
|
69
|
+
specify 'valid phone number' do
|
70
|
+
Rbm::Regex.phone.should match '310-293-5555'
|
71
|
+
Rbm::Regex.phone.should match '(310)-293-5555'
|
72
|
+
Rbm::Regex.phone.should match '310.293.5555'
|
73
|
+
end
|
74
|
+
end
|
67
75
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
$:.unshift File.expand_path('../lib', __FILE__)
|
4
4
|
|
5
|
-
require 'simplecov'
|
5
|
+
require 'simplecov'
|
6
6
|
SimpleCov.start
|
7
7
|
|
8
8
|
require 'yaml'
|
@@ -12,6 +12,7 @@ require 'rubymisc'
|
|
12
12
|
Dir['./spec/support/**/*.rb'].each { |f| require f }
|
13
13
|
|
14
14
|
RSpec.configure do |conf|
|
15
|
+
conf.order = 'random'
|
15
16
|
conf.color_enabled = true
|
16
17
|
conf.treat_symbols_as_metadata_keys_with_true_values = true
|
17
18
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubymisc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-04-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &2160298400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 2.
|
21
|
+
version: 2.11.0
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2160298400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &2160349140 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,29 +32,29 @@ dependencies:
|
|
32
32
|
version: 0.9.2.2
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2160349140
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: bundler
|
38
|
-
requirement: &
|
38
|
+
requirement: &2160348480 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 1.
|
43
|
+
version: 1.3.4
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2160348480
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: simplecov
|
49
|
-
requirement: &
|
49
|
+
requirement: &2160347800 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0.
|
54
|
+
version: 0.6.1
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *2160347800
|
58
58
|
description: Miscellaneous and humble tool-set of useful Ruby.
|
59
59
|
email:
|
60
60
|
- ipoval@ya.ru
|
@@ -106,7 +106,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
108
108
|
- !ruby/object:Gem::Version
|
109
|
-
version: 1.9.
|
109
|
+
version: 1.9.3
|
110
110
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
111
|
none: false
|
112
112
|
requirements:
|
@@ -115,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
115
115
|
version: 1.3.5
|
116
116
|
requirements: []
|
117
117
|
rubyforge_project: rubymisc
|
118
|
-
rubygems_version: 1.8.
|
118
|
+
rubygems_version: 1.8.17
|
119
119
|
signing_key:
|
120
120
|
specification_version: 3
|
121
121
|
summary: Ruby miscellaneous.
|