to_bn 1.0.0 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 7f5d634c39d602f1990fe919500505586c8c8747
4
+ data.tar.gz: 62f11a7f1b78be225f2654381188f25083ad3761
5
+ SHA512:
6
+ metadata.gz: aa0b6724c48ce501f451bc1e7616088fdf87ee7c3968236326ce5e0a906c5a75dd8c1327411b5338ad7284ec8a7c6caf8fbac8137bd47c869a0f4e7439ba95e5
7
+ data.tar.gz: 40e3dc2bcefa81462ca8020a8cfe727dd557723c5b716f96d5ea0573862813d98047cab39ba1468a9b70de676e3e44f7c9c3281ad953bd557f79f04735f580f3
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ spec/reports
15
15
  test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
+ .idea
data/README.md CHANGED
@@ -31,7 +31,11 @@ Converting String (Containing Date)
31
31
  "Fri".to_bn :parse_date => true # => "শুক্র"
32
32
  "Boishakh 1432".to_bn :parse_date => true # => "বৈশাখ ১৪৩২"
33
33
 
34
+ Converting Number to Words:
34
35
 
36
+ "1 23".to_bn :in_words => true # => "এক দুইতিন"
37
+ 567123.to_bn :in_words => true # => "পাঁচ লক্ষ সাতষট্টি হাজার এক শত তেইশ"
38
+ 567123.05.to_bn :in_words => true # => "পাঁচ লক্ষ সাতষট্টি হাজার এক শত তেইশ দশমিক শূন্য পাঁচ"
35
39
  ## Contributing
36
40
 
37
41
  1. Fork it
data/lib/to_bn/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module ToBn
2
- VERSION = "1.0.0"
2
+ VERSION = "2.0.0"
3
3
  end
data/lib/to_bn.rb CHANGED
@@ -3,80 +3,127 @@
3
3
  require "to_bn/version"
4
4
 
5
5
  class String
6
- def to_bn(params = {:parse_date => false})
7
- unless params[:parse_date] == true
8
- return gsub(/[1234567890]/, '1'=>'', '2'=>'', '3'=>'', '4'=>'', '5'=>'', '6'=>'', '7'=>'', '8'=>'', '9'=>'', '0'=>'')
6
+ def to_bn(params = {:parse_date => false, :in_words => false})
7
+ if params[:in_words] == true
8
+ bn = gsub(/[1234567890]/, '1'=>'এক', '2'=>'দুই', '3'=>'তিন', '4'=>'চার', '5'=>'পাঁচ', '6'=>'ছয়', '7'=>'সাত', '8'=>'আট', '9'=>'নয়', '0'=>'শূন্য')
9
9
  else
10
- date = to_bn
11
- date.gsub!('January', 'জানুয়ারী')
12
- date.gsub!('February', 'ফেব্রুয়ারী')
13
- date.gsub!('March', 'মার্চ')
14
- date.gsub!('April', 'এপ্রিল')
15
- date.gsub!('May', 'মে')
16
- date.gsub!('June', 'জুন')
17
- date.gsub!('July', 'জুলাই')
18
- date.gsub!('August', 'অগাষ্ট')
19
- date.gsub!('September', 'সেপ্টেম্বর')
20
- date.gsub!('October', 'অক্টোবর')
21
- date.gsub!('November', 'নভেম্বর')
22
- date.gsub!('December', 'ডিসেম্বর')
10
+ bn = gsub(/[1234567890]/, '1'=>'১', '2'=>'২', '3'=>'৩', '4'=>'৪', '5'=>'৫', '6'=>'৬', '7'=>'৭', '8'=>'৮', '9'=>'৯', '0'=>'০')
11
+ end
12
+
13
+ if params[:parse_date] == true
14
+ bn.gsub!(/January/i, 'জানুয়ারী')
15
+ bn.gsub!(/February/i, 'ফেব্রুয়ারী')
16
+ bn.gsub!(/March/i, 'মার্চ')
17
+ bn.gsub!(/April/i, 'এপ্রিল')
18
+ bn.gsub!(/May/i, 'মে')
19
+ bn.gsub!(/June/i, 'জুন')
20
+ bn.gsub!(/July/i, 'জুলাই')
21
+ bn.gsub!(/August/i, 'অগাষ্ট')
22
+ bn.gsub!(/September/i, 'সেপ্টেম্বর')
23
+ bn.gsub!(/October/i, 'অক্টোবর')
24
+ bn.gsub!(/November/i, 'নভেম্বর')
25
+ bn.gsub!(/December/i, 'ডিসেম্বর')
23
26
 
24
- date.gsub!('Jan', 'জানুয়ারী')
25
- date.gsub!('Feb', 'ফেব্রুয়ারী')
26
- date.gsub!('Mar', 'মার্চ')
27
- date.gsub!('Apr', 'এপ্রিল')
28
- date.gsub!('May', 'মে')
29
- date.gsub!('Jun', 'জুন')
30
- date.gsub!('Jul', 'জুলাই')
31
- date.gsub!('Aug', 'অগাষ্ট')
32
- date.gsub!('Sep', 'সেপ্টেম্বর')
33
- date.gsub!('Oct', 'অক্টোবর')
34
- date.gsub!('Nov', 'নভেম্বর')
35
- date.gsub!('Dec', 'ডিসেম্বর')
27
+ bn.gsub!(/Jan/i, 'জানুয়ারী')
28
+ bn.gsub!(/Feb/i, 'ফেব্রুয়ারী')
29
+ bn.gsub!(/Mar/i, 'মার্চ')
30
+ bn.gsub!(/Apr/i, 'এপ্রিল')
31
+ bn.gsub!(/May/i, 'মে')
32
+ bn.gsub!(/Jun/i, 'জুন')
33
+ bn.gsub!(/Jul/i, 'জুলাই')
34
+ bn.gsub!(/Aug/i, 'অগাষ্ট')
35
+ bn.gsub!(/Sep/i, 'সেপ্টেম্বর')
36
+ bn.gsub!(/Oct/i, 'অক্টোবর')
37
+ bn.gsub!(/Nov/i, 'নভেম্বর')
38
+ bn.gsub!(/Dec/i, 'ডিসেম্বর')
36
39
 
37
- date.gsub!('Saturday', 'শনিবার')
38
- date.gsub!('Sunday', 'রবিবার')
39
- date.gsub!('Monday', 'সোমবার')
40
- date.gsub!('Tuesday', 'মঙ্গলবার')
41
- date.gsub!('Wednesday', 'বুধবার')
42
- date.gsub!('Thursday', 'বৃহস্পতিবার')
43
- date.gsub!('Friday', 'শুক্রবার')
40
+ bn.gsub!(/Saturday/i, 'শনিবার')
41
+ bn.gsub!(/Sunday/i, 'রবিবার')
42
+ bn.gsub!(/Monday/i, 'সোমবার')
43
+ bn.gsub!(/Tuesday/i, 'মঙ্গলবার')
44
+ bn.gsub!(/Wednesday/i, 'বুধবার')
45
+ bn.gsub!(/Thursday/i, 'বৃহস্পতিবার')
46
+ bn.gsub!(/Friday/i, 'শুক্রবার')
44
47
 
