hublot_ar 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjdiMDY5MWNkYWJlZDAxOTU3YjQyYzdkYzcyNmM3YTBkYmZmMGFiMQ==
5
+ data.tar.gz: !binary |-
6
+ YzQ0ODgzMTUyNmFlNzYxMzFkNzhiYTAzNTgzZDUwYzU4OThlMDQxMQ==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MDI2MDllN2I3MWU4NjM2ZmI0YjExNWVhODY1ZTU1OTNmZDAyM2IzMWJiM2Zj
10
+ OTUyYmZlZGRmM2FmMzVlZTBiOGQ0ODcxMWE2YTliNDVhMTcwNjYwY2Q0ZjVl
11
+ ZjhmNTVkYWNmZWFmZDVkMDcyZWM4MDBhODNhZmUwN2Q4MTk0ODE=
12
+ data.tar.gz: !binary |-
13
+ MzBkM2E0MTgzMzllNWMxYjE2N2Y5NDllN2UyNmIxZWIxYzNmZjlmYmY5Y2Jl
14
+ OWI3ZTc1ZmZjYTU2MjJmZjA4ZGNkOWZiNmY5YTFkMDQ4N2YzNDdmNjZmNDli
15
+ YzU5ZDNjMmRmMTFhY2U3ODQ5NmE0MjIxMGY1OTEzMWI1OTVkYWI=
data/.gitignore ADDED
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in hublot_ar.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Yehia Abo El-Nga
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,42 @@
1
+ # Hublot Arabic
2
+
3
+ Hublot makes Facebook-style datetime-contextual datetimes a cinch for your ActiveRecord objects.
4
+
5
+ ## Examples
6
+
7
+ #### Comment created just now:
8
+
9
+ الآن
10
+
11
+ #### Comment created seconds or minutes ago
12
+
13
+ منذ ١٠ ثواني
14
+ منذ ٢ دقيقه
15
+
16
+ #### Comment created today
17
+
18
+ اليوم، الساعه ٥:٣٠ م
19
+
20
+ #### Comment created yesterday
21
+
22
+ الأمس، الساعه ٥:٣٠ م
23
+
24
+ #### Comment created this week
25
+
26
+ الأحد، الساعه ٥:٣٠ م
27
+
28
+ #### Comment created last week
29
+
30
+ الأحد الماضي، الساعه ٥:٣٠ م
31
+
32
+ ## Use
33
+
34
+ gem "hublot_ar"
35
+
36
+ Call the pretty method in your views:
37
+
38
+ <%= @comment.created_at.pretty %>
39
+
40
+ ## Sources
41
+
42
+ This gem is forked from brettshollenberger/Hublot. Some localization ideas were extracted from Azzurrio/hublot.
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/hublot_ar.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'hublot_ar/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "hublot_ar"
8
+ spec.version = HublotAr::VERSION
9
+ spec.authors = ["Yehia Abo El-Nga"]
10
+ spec.email = ["yehia@ewsalo.com"]
11
+ spec.description = %q{This is the arabic version of Hublot gem}
12
+ spec.summary = %q{This is the arabic version of Hublot gem}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ end
@@ -0,0 +1,155 @@
1
+ # encoding: utf-8
2
+ module HublotAr
3
+
4
+ # Clock argument for testing; defaults to Time
5
+ def pretty(clock=Time.now)
6
+ @expired = (clock-self).to_i
7
+ @today = clock.strftime('%A')
8
+ @created = self.to_time.strftime('%A')
9
+
10
+ @days = {
11
+ "Monday" => 1,
12
+ "Tuesday" => 2,
13
+ "Wednesday" => 3,
14
+ "Thursday" => 4,
15
+ "Friday" => 5,
16
+ "Saturday" => 6,
17
+ "Sunday" => 7
18
+ }
19
+
20
+ @days_ar = {
21
+ "Monday" => "الإثنين",
22
+ "Tuesday" => "الثلاثاء",
23
+ "Wednesday" => "الأربعاء",
24
+ "Thursday" => "الخميس",
25
+ "Friday" => "الجمعة",
26
+ "Saturday" => "السبت",
27
+ "Sunday" => "الأحد"
28
+ }
29
+
30
+ return just_now if just_now?
31
+ return a_second_ago if a_second_ago?
32
+ return seconds_ago if seconds_ago?
33
+ return a_minute_ago if a_minute_ago?
34
+ return minutes_ago if minutes_ago?
35
+ return an_hour_ago if an_hour_ago?
36
+ return today if is_today?
37
+ return yesterday if is_yesterday?
38
+ return this_week if this_week?
39
+ return last_week if last_week?
40
+ return datetimefiesta
41
+ end
42
+
43
+ private
44
+ def just_now
45
+ "الآن"
46
+ end
47
+
48
+ def just_now?
49
+ @expired == 0
50
+ end
51
+
52
+ def a_second_ago
53
+ "منذ ثانية"
54
+ end
55
+
56
+ def a_second_ago?
57
+ @expired == 1
58
+ end
59
+
60
+ def seconds_ago
61
+ "منذ #{ar_num @expired} ثواني"
62
+ end
63
+
64
+ def seconds_ago?
65
+ @expired >= 2 && @expired <= 59
66
+ end
67
+
68
+ def a_minute_ago
69
+ "منذ دقيقة"
70
+ end
71
+
72
+ def a_minute_ago?
73
+ @expired >= 60 && @expired <= 119 #120 = 2 minutes
74
+ end
75
+
76
+ def minutes_ago
77
+ "منذ #{ar_num (@expired/60)} دقائق"
78
+ end
79
+
80
+ def minutes_ago?
81
+ @expired >= 120 && @expired <= 3599
82
+ end
83
+
84
+ def an_hour_ago
85
+ "منذ ساعة"
86
+ end
87
+
88
+ def an_hour_ago?
89
+ @expired >= 3600 && @expired <= 7199 # 3600 = 1 hour
90
+ end
91
+
92
+ def today
93
+ "اليوم، الساعة " + localize_time(timeify)
94
+ end
95
+
96
+ def timeify
97
+ "#{self.to_time.strftime("%l:%M %p")}"
98
+ end
99
+
100
+ def is_today?
101
+ @days[@today] - @days[@created] == 0 && @expired >= 7200 && @expired <= 82800
102
+ end
103
+
104
+ def yesterday
105
+ "الأمس، الساعة " + localize_time(timeify)
106
+ end
107
+
108
+ def is_yesterday?
109
+ (@days[@today] - @days[@created] == 1 || @days[@created] + @days[@today] == 8) && @expired <= 172800
110
+ end
111
+
112
+ def this_week
113
+ localize_day(@created) + "، الساعة " + localize_time(timeify)
114
+ end
115
+
116
+ def this_week?
117
+ @expired <= 604800 && @days[@today] - @days[@created] != 0
118
+ end
119
+
120
+ def last_week
121
+ localize_day(@created) + "الماضي، الساعة " + localize_time(timeify)
122
+ end
123
+
124
+ def last_week?
125
+ @expired >= 518400 && @expired <= 1123200
126
+ end
127
+
128
+ def datetimefiesta
129
+ self.strftime("%A, %B %e at %l:%M %p")
130
+ end
131
+
132
+ def localize_time(timeify)
133
+ clock = timeify.split(' ').first.split(':').map{|e| ar_num(e.to_i)}.join(':')
134
+ time = timeify.split(' ').last == 'AM' ? "ص" : "م"
135
+ " #{clock} #{time}"
136
+ end
137
+
138
+ def localize_day(day)
139
+ @days_ar[day]
140
+ end
141
+
142
+ def ar_num(nums)
143
+ nums.to_s
144
+ .gsub('0', '٠')
145
+ .gsub('1', '١')
146
+ .gsub('2', '٢')
147
+ .gsub('3', '٣')
148
+ .gsub('4', '٤')
149
+ .gsub('5', '٥')
150
+ .gsub('6', '٦')
151
+ .gsub('7', '٧')
152
+ .gsub('8', '٨')
153
+ .gsub('9', '٩')
154
+ end
155
+ end
@@ -0,0 +1,9 @@
1
+ require 'hublot_ar'
2
+
3
+ module HublotAr
4
+ class Rails < Rails::Railtie
5
+ initializer 'hublot_ar.initialize' do
6
+ ActiveSupport::TimeWithZone.send :include, HublotAr
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,3 @@
1
+ module HublotAr
2
+ VERSION = "0.0.1"
3
+ end
data/lib/hublot_ar.rb ADDED
@@ -0,0 +1,7 @@
1
+ require "hublot_ar/version"
2
+ require "hublot_ar/pretty"
3
+ require "hublot_ar/rails" if defined?(Rails)
4
+
5
+ module HublotAr
6
+ # Your code goes here...
7
+ end
metadata ADDED
@@ -0,0 +1,82 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hublot_ar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Yehia Abo El-Nga
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-08-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: This is the arabic version of Hublot gem
42
+ email:
43
+ - yehia@ewsalo.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - Gemfile
50
+ - LICENSE.txt
51
+ - README.md
52
+ - Rakefile
53
+ - hublot_ar.gemspec
54
+ - lib/hublot_ar.rb
55
+ - lib/hublot_ar/pretty.rb
56
+ - lib/hublot_ar/rails.rb
57
+ - lib/hublot_ar/version.rb
58
+ homepage: ''
59
+ licenses:
60
+ - MIT
61
+ metadata: {}
62
+ post_install_message:
63
+ rdoc_options: []
64
+ require_paths:
65
+ - lib
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirements: []
77
+ rubyforge_project:
78
+ rubygems_version: 2.1.4
79
+ signing_key:
80
+ specification_version: 4
81
+ summary: This is the arabic version of Hublot gem
82
+ test_files: []