Skip to content

Commit f3456ce

Browse files
committed
Now that the basic time and date parsing functions are test protected, make splitDateTime() return an object instead of an array to simplify the code a bit.
1 parent 353ff5e commit f3456ce

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

jquery-ui-timepicker-addon.js

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1826,7 +1826,7 @@
18261826
/*
18271827
* Splits datetime string into date and time substrings.
18281828
* Throws exception when date can't be parsed
1829-
* Returns [dateString, timeString]
1829+
* Returns {dateString: dateString, timeString: timeString}
18301830
*/
18311831
var splitDateTime = function(dateFormat, dateTimeString, dateSettings, timeSettings) {
18321832
try {
@@ -1840,10 +1840,10 @@
18401840
allPartsLen = allParts.length;
18411841

18421842
if (allPartsLen > 1) {
1843-
return [
1844-
allParts.splice(0,allPartsLen-timePartsLen).join(separator),
1845-
allParts.splice(0,timePartsLen).join(separator)
1846-
];
1843+
return {
1844+
dateString: allParts.splice(0,allPartsLen-timePartsLen).join(separator),
1845+
timeString: allParts.splice(0,timePartsLen).join(separator)
1846+
};
18471847
}
18481848

18491849
} catch (err) {
@@ -1861,13 +1861,19 @@
18611861
var dateStringLength = dateTimeString.length - (err.length - err.indexOf(':') - 2),
18621862
timeString = dateTimeString.substring(dateStringLength);
18631863

1864-
return [$.trim(dateTimeString.substring(0, dateStringLength)), $.trim(dateTimeString.substring(dateStringLength))];
1864+
return {
1865+
dateString: $.trim(dateTimeString.substring(0, dateStringLength)),
1866+
timeString: $.trim(dateTimeString.substring(dateStringLength))
1867+
};
18651868

18661869
} else {
18671870
throw err;
18681871
}
18691872
}
1870-
return [dateTimeString, ''];
1873+
return {
1874+
dateString: dateTimeString,
1875+
timeString: ''
1876+
};
18711877
};
18721878

18731879
/*
@@ -1878,21 +1884,19 @@
18781884
*/
18791885
var parseDateTimeInternal = function(dateFormat, timeFormat, dateTimeString, dateSettings, timeSettings) {
18801886
var date,
1881-
splitRes,
1882-
timeString,
1887+
parts,
18831888
parsedTime;
18841889

1885-
splitRes = splitDateTime(dateFormat, dateTimeString, dateSettings, timeSettings);
1886-
date = $.datepicker._base_parseDate(dateFormat, splitRes[0], dateSettings);
1887-
timeString = splitRes[1];
1890+
parts = splitDateTime(dateFormat, dateTimeString, dateSettings, timeSettings);
1891+
date = $.datepicker._base_parseDate(dateFormat, parts.dateString, dateSettings);
18881892

1889-
if (timeString === '') {
1893+
if (parts.timeString === '') {
18901894
return {
18911895
date: date
18921896
};
18931897
}
18941898

1895-
parsedTime = $.datepicker.parseTime(timeFormat, timeString, timeSettings);
1899+
parsedTime = $.datepicker.parseTime(timeFormat, parts.timeString, timeSettings);
18961900

18971901
if (!parsedTime) {
18981902
throw 'Wrong time format';

test/jquery-ui-timepicker-addon_spec.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ describe('datetimepicker', function() {
206206

207207
result = $.timepicker._util._splitDateTime('', inputDateTimeString, {}, {});
208208

209-
expect(result).toEqual([expectedDateString, expectedTimeString]);
209+
expect(result).toEqual({dateString: expectedDateString, timeString: expectedTimeString});
210210
});
211211

212212
it('splits a date and time into its parts using a supplied separator', function() {
@@ -216,7 +216,7 @@ describe('datetimepicker', function() {
216216

217217
result = $.timepicker._util._splitDateTime('', inputDateTimeString, {}, {separator: separator});
218218

219-
expect(result).toEqual([expectedDateString, expectedTimeString]);
219+
expect(result).toEqual({dateString: expectedDateString, timeString: expectedTimeString});
220220
});
221221

222222
it('splits a date and time into its parts when there are multiple separators in the time format', function() {
@@ -229,13 +229,13 @@ describe('datetimepicker', function() {
229229

230230
result = $.timepicker._util._splitDateTime('', inputDateTimeString, {}, timeSettings);
231231

232-
expect(result).toEqual([expectedDateString, alternateTimeString]);
232+
expect(result).toEqual({dateString: expectedDateString, timeString: alternateTimeString});
233233
});
234234

235235
it('splits only a date into itself', function() {
236236
var result = $.timepicker._util._splitDateTime('', expectedDateString, {}, {});
237237

238-
expect(result).toEqual([expectedDateString, '']);
238+
expect(result).toEqual({dateString: expectedDateString, timeString: ''});
239239
});
240240

241241
// TODO: Should test the error path, but not sure what throws the error or what the message looks like.

0 commit comments

Comments
 (0)