parsi-digits 0.2 → 0.3

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/.gitignore CHANGED
@@ -1,5 +1,3 @@
1
1
  *.gem
2
2
  .bundle
3
- Gemfile.lock
4
3
  pkg/*
5
-
data/Gemfile.lock ADDED
@@ -0,0 +1,17 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ parsi-digits (0.3)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ rake (0.9.2.2)
10
+
11
+ PLATFORMS
12
+ ruby
13
+
14
+ DEPENDENCIES
15
+ bundler
16
+ parsi-digits!
17
+ rake
data/README.markdown CHANGED
@@ -5,7 +5,7 @@ Some simple utilities to help working with parsi unicode digits.
5
5
 
6
6
  Convertion between parsi and western digits:
7
7
 
8
- require 'parsi_digits'
8
+ require 'parsi-digits'
9
9
  ‪"15,000 تومان".with_parsi_digits
10
10
  => ‫"۱۵,۰۰۰ تومان"
11
11
  123.25.with_parsi_digits
@@ -20,4 +20,10 @@ Easy convertion of parsi digits to Float or Integer (which is useful especially
20
20
  "۱۹/۸".to_f
21
21
  => 19.8
22
22
 
23
+ Migrating from 0.2 to 0.3
24
+ -------------------------
25
+
26
+ `parsi_digits` renamed to `parsi-digits` to respect bundlers autorequire.
27
+ So simple remove `require: 'parsi_digits'` option in `Gemfile` if you have it.
28
+
23
29
  Copyright (c) 2012 Hassan Zamani, released under the MIT license.
@@ -0,0 +1,123 @@
1
+ # encoding: utf-8
2
+
3
+ module Parsi
4
+ module Digits
5
+ PARSI_DIGITS = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']
6
+
7
+ class << self
8
+ def to_parsi digit
9
+ PARSI_DIGITS[digit.to_i] if digit =~ /[0-9]/
10
+ end
11
+
12
+ def to_western digit
13
+ PARSI_DIGITS.index digit if digit =~ /[۰-۹]/
14
+ end
15
+
16
+ def locale_separator options={}
17
+ locale = options[:locale]
18
+ default = options[:default]
19
+ default ||= (locale == :fa ? '/' : '.')
20
+ begin
21
+ I18n.t(:'number.format.separator', default: default, locale: locale)
22
+ rescue
23
+ default
24
+ end
25
+ end
26
+
27
+ def fa_separator
28
+ locale_separator locale: :fa
29
+ end
30
+
31
+ def en_separator
32
+ locale_separator locale: :en
33
+ end
34
+
35
+ def locale_delimiter options={}
36
+ locale = options[:locale]
37
+ default = options[:default]
38
+ default ||= (locale == :fa ? '٫' : ',')
39
+ begin
40
+ I18n.t(:'number.format.delimiter', default: default, locale: locale)
41
+ rescue
42
+ default
43
+ end
44
+ end
45
+
46
+ def fa_delimiter
47
+ locale_delimiter locale: :fa
48
+ end
49
+
50
+ def en_delimiter
51
+ locale_delimiter locale: :en
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ class String
58
+ def with_parsi_digits
59
+ gsub(/\d/) { |d| Parsi::Digits.to_parsi d }
60
+ end
61
+
62
+ def with_parsi_digits!
63
+ gsub!(/\d/) { |d| Parsi::Digits.to_parsi d }
64
+ end
65
+
66
+ def with_western_digits
67
+ gsub(/[۰-۹]/) { |d| Parsi::Digits.to_western d }
68
+ end
69
+
70
+ def with_western_digits!
71
+ gsub!(/[۰-۹]/) { |d| Parsi::Digits.to_western d }
72
+ end
73
+
74
+ def has_parsi_digits?
75
+ self =~ /[۰-۹]/
76
+ end
77
+
78
+ def remove_delimiters options={locale: :fa}
79
+ locale = options[:locale]
80
+ delimiter = options[:delimiter]
81
+ delimiter ||= Parsi::Digits.locale_delimiter locale: locale
82
+ gsub delimiter, ''
83
+ end
84
+
85
+ def remove_delimiters!
86
+ locale = options[:locale]
87
+ delimiter = options[:delimiter]
88
+ delimiter ||= Parsi::Digits.locale_delimiter locale: locale
89
+ gsub! delimiter, ''
90
+ end
91
+
92
+ alias_method :western_to_i, :to_i
93
+ def to_i base=10
94
+ if has_parsi_digits?
95
+ with_western_digits.western_to_i base
96
+ else
97
+ western_to_i base
98
+ end
99
+ end
100
+
101
+ alias_method :western_to_f, :to_f
102
+ def to_f
103
+ if has_parsi_digits?
104
+ separator = Parsi::Digits.fa_separator
105
+ with_western_digits.sub(separator, '.').western_to_f
106
+ else
107
+ western_to_f
108
+ end
109
+ end
110
+ end
111
+
112
+ class Integer
113
+ def with_parsi_digits
114
+ to_s.with_parsi_digits
115
+ end
116
+ end
117
+
118
+ class Float
119
+ def with_parsi_digits
120
+ separator = Parsi::Digits.fa_separator
121
+ to_s.with_parsi_digits.sub '.', separator
122
+ end
123
+ end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ParsiDigits
2
- VERSION = "0.2"
2
+ VERSION = "0.3"
3
3
  end
data/test/test_helper.rb CHANGED
@@ -1,2 +1,2 @@
1
1
  require 'test/unit'
2
- require 'parsi_digits'
2
+ require 'parsi-digits'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parsi-digits
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
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: 2012-08-14 00:00:00.000000000 Z
12
+ date: 2012-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -52,9 +52,10 @@ extra_rdoc_files: []
52
52
  files:
53
53
  - .gitignore
54
54
  - Gemfile
55
+ - Gemfile.lock
55
56
  - README.markdown
56
57
  - Rakefile
57
- - lib/parsi_digits.rb
58
+ - lib/parsi-digits.rb
58
59
  - lib/version.rb
59
60
  - parsi-digits.gemspec
60
61
  - test/parsi_digits_test.rb
data/lib/parsi_digits.rb DELETED
@@ -1,117 +0,0 @@
1
- # encoding: utf-8
2
-
3
- module ParsiDigits
4
- PARSI_DIGITS = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']
5
-
6
- class << self
7
- def to_parsi digit
8
- PARSI_DIGITS[digit.to_i] if digit =~ /[0-9]/
9
- end
10
-
11
- def to_western digit
12
- PARSI_DIGITS.index digit if digit =~ /[۰-۹]/
13
- end
14
-
15
- def locale_separator options={}
16
- locale = options[:locale]
17
- default = options[:default]
18
- default ||= (locale == :fa ? '/' : '.')
19
- begin
20
- I18n.t(:'number.format.separator', default: default, locale: locale)
21
- rescue
22
- default
23
- end
24
- end
25
- def fa_separator
26
- locale_separator locale: :fa
27
- end
28
- def en_separator
29
- locale_separator locale: :en
30
- end
31
-
32
- def locale_delimiter options={}
33
- locale = options[:locale]
34
- default = options[:default]
35
- default ||= (locale == :fa ? '٫' : ',')
36
- begin
37
- I18n.t(:'number.format.delimiter', default: default, locale: locale)
38
- rescue
39
- default
40
- end
41
- end
42
- def fa_delimiter
43
- locale_delimiter locale: :fa
44
- end
45
- def en_delimiter
46
- locale_delimiter locale: :en
47
- end
48
- end
49
- end
50
-
51
- class String
52
- def with_parsi_digits
53
- gsub(/\d/) { |d| ParsiDigits.to_parsi d }
54
- end
55
-
56
- def with_parsi_digits!
57
- gsub!(/\d/) { |d| ParsiDigits.to_parsi d }
58
- end
59
-
60
- def with_western_digits
61
- gsub(/[۰-۹]/) { |d| ParsiDigits.to_western d }
62
- end
63
-
64
- def with_western_digits!
65
- gsub!(/[۰-۹]/) { |d| ParsiDigits.to_western d }
66
- end
67
-
68
- def has_parsi_digits?
69
- self =~ /[۰-۹]/
70
- end
71
-
72
- def remove_delimiters options={locale: :fa}
73
- locale = options[:locale]
74
- delimiter = options[:delimiter]
75
- delimiter ||= ParsiDigits.locale_delimiter locale: locale
76
- gsub delimiter, ''
77
- end
78
-
79
- def remove_delimiters!
80
- locale = options[:locale]
81
- delimiter = options[:delimiter]
82
- delimiter ||= ParsiDigits.locale_delimiter locale: locale
83
- gsub! delimiter, ''
84
- end
85
-
86
- alias_method :western_to_i, :to_i
87
- def to_i base=10
88
- if has_parsi_digits?
89
- with_western_digits.western_to_i base
90
- else
91
- western_to_i base
92
- end
93
- end
94
-
95
- alias_method :western_to_f, :to_f
96
- def to_f
97
- if has_parsi_digits?
98
- separator = ParsiDigits.fa_separator
99
- with_western_digits.sub(separator, '.').western_to_f
100
- else
101
- western_to_f
102
- end
103
- end
104
- end
105
-
106
- class Integer
107
- def with_parsi_digits
108
- to_s.with_parsi_digits
109
- end
110
- end
111
-
112
- class Float
113
- def with_parsi_digits
114
- separator = ParsiDigits.fa_separator
115
- to_s.with_parsi_digits.sub '.', separator
116
- end
117
- end