jalalidate 0.3.1 → 0.3.2

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.
@@ -1,25 +1,25 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- jalalidate (0.2.3)
4
+ jalalidate (0.3.2)
5
5
 
6
6
  GEM
7
7
  remote: http://rubygems.org/
8
8
  specs:
9
- diff-lcs (1.1.2)
10
- rspec (2.1.0)
11
- rspec-core (~> 2.1.0)
12
- rspec-expectations (~> 2.1.0)
13
- rspec-mocks (~> 2.1.0)
14
- rspec-core (2.1.0)
15
- rspec-expectations (2.1.0)
16
- diff-lcs (~> 1.1.2)
17
- rspec-mocks (2.1.0)
9
+ diff-lcs (1.2.2)
10
+ rspec (2.13.0)
11
+ rspec-core (~> 2.13.0)
12
+ rspec-expectations (~> 2.13.0)
13
+ rspec-mocks (~> 2.13.0)
14
+ rspec-core (2.13.1)
15
+ rspec-expectations (2.13.0)
16
+ diff-lcs (>= 1.1.3, < 2.0)
17
+ rspec-mocks (2.13.1)
18
18
 
19
19
  PLATFORMS
20
20
  ruby
21
21
 
22
22
  DEPENDENCIES
23
- bundler (~> 1.0.0)
23
+ bundler (~> 1.3.0)
24
24
  jalalidate!
25
- rspec (~> 2.1.0)
25
+ rspec (~> 2.13.0)
data/README.md CHANGED
@@ -5,6 +5,9 @@
5
5
 
6
6
  ## History
7
7
 
