ensurance 0.1.13 → 0.1.14

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,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6aaa5d41534827c37fa190c37c7568929c13e88d3500f733d28b43b4cc621e03
4
- data.tar.gz: 30242dba8d37e5aeb8ce64bde0cb7208d1e1ab2c85d1d422fc40dcba6bf9c770
3
+ metadata.gz: f9bfedd99e51ab369010ddd9c2ccf5281da7420da68de1e7656f1fbca6cbab7b
4
+ data.tar.gz: b43dc62d2a39d09d940d8c65ffd0c260b90303b8a4f30862c04cb708f8875d34
5
5
  SHA512:
6
- metadata.gz: 943ba9b6f2a6b72c0246bf5de1ebd93ab270be71ce767f3fef6934b0400251027f62e70d338c1d1ad005a7c500edc9b6e23ce44100deffd5cf3102e74e901e80
7
- data.tar.gz: 2dfcaadc992e93f4e4a4d68ff99c6bc1783a4879fbed35788162d46da40e4c95f1719ca4fb5e45c21a9d88571402c0ad46a9e3cac00367af2fd53924a1cff402
6
+ metadata.gz: 4231f5b79d2dd8c31c7cccead490173bc3e294864d1e0c245da9184848cefcbc234721d1bf36f35c227a12b7fbfafaf7918889312788de7c40403a6d69b409da
7
+ data.tar.gz: ad3dec83ad4b66b59a18c8adb0155e5b65c1a31c5ada7b3e4adda50e46df436a2ea25702406dfa14b30d57811c616abf3606d93923fd66742fa6257a8464f497
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ensurance (0.1.12)
4
+ ensurance (0.1.13)
5
5
  activesupport (>= 3, < 6)
6
6
 
7
7
  GEM
data/README.md CHANGED
@@ -54,21 +54,32 @@ In this way you can call it with a User object, or a user `id` and it works just
54
54
  Also adds ensurance features to `Hash`, `Time`, and `Date`
55
55
 
56
56
  ```
57
+ Time.ensure(nil) -> nil
57
58
  Time.ensure(Date.today) -> Date.today.beginning_of_day
58
59
  Time.ensure(1509556285) -> 2017-11-01 11:11:25 -0600
59
60
  Time.ensure("1509556285") -> 2017-11-01 11:11:25 -0600
60
61
  Time.ensure(DateTime.now) -> DateTime.now.to_time
61
- Time.ensure(nil) -> nil
62
62
  Time.ensure(1..4) -> ArgumentError "Unhandled Type for Time to ensure: Range"
63
+ Time.ensure(Time.now.to_s) -> Time.now [uses Time.parse()]
64
+ Time.ensure(Time.now.iso8601) -> Time.now [uses Time.parse()]
63
65
 
64
- Date.ensure(Date.today) -> Date.today
65
66
  Date.ensure(nil) -> nil
67
+ Date.ensure(Date.today) -> Date.today
66
68
  Date.ensure(1509556285) -> 2017-11-01
69
+ Date.ensure("1509556285") -> 2017-11-01
70
+ Date.ensure("2017-11-01") -> 2017-11-01 [uses Date.parse()]
71
+ Date.ensure("11/01/2017") -> 2017-11-01 [uses Date.parse()]
67
72
 
73
+ Hash.ensure(nil) -> nil
68
74
  Hash.ensure(<aHash>) -> <aHash>
69
75
  Hash.ensure(<json_string>) -> Hash
70
- Hash.ensure(nil) -> nil
71
76
  Hash.ensure(<an array>) -> <an array>.to_h
77
+
78
+ Array.ensure(nil) -> nil
79
+ Array.ensure([]) -> []
80
+ Array.ensure("1,2,4") -> ["1","2","4"]
81
+ Array.ensure("[1,2,4]") -> [1,2,4] (JSON string)
82
+ Array.ensure({a:1, b:2}) -> [[:a, 1], [:b, 2]]
72
83
  ```
73
84
 
74
85
  ### ActiveRecord
@@ -79,16 +90,17 @@ You can specify another field or fields to ensure by doing the following:
79
90
  class User < ApplicationRecord
80
91
  include Ensurance
81
92
 
82
- ensure_by :token <- totally optional
93
+ ensure_by :id, :token <- totally optional (:id is the default)
83
94
  end
84
95
 
85
- User.ensure(1) == User.find(1)
86
- User.ensure(<a user record>) -> <a user record>
96
+ User.ensure(nil) -> nil
97
+ User.ensure!(nil) -> nil
98
+ User.ensure!(1) == User.find(1)
99
+ User.ensure(1) == User.find_by_id(1)
100
+ User.ensure(<a user record>) -> <a user record> (nothing happens)
87
101
  User.ensure(<globalid>) == GlobalID::Locator.locate(<globalid>)
88
102
  User.ensure(<globalid string>) == GlobalID::Locator.locate(<globalid string>)
89
103
  User.ensure(<some token>) == User.where(token: <some token>).first
90
- User.ensure(nil) -> nil
91
- User.ensure!(nil) -> nil
92
104
  User.ensure!(<unknown_id>) -> ActiveRecord::RecordNotFound
93
105
  ```
94
106
 
@@ -17,7 +17,7 @@ module Ensurance
17
17
  thing.to_a
18
18
  when 'String'
19
19
  begin
20
- JSON.parse(thing).to_a
20
+ [JSON.parse(thing)].flatten
21
21
  rescue JSON::ParserError
22
22
  thing.split(',')
23
23
  end
@@ -1,3 +1,3 @@
1
1
  module Ensurance
2
- VERSION = '0.1.13'.freeze
2
+ VERSION = '0.1.14'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ensurance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.1.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sharpe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-08-23 00:00:00.000000000 Z
11
+ date: 2018-08-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport