rubymisc 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -10,42 +10,43 @@
10
10
 
11
11
  2.1 Rbm::Regex
12
12
 
13
- e1: puts Rbm::Regex.man
14
- e2: Rbm::Regex.email
15
- e3: Rbm::Regex.url
16
- e4: Rbm::Regex.zip
17
- e5: Rbm::Regex.ipv4
18
- e6: Rbm::Regex.mac_address
19
- e7: Rbm::Regex.hexcode
20
- e8: Rbm::Regex.usd
13
+ puts Rbm::Regex.man
14
+ Rbm::Regex.email
15
+ Rbm::Regex.url
16
+ Rbm::Regex.zip
17
+ Rbm::Regex.ipv4
18
+ Rbm::Regex.mac_address
19
+ Rbm::Regex.hexcode
20
+ Rbm::Regex.usd
21
+ Rbm::Regex.date_iso_8601 # yyyy-mm-dd
21
22
 
22
23
  2.2 Object
23
24
 
24
25
  #in?
25
- e9: 100.in? [1, 2, 3, 4, 5, 100] # => true
26
+ 100.in? [1, 2, 3, 4, 5, 100] # => true
26
27
 
27
28
  #not functor
28
- e10: 100.not.instance_of? Fixnum # => false
29
+ 100.not.instance_of? Fixnum # => false
29
30
 
30
31
  #and_try functor
31
- e11: nil.and_try.size # => nil
32
+ nil.and_try.size # => nil
32
33
 
33
34
  #errors_with_message
34
- e12: begin
35
- raise 'Timeout socket'
36
- rescue errors_with_message /socket/
37
- p 'socket E'
38
- end
35
+ begin
36
+ raise 'Timeout socket'
37
+ rescue errors_with_message /socket/
38
+ p 'socket E'
39
+ end
39
40
 
40
41
  2.3 Integer
41
42
 
42
43
  #percent_of
43
- e13: 50.percent_of(100) # => 50.0
44
+ 50.percent_of(100) # => 50.0
44
45
 
45
46
  2.4 String
46
47
 
47
48
  #^, #xor
48
- e14: 'rubymisc'.xor 'test' # => "\u0006\u0010\u0011\r\u0019\f\u0000\u0017"
49
+ 'rubymisc'.xor 'test' # => "\u0006\u0010\u0011\r\u0019\f\u0000\u0017"
49
50
 
50
51
  2.5 ActiveRecord::Base
51
52
 
@@ -55,6 +55,20 @@ module Rubymisc
55
55
  def usd
56
56
  /\A\$(\d{1,3}(\,\d{3})*|\d+)(\.\d{2})?\z/
57
57
  end
58
+
59
+ def date_iso_8601
60
+ /\A(?<year>\d{4})-(?<month>(0\d|1[0-2]))-(?<day>([0-2]\d|3[01]))\z/
61
+ end
62
+
63
+ # 6+ letter password w. at least 1 number, 1 letter, 1 symbol
64
+ def strong_password
65
+ /^(?=.*\d)(?=.*[a-z])(?=.*[\W_]).{6,}$/i
66
+ end
67
+
68
+ # anything that does not contain @str
69
+ def negation(str)
70
+ /^(?!.*#{Regexp.escape(str)}).+$/
71
+ end
58
72
  end
59
73
 
60
74
  code = <<-CODE
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module Rubymisc
4
- VERSION = '0.1.0'
4
+ VERSION = '0.2.0'
5
5
  end
@@ -72,4 +72,25 @@ describe Rbm::Regex do
72
72
  Rbm::Regex.phone.should match '310.293.5555'
73
73
  end
74
74
  end
75
+
76
+ describe '.date_iso_8601' do
77
+ specify 'valid ISO 8601 date (yyyy-mm-dd)' do
78
+ Rbm::Regex.date_iso_8601.should match '2013-02-02'
79
+ Rbm::Regex.date_iso_8601.should_not match '2013-13-02'
80
+ end
81
+ end
82
+
83
+ describe '.strong_password' do
84
+ specify '6+ letter password w. at least 1 number, 1 letter, 1 symbol' do
85
+ Rbm::Regex.strong_password.should_not match 'foobar'
86
+ Rbm::Regex.strong_password.should match 'fo0b@r'
87
+ end
88
+ end
89
+
90
+ describe '.negation' do
91
+ specify 'does not contain a string in the body' do
92
+ Rbm::Regex.negation('foo').should_not match 'stringfoobar'
93
+ Rbm::Regex.negation('foo').should match 'stringbar'
94
+ end
95
+ end
75
96
  end
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.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-22 00:00:00.000000000 Z
12
+ date: 2013-05-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &2160298400 !ruby/object:Gem::Requirement
16
+ requirement: &2164969340 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.11.0
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *2160298400
24
+ version_requirements: *2164969340
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &2160349140 !ruby/object:Gem::Requirement
27
+ requirement: &2164968880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.9.2.2
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2160349140
35
+ version_requirements: *2164968880
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: bundler
38
- requirement: &2160348480 !ruby/object:Gem::Requirement
38
+ requirement: &2164968420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2160348480
46
+ version_requirements: *2164968420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: simplecov
49
- requirement: &2160347800 !ruby/object:Gem::Requirement
49
+ requirement: &2164967940 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: 0.6.1
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2160347800
57
+ version_requirements: *2164967940
58
58
  description: Miscellaneous and humble tool-set of useful Ruby.
59
59
  email:
60
60
  - ipoval@ya.ru