45
- date.gsub!('Sat', 'শনি')
46
- date.gsub!('Sun', 'রবি')
47
- date.gsub!('Mon', 'সোম')
48
- date.gsub!('Tues', 'মঙ্গল')
49
- date.gsub!('Tue', 'মঙ্গল')
50
- date.gsub!('Wed', 'বুধ')
51
- date.gsub!('Thurs', 'বৃহস্পতি')
52
- date.gsub!('Thu', 'বৃহস্পতি')
53
- date.gsub!('Fri', 'শুক্র')
48
+ bn.gsub!(/Sat/i, 'শনি')
49
+ bn.gsub!(/Sun/i, 'রবি')
50
+ bn.gsub!(/Mon/i, 'সোম')
51
+ bn.gsub!(/Tues/i, 'মঙ্গল')
52
+ bn.gsub!(/Tue/i, 'মঙ্গল')
53
+ bn.gsub!(/Wed/i, 'বুধ')
54
+ bn.gsub!(/Thurs/i, 'বৃহস্পতি')
55
+ bn.gsub!(/Thu/i, 'বৃহস্পতি')
56
+ bn.gsub!(/Fri/i, 'শুক্র')
54
57
 
55
- date.gsub!('Boishakh', 'বৈশাখ')
56
- date.gsub!('Joishtho', 'জ্যৈষ্ঠ')
57
- date.gsub!('Ashar', 'আষাঢ়')
58
- date.gsub!('Srabon', 'শ্রাবণ')
59
- date.gsub!('Bhadro', 'ভাদ্র')
60
- date.gsub!('Ashin', 'আশ্বিন')
61
- date.gsub!('Kartrik','কার্তিক')
62
- date.gsub!('Agrohayon','অগ্রহায়ণ')
63
- date.gsub!('Poush', 'পৌষ')
64
- date.gsub!('Magh', 'মাঘ')
65
- date.gsub!('Falgun', 'ফাল্গুন ')
66
- date.gsub('Chaitro', 'চৈত্র')
58
+ bn.gsub!(/Boishakh/i, 'বৈশাখ')
59
+ bn.gsub!(/Joishtho/i, 'জ্যৈষ্ঠ')
60
+ bn.gsub!(/Ashar/i, 'আষাঢ়')
61
+ bn.gsub!(/Srabon/i, 'শ্রাবণ')
62
+ bn.gsub!(/Bhadro/i, 'ভাদ্র')
63
+ bn.gsub!(/Ashin/i, 'আশ্বিন')
64
+ bn.gsub!(/Kartrik/i,'কার্তিক')
65
+ bn.gsub!(/Agrohayon/i,'অগ্রহায়ণ')
66
+ bn.gsub!(/Poush/i, 'পৌষ')
67
+ bn.gsub!(/Magh/i, 'মাঘ')
68
+ bn.gsub!(/Falgun/i, 'ফাল্গুন ')
69
+ bn.gsub!(/Chaitro/i, 'চৈত্র')
67
70
  end
71
+
72
+ return bn
68
73
  end
69
74
  end
70
75
 
71
76
  class Integer < Numeric
72
- def to_bn
73
- self.to_s.to_bn
77
+ def to_bn(params = {:in_words => false})
78
+ if params[:in_words] == true
79
+ list = %w(শূন্য এক দুই তিন চার পাঁচ ছয় সাত আট নয় দশ এগার বারো তেরো চৌদ্দ পনেরো ষোল সতের আঠারো উনিশ বিশ একুশ বাইশ তেইশ চৌব্বিশ পঁচিশ ছাব্বিশ সাতাশ আঠাশ উনত্রিশ ত্রিশ একত্রিশ বত্রিশ তেত্রিশ চৌত্রিশ পঁয়ত্রিশ ছত্রিশ সাঁইত্রিশ আটত্রিশ উনচল্লিশ চল্লিশ একচল্লিশ বিয়াল্লিশ তেতাল্লিশ চুয়াল্লিশ পঁয়তাল্লিশ ছেচল্লিশ সাতচল্লিশ আটচল্লিশ উনপঞ্চাশ পঞ্চাশ একান্ন বায়ান্ন তিপ্পান্ন চুয়ান্ন পঞ্চান্ন ছাপ্পান্ন সাতান্ন আটান্ন উনষাট ষাট একষট্টি বাষট্টি তেষট্টি চৌষট্টি পঁয়ষট্টি ছেষট্টি সাতষট্টি আটষট্টি উনসত্তর সত্তর একাত্তর বাহাত্তর তিয়াত্তর চুয়াত্তর পঁচাত্তর ছিয়াত্তর সাতাত্তর আটাত্তর উনআশি আশি একাশি বিরাশি তিরাশি চুরাশি পঁচাশি ছিয়াশি সাতাশি আটাশি উননব্বই নব্বই একানব্বই বিরানব্বই তিরানব্বই চুরানব্বই পঁচানব্বই ছিয়ানব্বই সাতানব্বই আটানব্বই নিরানব্বই)
80
+ if self < 100
81
+ return list[self]
82
+ else
83
+ if self >= 10000000
84
+ if self % 10000000 > 0
85
+ return (self/10000000).to_bn(params) + " কোটি " + (self % 10000000).to_bn(params)
86
+ else
87
+ return (self/10000000).to_bn(params) + " কোটি "
88
+ end
89
+ elsif self >= 100000
90
+ if self % 100000 > 0
91
+ return (self/100000).to_bn(params) + " লক্ষ " + (self % 100000).to_bn(params)
92
+ else
93
+ return (self/100000).to_bn(params) + " লক্ষ"
94
+ end
95
+ elsif self >= 1000
96
+ if self % 1000 > 0
97
+ return (self/1000).to_bn(params) + " হাজার " + (self % 1000).to_bn(params)
98
+ else
99
+ return (self/1000).to_bn(params) + " হাজার"
100
+ end
101
+ elsif self >= 100
102
+ if self % 100 > 0
103
+ return (self/100).to_bn(params) + " শত " + (self % 100).to_bn(params)
104
+ else
105
+ return (self/100).to_bn(params) + " শত"
106
+ end
107
+ end
108
+ end
109
+ else
110
+ return self.to_s.to_bn params
111
+ end
74
112
  end
75
113
  end
76
114
 
77
115
  class Float < Numeric
78
- def to_bn
79
- self.to_s.to_bn
116
+ def to_bn(params = {:in_words => false})
117
+ if params[:in_words] == true
118
+ parts = self.to_s.split(".")
119
+ if parts.count > 1
120
+ self.to_i.to_bn(params) + ' দশমিক ' + parts[1].scan(/./).join(' ').to_bn(params)
121
+ else
122
+ return self.to_i.to_bn(params)
123
+ end
124
+ else
125
+ self.to_s.to_bn params
126
+ end
80
127
  end
81
128
  end
82
129
 
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: to_bn
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
5
- prerelease:
4
+ version: 2.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Ali Hasan Imam
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-09-11 00:00:00.000000000 Z
11
+ date: 2014-04-23 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,17 +27,15 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Ruby Gem to convert number and date from English to Bengali.
@@ -61,32 +56,25 @@ files:
61
56
  homepage: https://github.com/codedefine/to_bn.git
62
57
  licenses:
63
58
  - MIT
59
+ metadata: {}
64
60
  post_install_message:
65
61
  rdoc_options: []
66
62
  require_paths:
67
63
  - lib
68
64
  required_ruby_version: !ruby/object:Gem::Requirement
69
- none: false
70
65
  requirements:
71
- - - ! '>='
66
+ - - '>='
72
67
  - !ruby/object:Gem::Version
73
68
  version: '0'
74
- segments:
75
- - 0
76
- hash: 2418807504506722400
77
69
  required_rubygems_version: !ruby/object:Gem::Requirement
78
- none: false
79
70
  requirements:
80
- - - ! '>='
71
+ - - '>='
81
72
  - !ruby/object:Gem::Version
82
73
  version: '0'
83
- segments:
84
- - 0
85
- hash: 2418807504506722400
86
74
  requirements: []
87
75
  rubyforge_project:
88
- rubygems_version: 1.8.25
76
+ rubygems_version: 2.2.2
89
77
  signing_key:
90
- specification_version: 3
78
+ specification_version: 4
91
79
  summary: Bengali Conversion
92
80
  test_files: []