wiser_timezone 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NTQyN2U3NWM0NjAyY2VlYTNlYWMxM2Q4N2E1NGI5ZTBiMDg0YzNiMQ==
4
+ ZWY0ZDI0OTA5NjY2NmFkMGQ1NTVjZDIxODFjZmI4ZjMxMmIyOGI3OA==
5
5
  data.tar.gz: !binary |-
6
- NmNmYjlhMTQyYWU2MGYyNGFkYTc5NTk0Y2FkZTc3YWUzMzJhODFmMg==
6
+ MTg1ZGJkOTAzNGZiNTA5MGQxYjY1NDIwZGJlZjlhZWZkNTE0NjczZA==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- Y2IxYTJjZDk0N2VlNWRjZGFkNmU5MGVlNGJiMDdkOWI2NWM2ODJkOWJiMjg1
10
- M2Q5ZDI3OGMxZjcwZTVjNDQ3ZTFiNWZlOTZjNDAyNWY1NDliMzE5NDUyNGIx
11
- ZDQ2MjJjZWEyOTBkMDRlNjcwZDhjODA2Zjg4YmM0ZmFjZThhZDM=
9
+ ZGMwYzNkMDhkZTkxYzc1ZWUwOGIzMWNiMDU0MzExYjM2MWZiYmRmNzhlY2I3
10
+ NWJkZDhmYTlkZjQyNmMwNWIyNDgwNjZhMGUwMjkwMTU2ZjdiODkxZTQwOWVi
11
+ NDdlODRhMGY0NDEwN2U3YTU2MjgwYmUzNDkxZTQ5OTUzZGUxZjg=
12
12
  data.tar.gz: !binary |-
13
- ODdjODQ5NDMyMGUxYWY1Yjc4YzkzMzhlYTdjZDM0YThlZmFmMmE1YWNjM2Nk
14
- ZjUzNTViNDY4MDM3YzJhM2I3MDE3YjllMTNhMmQ3YjVhYTYxYjcwMWJjMjUx
15
- YTA4NzdhNWI1YWJmY2Y0ZWRjYmUzZGUwYTc3NDI2YjU2ZjZjODA=
13
+ NWRjOGQ1YWNkMDBhOTMyMDRlN2MzNjU3OWM0MDkwODNkZTRlN2VhOWU4YmEy
14
+ YzFmN2RjNzUzZmIwMzY0NjE5MTIwYTNjYTcxODgxODI3NjQyZjcxNTI5YTUw
15
+ NjZmMTc4ODc3MmJlN2YwODkyYmQzZDU1YzY1YmQwNzQ0NmY0MmU=
data/README.md CHANGED
@@ -16,7 +16,7 @@ You can do normal gem installation for `wiser_timezone` from your terminal:
16
16
 
17
17
  or add this line in your Gemfile:
18
18
 
19
- gem 'wiser_timezone'
19
+ gem 'wiser_timezone', '~> 0.1.1'
20
20
 
21
21
  Be sure to restart your application if it is already running.
22
22
 
@@ -85,6 +85,15 @@ Or even format the value:
85
85
  <%= wiser_timezone(@post.created_at).strftime('%Y-%m-%d %H:%M:%S') %>
86
86
  // Return: 2014-03-15 02:37:07
87
87
 
88
+ ### Expand
89
+
90
+ You can use the *WiserTimezone* helpers in your controller, just include the library in your `ApplicationController`:
91
+
92
+ include WiserTimezone::WiserTimezoneHelper
93
+ class ApplicationController < ActionController::Base
94
+ # More Codes
95
+ end
96
+
88
97
  ### Extra
89
98
 
90
99
  You can get the current timezone using the `current_timezone` method:
@@ -93,6 +102,12 @@ You can get the current timezone using the `current_timezone` method:
93
102
  <%= current_timezone %>
94
103
  // Return: (GMT+08:00) Beijing
95
104
 
105
+ You can get the current timezone offset using the `current_timezone_offset` method:
106
+
107
+ My timezone is:
108
+ <%= current_timezone_offset %>
109
+ // Return: GMT+8
110
+
96
111
 
97
112
  ## Contributing
98
113
 
@@ -1,5 +1,11 @@
1
1
  $(document).ready(function(){
2
2
  wiser_timezone_reload();
3
+
4
+ $(window).resize(function(){
5
+ if($('#wiser_timezone_container').is(':visible')){
6
+ $('body').css('margin-top', $('#wiser_timezone_container').height() + 'px')
7
+ }
8
+ })
3
9
  });
4
10
 
