chupakabra_tools 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -20,5 +20,6 @@ Gem::Specification.new do |gem|
20
20
  gem.add_dependency "activesupport"
21
21
  gem.add_dependency "activerecord"
22
22
  gem.add_dependency "active_enum"
23
+ gem.add_dependency "russian"
23
24
 
24
25
  end
@@ -8,6 +8,7 @@ require "chupakabra_tools/validattions"
8
8
  require "chupakabra_tools/number_as_text"
9
9
  require "chupakabra_tools/active_record"
10
10
  require "chupakabra_tools/convert"
11
+ require "chupakabra_tools/transliterator"
11
12
 
12
13
 
13
14
 
@@ -0,0 +1,18 @@
1
+ require "russian"
2
+
3
+ class ChupakabraTools::Transliterator
4
+
5
+ def self.translify(str)
6
+ str = str.to_s unless str.is_a?(String)
7
+ Russian.transliterate(str)
8
+ end
9
+
10
+ def self.dirify(str)
11
+ result_str = translify(str)
12
+ result_str.gsub!(/(\s\&\s)|(\s\&amp\;\s)/, ' and ') # convert & to "and"
13
+ result_str.gsub!(/\W/, ' ') #replace non-chars
14
+ result_str.gsub!(/(_)$/, '') #trailing underscores
15
+ result_str.gsub!(/^(_)/, '') #leading unders
16
+ result_str.strip.gsub(/(\s)/,'-').downcase.squeeze('-')
17
+ end
18
+ end
@@ -7,4 +7,74 @@ module ChupakabraTools::Validations
7
7
  def russian_letters_and_digits
8
8
  /^[а-яА-Я0-9\ ,;.\-]+$/
9
9
  end
10
+
11
+
12
+ def phone(phone, params={})
13
+
14
+ params ||= {}
15
+
16
+
17
+ if phone.nil?
18
+ return params[:allow_nil] && params[:allow_nil] == true
19
+ end
20
+
21
+ unless phone.is_a?(String)
22
+ phone = phone.to_s
23
+ end
24
+
25
+ phone.strip!
26
+
27
+ if phone.blank?
28
+ return params[:allow_blank] && params[:allow_blank] == true
29
+ end
30
+
31
+ phone = phone.gsub(/[^0-9]/, "")
32
+
33
+ # checking phone lengths for each country
34
+ if phone.starts_with?("7")
35
+ # for Russia, Kazahstan, Abhazia and so on
36
+ phone = phone.length == 11 ? phone : nil
37
+ #phone += " Russia" if phone
38
+ elsif phone.starts_with?("38")
39
+ # Ukrine
40
+ phone = phone.length == 12 ? phone : nil
41
+ #phone += " Ukraine" if phone
42
+ elsif phone.starts_with?("375")
43
+ # Belarus
44
+ phone = phone.length == 12 ? phone : nil
45
+ #phone += " Belarus" if phone
46
+ elsif phone.starts_with?("370")
47
+ # Litua
48
+ phone = phone.length == 11 ? phone : nil
49
+ #phone += " Litva" if phone
50
+ elsif phone.starts_with?("371")
51
+ # Latvia
52
+ phone = phone.length == 11 ? phone : nil
53
+ #phone += " Latvia" if phone
54
+ elsif phone.starts_with?("372")
55
+ # Estonia
56
+ phone = phone.length == 11 || phone.length == 10 ? phone : nil
57
+ #phone += " Estonia" if phone
58
+ elsif phone.starts_with?("995") && phone.length != 12
59
+ # Geogia
60
+ phone = phone.length == 11 ? phone : nil
61
+ #phone += " Georgia" if phone
62
+ elsif phone.starts_with?("374")
63
+ #Armenia
64
+ phone = phone.length == 11 ? phone : nil
65
+ #phone += " Armenia" if phone
66
+ elsif phone.starts_with?("994")
67
+ # Azerbadzhan
68
+ phone = phone.length == 12 ? phone : nil
69
+ #phone += " Azerbaidzhan" if phone
70
+ elsif phone.starts_with?("373")
71
+ # Moldova
72
+ phone = phone.length == 11 ? phone : nil
73
+ #phone += " Moldova" if phone
74
+ else
75
+ phone = nil
76
+ end
77
+
78
+ phone ? true : false
79
+ end
10
80
  end
@@ -1,3 +1,3 @@
1
1
  module ChupakabraTools
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chupakabra_tools
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-24 00:00:00.000000000 Z
12
+ date: 2013-03-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: russian
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  description: Chupakbara Tools Set for Easy Life
63
79
  email:
64
80
  - mdima@it-guru.biz
@@ -80,6 +96,7 @@ files:
80
96
  - lib/chupakabra_tools/predefined_time_intervals.rb
81
97
  - lib/chupakabra_tools/security.rb
82
98
  - lib/chupakabra_tools/time_interval.rb
99
+ - lib/chupakabra_tools/transliterator.rb
83
100
  - lib/chupakabra_tools/validattions.rb
84
101
  - lib/chupakabra_tools/version.rb
85
102
  homepage: ''