time_jawn 1.0.1 → 1.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
- YmI2YzM1ZmYwNzAwZTY5ZWY2ZDYyNzRkNGI1M2NjNmI2ZWEwMzk0YQ==
4
+ N2Q3Zjk3MjhhNGY0OGY2MTg5YzUxMWU2NDlmZmM0MjdmMzI4NmM2NQ==
5
5
  data.tar.gz: !binary |-
6
- MWVmNzIwNjY0MDc2MGJkZDUxMzE4OTNhZDgzYTEzYzNmYTU2NDFhNw==
6
+ ZjQ2MzVhNjJiNjlkYjFlZDAyOGU5NzJhNDRmMDg1OGJkYWRjNDNmZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- NjgyMGIyYTRiYzY5NTQ4YzExMTgzYWYxZDQ5Y2E0NDc4NjhhMDQwNjQ0NDhm
10
- MTZkYTc5OTVhMTdiYzA4NjUzZDMyYTZiMzhmYjllZjAwMTdhNzYzOWQ3MWEw
11
- NDgxM2MxNDFjOTcxNTcyZTA4NzFjMTJjMDFmOTUwMzhiNjRiM2E=
9
+ YzNiYWNhNjZkMzBjYzM2M2JjZmU1MzdhZjQ0MDE3ODFkYjAzNDMyODhkYTgw
10
+ MjE5NmZjOWE4ODVjZDY5ZTU3NmE1YmFmMjAwZWU0YmNmNDBlZmE1NmQwYzk4
11
+ YmIxMDk3YTA2NGUwNWEyOWM4N2FhNTBlNzM3NWIzNzBiYmI1ZWU=
12
12
  data.tar.gz: !binary |-
13
- NTg2OWRhZDE0Y2FmODI5MmQ1M2M2MDVkMDIzZmU0YzM0NzQ3YTk4MTJmOTRk
14
- MTFmOThlMWQzNWIwOTQ0ZGJhNmFmOWNkNTYwMjBkNzg3YzkwYTRhZWFiMjA0
15
- ODI2YzRlMmEyNjgxOWNiMmQ3YjM3OTIxN2E3OTU0ODg4MjZhNTU=
13
+ NTFjMDlhYTE2NTUwYmU0MmJhMzdhOWZlNDkzNzFhMzg3NzZhYWJjODk0MGIz
14
+ NWVmODdlOWZhNzM4OTRkNWE4YjdiNGZiZmI2ODBiNTg2NDdjNTQ5NDc2ZmE0
15
+ ZTA0NzA0ZWE1YmMwOTY0ZGU2MmY4NTM2N2I5MTAyMGU3ZDcwZTY=
@@ -44,12 +44,18 @@ module TimeJawn
44
44
  # Defines methods that will attached to all ActiveRecord classes.
45
45
  module ClassMethods
46
46
  include TimeJawnPrivateClassMethods
47
+ attr_reader :time_zone_attribute_name
47
48
  # When called it loads the methods located in InstanceMethods.
48
49
  # It is typically included in a model's rb file so that instances of that class gain the InstanceMethods at each instantiation.
49
50
  # class Event<ActiveRecord::Base
50
51
  # has_time_zone
51
52
  # end
52
- def has_time_zone
53
+ # Optionally you may pass the name of your time zone attribute in as a symbol.
54
+ # class Event<ActiveRecord::Base
55
+ # has_time_zone :this_is_my_time_zone
56
+ # end
57
+ def has_time_zone(time_zone_attribute_name=:time_zone)
58
+ @time_zone_attribute_name = time_zone_attribute_name
53
59
  send :include, InstanceMethods
54
60
  end
55
61
  end
@@ -103,14 +109,14 @@ module TimeJawn
103
109
  # converts a time object into it's local counter part (they will have the same value but differnt presentation.)
104
110
  def _to_local(time)
105
111
  ActiveSupport::Deprecation.warn "_to_local will be made private in a future version."
106
- time.in_time_zone(self.time_zone)
112
+ time.in_time_zone(self.send(self.class.time_zone_attribute_name))
107
113
  end
108
114
 
109
115
  # Given a string that looks like a time. It will convert that string into a time object that matches the time but with
110
116
  # the instances time zone appended.
111
117
  def _add_zone(time_string)
112
118
  ActiveSupport::Deprecation.warn "_add_zone will be made private in a future version."
113
- Time.zone = self.time_zone
119
+ Time.zone = self.send(self.class.time_zone_attribute_name)
114
120
  Time.zone.parse(time_string)
115
121
  end
116
122
 
@@ -190,3 +190,23 @@ describe Happening do
190
190
  end
191
191
  end
192
192
  end
193
+
194
+ describe Event do
195
+ before do
196
+ @event1 = Event.find_by_name('Eastern Time (US & Canada)')
197
+ end
198
+ context "Event should have time_jawn methods even though it has a non_conventional attribute" do
199
+ subject { @event1 }
200
+
201
+ it { should respond_to :local_start_time }
202
+ it { should respond_to :local_created_at }
203
+ it { should respond_to :local_updated_at }
204
+ it { should respond_to :local_start_time= }
205
+ it { should respond_to :local_created_at= }
206
+ it { should respond_to :local_updated_at= }
207
+ it { should respond_to :current_time }
208
+ it { should respond_to :_to_local }
209
+ it { should respond_to :_add_zone }
210
+ it { should respond_to :_change_zone }
211
+ end
212
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_jawn
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Platt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-30 00:00:00.000000000 Z
11
+ date: 2013-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord