countdowner 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,25 +1,27 @@
1
1
  (function() {
2
2
 
3
3
  $(function() {
4
- var $countdowner, removeAfterEnd,
4
+ var $countdowner, updateCountdowner,
5
5
  _this = this;
6
6
  $countdowner = $('#countdowner');
7
7
  if ($countdowner.length) {
8
- removeAfterEnd = function() {
9
- if ($countdowner.data('end_at') < new Date().toISOString()) {
8
+ updateCountdowner = function() {
9
+ var now;
10
+ console.log('updateCountdowner');
11
+ now = new Date().toISOString();
12
+ if ($countdowner.data('start_at') <= now) {
13
+ $countdowner.show();
14
+ }
15
+ if ($countdowner.data('end_at') < now) {
10
16
  $countdowner.remove();
11
- if (_this.checkEnd != null) {
12
- clearInterval(_this.checkEnd);
17
+ if (_this.updateCountdownerTimer != null) {
18
+ return clearInterval(_this.updateCountdownerTimer);
13
19
  }
14
- return true;
15
20
  }
16
21
  };
17
- if (!removeAfterEnd()) {
18
- $.timeago.settings.allowFuture = true;
19
- $countdowner.find('time').timeago();
20
- $countdowner.show();
21
- return this.checkEnd = setInterval(removeAfterEnd, 60000);
22
- }
22
+ $.timeago.settings.allowFuture = true;
23
+ $countdowner.find('time').timeago();
24
+ return this.updateCountdownerTimer = setInterval(updateCountdowner, 2000);
23
25
  }
24
26
  });
25
27
 
@@ -1,13 +1,13 @@
1
1
  $ ->
2
2
  $countdowner = $('#countdowner')
3
3
  if $countdowner.length
4
- removeAfterEnd = =>
5
- if $countdowner.data('end_at') < new Date().toISOString()
4
+ updateCountdowner = =>
5
+ now = new Date().toISOString()
6
+ if $countdowner.data('start_at') <= now
7
+ $countdowner.show()
8
+ if $countdowner.data('end_at') < now
6
9
  $countdowner.remove()
7
- clearInterval(@checkEnd) if @checkEnd?
8
- true
9
- unless removeAfterEnd()
10
- $.timeago.settings.allowFuture = true
11
- $countdowner.find('time').timeago()
12
- $countdowner.show()
13
- @checkEnd = setInterval(removeAfterEnd, 60000)
10
+ clearInterval(@updateCountdownerTimer) if @updateCountdownerTimer?
11
+ $.timeago.settings.allowFuture = true
12
+ $countdowner.find('time').timeago()
13
+ @updateCountdownerTimer = setInterval(updateCountdowner, 30000)
@@ -1,9 +1,12 @@
1
1
  module Countdowner
2
2
  module ActionView
3
3
  def countdowner(options = {})
4
- message = Countdowner::Message.current or return
5
- options[:id] = 'countdowner'
6
- options[:'data-end_at'] = Countdowner::Datetime.new(message.end_at).iso
4
+ message = Countdowner::Message.current.first or return
5
+ options.merge!(
6
+ :id => 'countdowner',
7
+ :'data-end_at' => Countdowner::Datetime.new(message.end_at).iso,
8
+ :'data-start_at' => Countdowner::Datetime.new(message.start_at).iso
9
+ )
7
10
  options[:style] = 'display:none' if options.delete(:hidden_initially)
8
11
  content_tag(:div, options) do
9
12
  time = Countdowner::Datetime.new(message.target)
@@ -6,8 +6,7 @@ module Countdowner
6
6
  validate :ensure_valid_periods
7
7
 
8
8
  def self.current
9
- find(:first, :order => "target",
10
- :conditions => ["target > :now and end_at > :now and start_at < :now", {:now => Time.now.utc}])
9
+ find(:all, :order => "target", :conditions => ["target > :now and end_at > :now", {:now => Time.now.utc}])
11
10
  end
12
11
 
13
12
  private
@@ -1,3 +1,3 @@
1
1
  module Countdowner
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: countdowner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -156,7 +156,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
156
156
  version: '0'
157
157
  segments:
158
158
  - 0
159
- hash: 2446644807931660482
159
+ hash: 3910419754330681090
160
160
  required_rubygems_version: !ruby/object:Gem::Requirement
161
161
  none: false
162
162
  requirements:
@@ -165,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
165
165
  version: '0'
166
166
  segments:
167
167
  - 0
168
- hash: 2446644807931660482
168
+ hash: 3910419754330681090
169
169
  requirements: []
170
170
  rubyforge_project:
171
171
  rubygems_version: 1.8.24