8
+ #### 0.3.2 - 8.APR.2013
9
+ * Making JalaliDate class thread safe, courtesy of [Jahangir Zinedine](https://github.com/jzinedine)
10
+
8
11
  #### 0.3.1 - 26.APR.2011
9
12
  * Added ruby 1.9 compatibility, courtesy of [Reza](https://github.com/ryco)
10
13
 
@@ -21,11 +24,11 @@
21
24
  * Updated gemspec file for rubygems.org
22
25
  * Updated some documentations
23
26
 
24
- #### 0.02 - 08.AUG.2008
27
+ #### 0.02 - 8.AUG.2008
25
28
  * Added jalali to geregorian date convertor.
26
29
  * Added JalaliDate class and ported Date class method to JalaliDate
27
30
 
28
- #### 0.01 - 07.AUG.2008
31
+ #### 0.01 - 7.AUG.2008
29
32
  * Planning the project
30
33
 
31
34
 
data/bin/jcal CHANGED
File without changes
@@ -19,6 +19,6 @@ Gem::Specification.new do |s|
19
19
  s.require_paths = ["lib"]
20
20
  s.extra_rdoc_files = [ "LICENSE", "README.md"]
21
21
  s.rdoc_options = ["--charset=UTF-8"]
22
- s.add_development_dependency(%q<rspec>, ["~> 2.1.0"])
23
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
22
+ s.add_development_dependency(%q<rspec>, ["~> 2.13.0"])
23
+ s.add_development_dependency(%q<bundler>, ["~> 1.3.0"])
24
24
  end
@@ -276,6 +276,7 @@ class JalaliDate
276
276
  private #-------------------------------------------------------------------------
277
277
 
278
278
  def gregorian_to_jalali(year, month, day) # :nodoc:
279
+ jj=0
279
280
  gy = year - 1600
280
281
  gm = month - 1
281
282
  gd = day - 1
@@ -298,19 +299,20 @@ class JalaliDate
298
299
  11.times do |i|
299
300
  if j_day_no >= JDaysInMonth[i]
300
301
  j_day_no -= JDaysInMonth[i]
301
- $j = i + 1
302
+ jj = i + 1
302
303
  else
303
- $j = i
304
+ jj = i
304
305
  break
305
306
  end
306
307
  end
307
- jm = $j + 1
308
+ jm = jj + 1
308
309
  jd = j_day_no + 1
309
310
 
310
311
  [jy, jm, jd]
311
312
  end
312
313
 
313
314
  def jalali_to_gregorian(year,month,day) # :nodoc:
315
+ gg=0
314
316
  jy = year - 979
315
317
  jm = month - 1
316
318
  jd = day - 1
@@ -344,13 +346,13 @@ class JalaliDate
344
346
  leap_day = (i==1 && leap) ? 1 : 0
345
347
  if g_day_no >= (GDaysInMonth[i] + leap_day )
346
348
  g_day_no -= (GDaysInMonth[i] + leap_day )
347
- $g = i + 1
349
+ gg = i + 1
348
350
  else
349
- $g = i
351
+ gg = i
350
352
  break
351
353
  end
352
354
  end
353
- gm = $g + 1
355
+ gm = gg + 1
354
356
  gd = g_day_no + 1
355
357
 
356
358
  [gy,gm,gd]
@@ -1,3 +1,3 @@
1
1
  module Jalalidate
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -32,9 +32,9 @@ describe JalaliDate do
32
32
 
33
33
  it "should return today, yesterday, and tomorrow date according to jalali calendar" do
34
34
  Date.stub!(:today).and_return(Date.new(2010,1,1))
35
- JalaliDate.today.should == JalaliDate.new(1388,10,11)
36
- JalaliDate.yesterday.should == JalaliDate.new(1388,10,10)
37
- JalaliDate.tomorrow.should == JalaliDate.new(1388,10,12)
35
+ JalaliDate.today.should === JalaliDate.new(1388,10,11)
36
+ JalaliDate.yesterday.should === JalaliDate.new(1388,10,10)
37
+ JalaliDate.tomorrow.should === JalaliDate.new(1388,10,12)
38
38
  end
39
39
 
40
40
  it "should distinguish invalid jalali dates" do
@@ -57,39 +57,39 @@ describe JalaliDate do
57
57
 
58
58
  it "should convert to string, array and hash correctly" do
59
59
  jdate = JalaliDate.new(1388,10,11)
60
- jdate.to_s.should == "1388/10/11"
61
- jdate.to_a.should == [1388,10,11]
62
- jdate.to_hash.should == {:year => 1388, :month => 10, :day => 11}
60
+ jdate.to_s.should === "1388/10/11"
61
+ jdate.to_a.should === [1388,10,11]
62
+ jdate.to_hash.should === {:year => 1388, :month => 10, :day => 11}
63
63
  end
64
64
 
65
65
  it "should be able to add and substract days from the currect jalai date object" do
66
66
  jdate = JalaliDate.new(1388,10,11)
67
67
  five_days_later = jdate + 5
68
68
  twenty_days_ago = jdate - 20
69
- five_days_later.should == JalaliDate.new(1388,10,16)
70
- twenty_days_ago.should == JalaliDate.new(1388,9,21)
69
+ five_days_later.should === JalaliDate.new(1388,10,16)
70
+ twenty_days_ago.should === JalaliDate.new(1388,9,21)
71
71
  end
72
72
 
73
73
  it "should be able to compare two jalali dates" do
74
74
  jdate = JalaliDate.new(1388,10,11)
75
75
  next_month_jdate = JalaliDate.new(1388,11,11)
76
- next_month_jdate.<=>(jdate).should == 1
77
- jdate.<=>(next_month_jdate).should == -1
76
+ next_month_jdate.<=>(jdate).should === 1
77
+ jdate.<=>(next_month_jdate).should === -1
78
78
  jdate.<=>(jdate).should == 0
79
79
  end
80
80
 
81
81
  it "should now its next and previous dates" do
82
82
  jdate = JalaliDate.new(1388,10,11)
83
- jdate.next.should == JalaliDate.new(1388,10,12)
84
- jdate.previous.should == JalaliDate.new(1388,10,10)
83
+ jdate.next.should === JalaliDate.new(1388,10,12)
84
+ jdate.previous.should === JalaliDate.new(1388,10,10)
85
85
  end
86
86
 
87
87
  it "should be able to move the month forward and backward" do
88
88
  jdate = JalaliDate.new(1388,10,11)
89
89
  five_month_later = jdate >> 5
90
90
  five_month_ago = jdate << 5
91
- five_month_later.should == JalaliDate.new(1389,3,11)
92
- five_month_ago.should == JalaliDate.new(1388,5,11)
91
+ five_month_later.should === JalaliDate.new(1389,3,11)
92
+ five_month_ago.should === JalaliDate.new(1388,5,11)
93
93
  end
94
94
 
95
95
  it "should be able to cycle through dates in different ways, namely, step, upto and downto" do
@@ -99,13 +99,13 @@ describe JalaliDate do
99
99
  jdate.step( jdate + 10 , 2) do |jd|
100
100
  days_string += jd.day.to_s
101
101
  end
102
- days_string.should == "101214161820"
102
+ days_string.should === "101214161820"
103
103
 
104
104
  days_string = ""
105
105
  jdate.upto(jdate+5) do |jd|
106
106
  days_string += jd.day.to_s
107
107
  end
108
- days_string.should == "101112131415"
108
+ days_string.should === "101112131415"
109
109
 
110
110
  days_string = ""
111
111
  jdate.downto(jdate-5) do |jd|
@@ -115,10 +115,10 @@ describe JalaliDate do
115
115
  end
116
116
 
117
117
  it "should return a correct year day based on Jalali Calendar" do
118
- JalaliDate.new(1388,1,1).yday.should == 1
119
- JalaliDate.new(1388,12,29).yday.should == 365
120
- JalaliDate.new(1387,12,30).yday.should == 366
121
- JalaliDate.new(1388,9,17).yday.should == 263
118
+ JalaliDate.new(1388,1,1).yday.should === 1
119
+ JalaliDate.new(1388,12,29).yday.should === 365
120
+ JalaliDate.new(1387,12,30).yday.should === 366
121
+ JalaliDate.new(1388,9,17).yday.should === 263
122
122
  end
123
123
 
124
124
  it "should be able to print jalali date in different formats" do
@@ -131,15 +131,15 @@ describe JalaliDate do
131
131
  end
132
132
 
133
133
  it "should be able for format %H %I %M %p %S %X %Z correctly if initiallized with time" do
134
- JalaliDate.new(1388,2,15,5,50,10).strftime("%H").should == "05"
135
- JalaliDate.new(1388,2,15,18,50,10).strftime("%H %I").should == "18 06"
136
- JalaliDate.new(1388,2,15,12,50,10).strftime("%H %I").should == "12 00"
137
- JalaliDate.new(1388,2,15,12,50,10).strftime("%H %I %M %S").should == "12 00 50 10"
138
- JalaliDate.new(1388,2,15,5,50,10).strftime("%p").should == "قبل از ظهر"
139
- JalaliDate.new(1388,2,15,15,50,10).strftime("%p").should == "بعد از ظهر"
140
- JalaliDate.new(1388,2,15,15,50,10).strftime("%X").should == "15:50:10"
141
- JalaliDate.new(1388,2,15,15,50,10).strftime("%X").should == "15:50:10"
142
- JalaliDate.new(1388,2,15,15,50,10,"CET",3600).strftime("%Z").should == "CET"
134
+ JalaliDate.new(1388,2,15,5,50,10).strftime("%H").should === "05"
135
+ JalaliDate.new(1388,2,15,18,50,10).strftime("%H %I").should === "18 06"
136
+ JalaliDate.new(1388,2,15,12,50,10).strftime("%H %I").should === "12 00"
137
+ JalaliDate.new(1388,2,15,12,50,10).strftime("%H %I %M %S").should === "12 00 50 10"
138
+ JalaliDate.new(1388,2,15,5,50,10).strftime("%p").should === "قبل از ظهر"
139
+ JalaliDate.new(1388,2,15,15,50,10).strftime("%p").should === "بعد از ظهر"
140
+ JalaliDate.new(1388,2,15,15,50,10).strftime("%X").should === "15:50:10"
141
+ JalaliDate.new(1388,2,15,15,50,10).strftime("%X").should === "15:50:10"
142
+ JalaliDate.new(1388,2,15,15,50,10,"CET",3600).strftime("%Z").should === "CET"
143
143
  time = Time.now
144
144
  JalaliDate.new(time).strftime("%Z").should == time.zone
145
145
  end
@@ -3,8 +3,6 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
3
 
4
4
  require 'jalalidate'
5
5
  require 'rspec'
6
- require 'rspec/autorun'
7
6
 
8
7
  RSpec.configure do |config|
9
-
10
8
  end
metadata CHANGED
@@ -1,65 +1,58 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: jalalidate
3
- version: !ruby/object:Gem::Version
4
- hash: 17
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.2
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 3
9
- - 1
10
- version: 0.3.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Allen A. Bargi
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-04-26 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2013-04-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 11
29
- segments:
30
- - 2
31
- - 1
32
- - 0
33
- version: 2.1.0
20
+ - !ruby/object:Gem::Version
21
+ version: 2.13.0
34
22
  type: :development
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: bundler
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 2.13.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: bundler
32
+ requirement: !ruby/object:Gem::Requirement
40
33
  none: false
41
- requirements:
34
+ requirements:
42
35
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 23
45
- segments:
46
- - 1
47
- - 0
48
- - 0
49
- version: 1.0.0
36
+ - !ruby/object:Gem::Version
37
+ version: 1.3.0
50
38
  type: :development
51
- version_requirements: *id002
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.3.0
52
46
  description: A library for working with Jalali Calendar (a.k.a Persian Calendar)
53
47
  email: allen.bargi@gmail.com
54
- executables:
48
+ executables:
55
49
  - jcal
56
50
  - jdate
57
51
  extensions: []
58
-
59
- extra_rdoc_files:
52
+ extra_rdoc_files:
60
53
  - LICENSE
61
54
  - README.md
62
- files:
55
+ files:
63
56
  - .gitignore
64
57
  - Gemfile
65
58
  - Gemfile.lock
@@ -77,37 +70,29 @@ files:
77
70
  - spec/spec_helper.rb
78
71
  homepage: http://github.com/aziz/jalalidate
79
72
  licenses: []
80
-
81
73
  post_install_message:
82
- rdoc_options:
74
+ rdoc_options:
83
75
  - --charset=UTF-8
84
- require_paths:
76
+ require_paths:
85
77
  - lib
86
- required_ruby_version: !ruby/object:Gem::Requirement
78
+ required_ruby_version: !ruby/object:Gem::Requirement
87
79
  none: false
88
- requirements:
89
- - - ">="
90
- - !ruby/object:Gem::Version
91
- hash: 3
92
- segments:
93
- - 0
94
- version: "0"
95
- required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
85
  none: false
97
- requirements:
98
- - - ">="
99
- - !ruby/object:Gem::Version
100
- hash: 3
101
- segments:
102
- - 0
103
- version: "0"
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
104
90
  requirements: []
105
-
106
91
  rubyforge_project: jalalidate
107
- rubygems_version: 1.7.2
92
+ rubygems_version: 1.8.25
108
93
  signing_key:
109
94
  specification_version: 3
110
95
  summary: A library for working with Jalali Calendar (a.k.a Persian Calendar)
111
- test_files:
96
+ test_files:
112
97
  - spec/jalalidate_spec.rb
113
98
  - spec/spec_helper.rb