time_splitter 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e95cb957e2b377227f2267ded2a018b24ec88aa9
4
- data.tar.gz: 8a56421b51019ea0a86a494f071b47e4d953c8f2
3
+ metadata.gz: 0e9f28853c1647a7fafd682ebcda847bc8a81753
4
+ data.tar.gz: b791b89d4b08f3612c6d7276d4ffe5fd88267ac3
5
5
  SHA512:
6
- metadata.gz: 2846d29799635f3d33faaa61678c6e8fb04034a7b0e7f0cddaa896da92cbf6f4ddf9e79bbed2f7200ac7ae6f87dffb4736974439c5e8152096f778df8f001dd9
7
- data.tar.gz: 12ebd84275f87d033f08c1c78d36b64d6e92938db113deeb2e6bc01499f718445b22b9b3239123587d46572af101a23105218c21b3e466e3b747f3a8ae471ba1
6
+ metadata.gz: 2dbb0a180afa136483c6a7130217fd5790d605e3a7887470763d7e116f0662609ed2ffd6bd4b87af69b90cbf6ca4bde8cb3ba9c811921c53ba92d989f5b09836
7
+ data.tar.gz: 5e69333f8465f15f41a62d51973578b8fab4f6709739ff7ac2d5488c8bdb5bab22a1725cf9a5d95c0f34f3cb77949e945556f309ade65e903a4da3f39211eeca
@@ -1,7 +1,9 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.0.0
4
+ - '2.2'
5
+ - '2.1'
6
+ - '2.0'
5
7
  - 1.9.3
6
8
 
7
9
  script: bundle exec rspec spec
data/README.md CHANGED
@@ -45,7 +45,7 @@ In your view:
45
45
 
46
46
  Add your js datepicker and you're good to go. (Of course, this also works with standard Rails form helpers).
47
47
 
48
- If you are using Rails < 4.0 and/or are not using StrongParameters, you must add the `attr_accessor` for any of the split attributes you want to permit mass-assignment. TimeSplitter provides the methods that can be directly accessed, but will not automatically whitelist any of them for mass-assignment.
48
+ If you are using Rails < 4.0 and/or are not using StrongParameters, you must add `attr_accessible` for any of the split attributes you want to permit mass-assignment. TimeSplitter provides the methods that can be directly accessed, but will not automatically whitelist any of them for mass-assignment.
49
49
 
50
50
  ## Options
51
51
 
@@ -19,7 +19,13 @@ module TimeSplitter
19
19
 
20
20
  define_method("#{attr}_date=") do |date|
21
21
  return unless date.present?
22
- date = Date.parse(date.to_s)
22
+ unless date.is_a?(Date) || date.is_a?(Time)
23
+ if options[:date_format]
24
+ date = Date.strptime(date.to_s, options[:date_format])
25
+ else
26
+ date = Date.parse(date.to_s)
27
+ end
28
+ end
23
29
  self.send("#{attr}=", self.send("#{attr}_or_new").change(year: date.year, month: date.month, day: date.day))
24
30
  end
25
31
 
@@ -35,7 +41,14 @@ module TimeSplitter
35
41
 
36
42
  define_method("#{attr}_time=") do |time|
37
43
  return unless time.present?
38
- time = Time.parse(time) unless time.is_a?(Date) || time.is_a?(Time)
44
+
45
+ unless time.is_a?(Date) || time.is_a?(Time)
46
+ if options[:time_format]
47
+ time = Time.strptime(time, options[:time_format])
48
+ else
49
+ time = Time.parse(time)
50
+ end
51
+ end
39
52
  self.send("#{attr}=", self.send("#{attr}_or_new").change(hour: time.hour, min: time.min))
40
53
  end
41
54
 
@@ -1,3 +1,3 @@
1
1
  module TimeSplitter
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -71,6 +71,18 @@ describe TimeSplitter::Accessors do
71
71
  expect(model.starts_at).to eq Time.new(1111, 1, 1, 0, 0, 0, '+00:00')
72
72
  end
73
73
 
74
+ it "can set from a string when format is modified" do
75
+ Model.split_accessor(:starts_at, date_format: "%m-%d-%Y")
76
+ model.starts_at_date = "12-31-1111"
77
+ expect(model.starts_at).to eq Time.new(1111, 12, 31, 0, 0, 0, '+00:00')
78
+ end
79
+
80
+ it "can set from a date when format is modified" do
81
+ Model.split_accessor(:starts_at, date_format: "%m-%d-%Y")
82
+ model.starts_at_date = Time.new(1111, 12, 31, 0, 0, 0, '+00:00')
83
+ expect(model.starts_at).to eq Time.new(1111, 12, 31, 0, 0, 0, '+00:00')
84
+ end
85
+
74
86
  it "is nil if the string is empty" do
75
87
  model.starts_at_date = ""
76
88
  expect(model.starts_at).to be_nil
@@ -202,6 +214,12 @@ describe TimeSplitter::Accessors do
202
214
  expect(model.starts_at_time).to eq "01:44PM"
203
215
  end
204
216
 
217
+ it "can set from a string when format is modified" do
218
+ Model.split_accessor(:starts_at, time_format: "%k-%M")
219
+ model.starts_at_time = "23-59"
220
+ expect(model.starts_at).to eq Time.new(2222, 12, 22, 23, 59, 0, '+00:00')
221
+ end
222
+
205
223
  it 'sets the hour and minute of #starts_at' do
206
224
  model.starts_at_time = '08:33'
207
225
  expect(model.starts_at).to eq Time.new(2222, 12, 22, 8, 33, 0, '+00:00')
@@ -18,5 +18,5 @@ Gem::Specification.new do |s|
18
18
  s.require_paths = ["lib"]
19
19
 
20
20
  s.add_development_dependency 'activesupport'
21
- s.add_development_dependency 'rspec', '~> 2.11'
21
+ s.add_development_dependency 'rspec', '~> 3.2'
22
22
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time_splitter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michi Huber
@@ -9,36 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-13 00:00:00.000000000 Z
12
+ date: 2015-05-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - '>='
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0'
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - '>='
25
+ - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: rspec
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '2.11'
34
+ version: '3.2'
35
35
  type: :development
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '2.11'
41
+ version: '3.2'
42
42
  description: Add split accessors for Date/Time/DateTime objects to easily set the
43
43
  date, time, hour, or minute.
44
44
  email:
@@ -48,8 +48,8 @@ executables: []
48
48
  extensions: []
49
49
  extra_rdoc_files: []
50
50
  files:
51
- - .gitignore
52
- - .travis.yml
51
+ - ".gitignore"
52
+ - ".travis.yml"
53
53
  - Gemfile
54
54
  - LICENSE
55
55
  - README.md
@@ -69,17 +69,17 @@ require_paths:
69
69
  - lib
70
70
  required_ruby_version: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - '>='
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
74
  version: '0'
75
75
  required_rubygems_version: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - '>='
77
+ - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  requirements: []
81
81
  rubyforge_project:
82
- rubygems_version: 2.1.7
82
+ rubygems_version: 2.4.6
83
83
  signing_key:
84
84
  specification_version: 4
85
85
  summary: Use `datetime_accessor :starts_at` to provide `starts_at_date`, `starts_at_time`,