5
11
  var wiser_timezone_reload = function(){
@@ -7,12 +13,15 @@ var wiser_timezone_reload = function(){
7
13
  browser_offset = (-(new Date()).getTimezoneOffset() / 60).toString();
8
14
  setting_offset = $('#wiser_timezone_space').data('offset')
9
15
 
10
-
11
16
  if(browser_offset != setting_offset){
12
- $('body').css('margin-top', '50px')
13
- $('#wiser_timezone_container').show()
17
+ $(window).resize()
14
18
  url = $('#wiser_timezone_link').attr('href')
15
- $('#wiser_timezone_link').attr('href', url + '?offset=' + encodeURIComponent(browser_offset))
19
+ if(!$('#wiser_timezone_link').hasClass('wiser_timezone_link')){
20
+ $('#wiser_timezone_link').addClass('wiser_timezone_link')
21
+ $('#wiser_timezone_link').attr('href', url + '?offset=' + encodeURIComponent(browser_offset))
22
+ hours_offset = (new Date()).getTimezoneOffset() / -60
23
+ $('#wiser_timezone_space').html($('#wiser_timezone_space').html().replace('~TZ~','GMT+' + hours_offset))
24
+ }
16
25
  }else{
17
26
  $('#wiser_timezone_container').remove()
18
27
  }
@@ -10,11 +10,12 @@
10
10
  #wiser_timezone_container #wiser_timezone_space {
11
11
  /* Layout */
12
12
  padding: 10px 15px;
13
+ line-height: 1.2em;
13
14
  /* Font */
14
15
  font-family: Arial, 'Liberation Sans', 'DejaVu Sans', sans-serif;
15
16
  color: #555;
16
17
  /* Border */
17
- border-bottom: 1px solid #3e5e71;
18
+ border-bottom: 1px solid #ddd;
18
19
  /* Background */
19
20
  background: #f5f9ff;
20
21
  }
@@ -27,4 +28,7 @@
27
28
  /* Font */
28
29
  text-decoration: none;
29
30
  color: #3e5e71;
31
+ }
32
+ .no_wrap {
33
+ white-space: nowrap;
30
34
  }
@@ -2,8 +2,12 @@ module WiserTimezone
2
2
  class WiserTimezoneController < ApplicationController
3
3
  def set_timezone
4
4
  if params[:offset].present?
5
- if current_user.present? && current_user.try(:timezone).present?
6
- current_user.update_attribute(:timezone, params[:offset])
5
+ if current_user.present?
6
+ begin
7
+ current_user.update_attribute(:timezone, params[:offset])
8
+ rescue
9
+ raise "You probably need to run the migration. Please review the documentation."
10
+ end
7
11
  else
8
12
  cookies[:wiser_timezone_offset] = params[:offset]
9
13
  end
@@ -5,6 +5,12 @@ module WiserTimezone
5
5
  return ActiveSupport::TimeZone[offset.to_i]
6
6
  end
7
7
 
8
+ def current_timezone_offset
9
+ timezone_str = current_timezone.to_s
10
+ offset_str = timezone_str[timezone_str.index('(')+1..-1].split(':').first()
11
+ return "#{offset_str[0..3]}#{offset_str[4..-1].to_i}"
12
+ end
13
+
8
14
  def wiser_timezone(date)
9
15
  begin
10
16
  date_time = date.to_datetime
@@ -17,26 +23,28 @@ module WiserTimezone
17
23
  def wiser_timezone_initialize
18
24
  link = link_to('Click Here', set_timezone_path, :method => 'post', :data => {:offset => "#{offset}"}, :id => 'wiser_timezone_link')
19
25
  if offset.present?
20
- msg = "Your computer's timezone does not appear to match the current setting #{current_timezone}. #{link} to update the timezone."
26
+ msg = "Your computer's timezone does not appear to match the current setting #{current_timezone}. <span class='no_wrap'>#{link} to update the timezone to ~TZ~.</span>"
21
27
  else
22
- msg = "You do not have timezone in your user setting. #{link} to save your time zone."
28
+ msg = "You do not have timezone in your user settings. <span class='no_wrap'>#{link} to set your timezone to ~TZ~.</span>"
23
29
  end
24
30
  space = "<div id='wiser_timezone_space' data-offset='#{offset}'>#{msg}</div>"
25
- html = "<div id='wiser_timezone_container' style='display:none;'>#{space}</div>"
31
+ html = "<div id='wiser_timezone_container' style='display:block;'>#{space}</div>"
26
32
  return html.html_safe
27
33
  end
28
34
 
29
35
  private
30
36
 
31
37
  def offset
32
- if current_user.present? && current_user.try(:timezone).present?
33
- offset = current_user.timezone
38
+ if current_user.present?
39
+ if current_user.try(:timezone).present?
40
+ @timezone_offset ||= current_user.timezone
41
+ else
42
+ @timezone_offset = nil
43
+ end
34
44
  elsif cookies[:wiser_timezone_offset].present?
35
- offset = cookies[:wiser_timezone_offset]
36
- else
37
- offset = 0
45
+ @timezone_offset ||= cookies[:wiser_timezone_offset]
38
46
  end
39
- return offset.to_i
47
+ return @timezone_offset
40
48
  end
41
49
  end
42
50
  end
@@ -1,3 +1,3 @@
1
1
  module WiserTimezone
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wiser_timezone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kenneth John Balgos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-03-15 00:00:00.000000000 Z
11
+ date: 2014-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler