ensurance 0.1.11 → 0.1.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +2 -3
- data/Gemfile.lock +25 -25
- data/Rakefile +3 -3
- data/bin/console +3 -3
- data/ensurance.gemspec +18 -20
- data/lib/ensurance.rb +5 -6
- data/lib/ensurance/array_ensure.rb +32 -0
- data/lib/ensurance/date_ensure.rb +9 -9
- data/lib/ensurance/hash_ensure.rb +7 -7
- data/lib/ensurance/time_ensure.rb +7 -10
- data/lib/ensurance/version.rb +2 -2
- metadata +48 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24900d5e0ba09dc7d49614c4127aa5e60d78f4e03c24679f41ae9a54333f2f26
|
4
|
+
data.tar.gz: 8894c3ecc01c1d5abd59e6d2aa4dd9a8bec1b04fced86d2f26d45c1a5f32350f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 89156b067f5f907fe599f0ed5a4f50bce5f2460c62afeb7457d25e4f0867f3886ac2da7779c77f3f1e568cb2762b02bb41ed1d0ada3c3372d83e1108970636af
|
7
|
+
data.tar.gz: 0dfde2a6f8fbd245c757bc4560c6cdf45aa7c30ad4356a47fb41565d1fd96b0e432c16cdefaec59e19666a161f1963c85d3a5743624e3fdca527a50de56ee8e8
|
data/Gemfile
CHANGED
@@ -1,7 +1,6 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
|
3
|
+
git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
4
4
|
|
5
5
|
# Specify your gem's dependencies in ensurance.gemspec
|
6
6
|
gemspec
|
7
|
-
|
data/Gemfile.lock
CHANGED
@@ -1,49 +1,49 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ensurance (0.1.
|
4
|
+
ensurance (0.1.11)
|
5
5
|
activesupport (>= 3, < 6)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
activemodel (5.1
|
11
|
-
activesupport (= 5.1
|
12
|
-
activerecord (5.1
|
13
|
-
activemodel (= 5.1
|
14
|
-
activesupport (= 5.1
|
15
|
-
arel (
|
16
|
-
activesupport (5.1
|
10
|
+
activemodel (5.2.1)
|
11
|
+
activesupport (= 5.2.1)
|
12
|
+
activerecord (5.2.1)
|
13
|
+
activemodel (= 5.2.1)
|
14
|
+
activesupport (= 5.2.1)
|
15
|
+
arel (>= 9.0)
|
16
|
+
activesupport (5.2.1)
|
17
17
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
18
|
-
i18n (
|
18
|
+
i18n (>= 0.7, < 2)
|
19
19
|
minitest (~> 5.1)
|
20
20
|
tzinfo (~> 1.1)
|
21
|
-
arel (
|
21
|
+
arel (9.0.0)
|
22
22
|
awesome_print (1.8.0)
|
23
23
|
concurrent-ruby (1.0.5)
|
24
24
|
diff-lcs (1.3)
|
25
25
|
globalid (0.4.1)
|
26
26
|
activesupport (>= 4.2.0)
|
27
|
-
i18n (
|
27
|
+
i18n (1.1.0)
|
28
28
|
concurrent-ruby (~> 1.0)
|
29
|
-
minitest (5.
|
29
|
+
minitest (5.11.3)
|
30
30
|
rake (10.5.0)
|
31
|
-
rspec (3.
|
32
|
-
rspec-core (~> 3.
|
33
|
-
rspec-expectations (~> 3.
|
34
|
-
rspec-mocks (~> 3.
|
35
|
-
rspec-core (3.
|
36
|
-
rspec-support (~> 3.
|
37
|
-
rspec-expectations (3.
|
31
|
+
rspec (3.8.0)
|
32
|
+
rspec-core (~> 3.8.0)
|
33
|
+
rspec-expectations (~> 3.8.0)
|
34
|
+
rspec-mocks (~> 3.8.0)
|
35
|
+
rspec-core (3.8.0)
|
36
|
+
rspec-support (~> 3.8.0)
|
37
|
+
rspec-expectations (3.8.1)
|
38
38
|
diff-lcs (>= 1.2.0, < 2.0)
|
39
|
-
rspec-support (~> 3.
|
40
|
-
rspec-mocks (3.
|
39
|
+
rspec-support (~> 3.8.0)
|
40
|
+
rspec-mocks (3.8.0)
|
41
41
|
diff-lcs (>= 1.2.0, < 2.0)
|
42
|
-
rspec-support (~> 3.
|
43
|
-
rspec-support (3.
|
42
|
+
rspec-support (~> 3.8.0)
|
43
|
+
rspec-support (3.8.0)
|
44
44
|
sqlite3 (1.3.13)
|
45
45
|
thread_safe (0.3.6)
|
46
|
-
tzinfo (1.2.
|
46
|
+
tzinfo (1.2.5)
|
47
47
|
thread_safe (~> 0.1)
|
48
48
|
|
49
49
|
PLATFORMS
|
@@ -60,4 +60,4 @@ DEPENDENCIES
|
|
60
60
|
sqlite3 (>= 1.3.0, < 4)
|
61
61
|
|
62
62
|
BUNDLED WITH
|
63
|
-
1.16.
|
63
|
+
1.16.2
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'ensurance'
|
5
5
|
|
6
6
|
# You can add fixtures and/or initialization code here to make experimenting
|
7
7
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -10,5 +10,5 @@ require "ensurance"
|
|
10
10
|
# require "pry"
|
11
11
|
# Pry.start
|
12
12
|
|
13
|
-
require
|
13
|
+
require 'irb'
|
14
14
|
IRB.start(__FILE__)
|
data/ensurance.gemspec
CHANGED
@@ -1,18 +1,17 @@
|
|
1
|
-
|
2
|
-
lib = File.expand_path("../lib", __FILE__)
|
1
|
+
lib = File.expand_path('lib', __dir__)
|
3
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
3
|
+
require 'ensurance/version'
|
5
4
|
|
6
5
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
6
|
+
spec.name = 'ensurance'
|
8
7
|
spec.version = Ensurance::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
8
|
+
spec.authors = ['Ben Sharpe']
|
9
|
+
spec.email = ['bsharpe@gmail.com']
|
11
10
|
|
12
|
-
spec.summary =
|
13
|
-
spec.description =
|
14
|
-
spec.homepage =
|
15
|
-
spec.license =
|
11
|
+
spec.summary = 'Add ability to ensure ActiveRecord models'
|
12
|
+
spec.description = 'A handy shortcut for user = user.is_a?(User) ? user : User.find(user)'
|
13
|
+
spec.homepage = 'https://github.com/bsharpe/ensurance'
|
14
|
+
spec.license = 'MIT'
|
16
15
|
|
17
16
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
18
17
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
@@ -26,18 +25,17 @@ Gem::Specification.new do |spec|
|
|
26
25
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
27
26
|
f.match(%r{^(test|spec|features)/})
|
28
27
|
end
|
29
|
-
spec.bindir =
|
28
|
+
spec.bindir = 'exe'
|
30
29
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = [
|
30
|
+
spec.require_paths = ['lib']
|
32
31
|
|
33
32
|
spec.add_runtime_dependency 'activesupport', '>= 3', '< 6'
|
34
33
|
|
35
|
-
spec.add_development_dependency
|
36
|
-
spec.add_development_dependency
|
37
|
-
spec.add_development_dependency
|
38
|
-
spec.add_development_dependency
|
39
|
-
spec.add_development_dependency
|
40
|
-
spec.add_development_dependency
|
41
|
-
spec.add_development_dependency
|
34
|
+
spec.add_development_dependency 'activerecord', '>= 3', '< 6'
|
35
|
+
spec.add_development_dependency 'awesome_print', '>= 1.0', '< 2'
|
36
|
+
spec.add_development_dependency 'bundler', '~> 1.16'
|
37
|
+
spec.add_development_dependency 'globalid', '>= 0.3.6', '< 2'
|
38
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
39
|
+
spec.add_development_dependency 'rspec', '~> 3.0'
|
40
|
+
spec.add_development_dependency 'sqlite3', '>= 1.3.0', '< 4'
|
42
41
|
end
|
43
|
-
|
data/lib/ensurance.rb
CHANGED
@@ -1,9 +1,10 @@
|
|
1
|
-
require
|
1
|
+
require 'ensurance/version'
|
2
2
|
require 'active_support'
|
3
3
|
|
4
4
|
require 'ensurance/date_ensure'
|
5
5
|
require 'ensurance/time_ensure'
|
6
6
|
require 'ensurance/hash_ensure'
|
7
|
+
require 'ensurance/array_ensure'
|
7
8
|
|
8
9
|
module Ensurance
|
9
10
|
extend ActiveSupport::Concern
|
@@ -27,10 +28,10 @@ module Ensurance
|
|
27
28
|
return found
|
28
29
|
end
|
29
30
|
|
30
|
-
@_ensure_by ||= [@_additional_ensure_by ||
|
31
|
+
@_ensure_by ||= [@_additional_ensure_by || primary_key].flatten.compact.uniq
|
31
32
|
|
32
33
|
found = []
|
33
|
-
things =
|
34
|
+
things = [thing].flatten
|
34
35
|
things.each do |thing|
|
35
36
|
record = nil
|
36
37
|
@_ensure_by.each do |ensure_field|
|
@@ -53,16 +54,14 @@ module Ensurance
|
|
53
54
|
end
|
54
55
|
found.compact!
|
55
56
|
|
56
|
-
|
57
57
|
thing.is_a?(Array) ? found : found.first
|
58
58
|
end
|
59
59
|
|
60
60
|
def ensure!(thing = nil)
|
61
61
|
return nil unless thing.present?
|
62
62
|
result = self.ensure(thing)
|
63
|
-
raise
|
63
|
+
raise ActiveRecord::RecordNotFound, "#{self} not found" unless result
|
64
64
|
result
|
65
65
|
end
|
66
|
-
|
67
66
|
end
|
68
67
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# NOTE: https://blog.daveallie.com/clean-monkey-patching/
|
2
|
+
|
3
|
+
require 'active_support/core_ext/array'
|
4
|
+
|
5
|
+
module Ensurance
|
6
|
+
module ArrayEnsure
|
7
|
+
def self.prepended(base)
|
8
|
+
base.singleton_class.prepend(ClassMethods)
|
9
|
+
end
|
10
|
+
|
11
|
+
module ClassMethods
|
12
|
+
def ensure(thing)
|
13
|
+
case thing.class.name
|
14
|
+
when 'NilClass'
|
15
|
+
nil
|
16
|
+
when 'String'
|
17
|
+
thing.split(',')
|
18
|
+
else
|
19
|
+
Array(thing)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def ensure!(thing)
|
24
|
+
result = self.ensure(thing)
|
25
|
+
raise ArgumentError, "Cannot Array.ensure(#{thing || 'nil'})" unless result
|
26
|
+
result
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
::Array.prepend(Ensurance::ArrayEnsure)
|
@@ -9,21 +9,21 @@ module Ensurance
|
|
9
9
|
end
|
10
10
|
|
11
11
|
module ClassMethods
|
12
|
-
DATE_ENSURE_FORMATS = %w
|
12
|
+
DATE_ENSURE_FORMATS = %w[%m/%d/%Y %Y/%m/%d].freeze
|
13
13
|
def ensure(thing)
|
14
14
|
case thing.class.name
|
15
|
-
when
|
15
|
+
when 'NilClass'
|
16
16
|
nil
|
17
|
-
when
|
17
|
+
when 'Integer', 'Float'
|
18
18
|
Time.ensure(thing).to_date
|
19
|
-
when
|
19
|
+
when 'Date'
|
20
20
|
thing
|
21
|
-
when
|
21
|
+
when 'String'
|
22
22
|
if thing.to_i.to_s == thing
|
23
23
|
::Time.at(thing.to_i).to_date
|
24
24
|
elsif thing.to_f.to_s == thing
|
25
25
|
::Time.at(thing.to_f).to_date
|
26
|
-
elsif thing.index(
|
26
|
+
elsif thing.index('/')
|
27
27
|
# Assume US Date format
|
28
28
|
result = nil
|
29
29
|
DATE_ENSURE_FORMATS.each do |f|
|
@@ -33,7 +33,7 @@ module Ensurance
|
|
33
33
|
rescue ArgumentError
|
34
34
|
end
|
35
35
|
end
|
36
|
-
raise ArgumentError
|
36
|
+
raise ArgumentError, "Bad Date: #{thing}".yellow unless result
|
37
37
|
result
|
38
38
|
else
|
39
39
|
::Date.parse(thing)
|
@@ -42,7 +42,7 @@ module Ensurance
|
|
42
42
|
if thing.respond_to?(:to_date)
|
43
43
|
thing.to_date
|
44
44
|
else
|
45
|
-
raise ArgumentError
|
45
|
+
raise ArgumentError, "Unknown Type for Date to ensure: #{thing.class.name}"
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
@@ -56,4 +56,4 @@ module Ensurance
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
|
59
|
-
::Date.prepend(Ensurance::DateEnsure)
|
59
|
+
::Date.prepend(Ensurance::DateEnsure)
|
@@ -12,23 +12,23 @@ module Ensurance
|
|
12
12
|
module ClassMethods
|
13
13
|
def ensure(thing)
|
14
14
|
case thing.class.name
|
15
|
-
when
|
15
|
+
when 'Hash', 'HashWithIndifferentAccess'
|
16
16
|
thing
|
17
|
-
when
|
17
|
+
when 'String'
|
18
18
|
JSON.parse(thing)
|
19
|
-
when
|
19
|
+
when 'NilClass'
|
20
20
|
nil
|
21
|
-
when
|
21
|
+
when 'ActionController::UnfilteredParameters', 'ActionController::Parameters'
|
22
22
|
thing.permit!.to_h
|
23
23
|
else
|
24
24
|
if thing.respond_to?(:to_h)
|
25
25
|
begin
|
26
26
|
thing.to_h
|
27
27
|
rescue TypeError
|
28
|
-
raise ArgumentError
|
28
|
+
raise ArgumentError, "Unhandled Type for Hash to ensure: #{thing.class}"
|
29
29
|
end
|
30
30
|
else
|
31
|
-
raise ArgumentError
|
31
|
+
raise ArgumentError, "Unhandled Type for Hash to ensure: #{thing.class}"
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -42,4 +42,4 @@ module Ensurance
|
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
-
::Hash.prepend(
|
45
|
+
::Hash.prepend(Ensurance::HashEnsure)
|
@@ -11,15 +11,15 @@ module Ensurance
|
|
11
11
|
module ClassMethods
|
12
12
|
def ensure(thing)
|
13
13
|
case thing.class.name
|
14
|
-
when
|
14
|
+
when 'NilClass'
|
15
15
|
thing
|
16
|
-
when
|
16
|
+
when 'Time'
|
17
17
|
thing
|
18
|
-
when
|
18
|
+
when 'Date'
|
19
19
|
thing.beginning_of_day
|
20
|
-
when
|
20
|
+
when 'Integer', 'Float'
|
21
21
|
::Time.at(thing)
|
22
|
-
when
|
22
|
+
when 'String'
|
23
23
|
if thing.to_i.to_s == thing
|
24
24
|
::Time.at(thing.to_i)
|
25
25
|
elsif thing.to_f.to_s == thing
|
@@ -31,23 +31,20 @@ module Ensurance
|
|
31
31
|
if thing.respond_to?(:to_time)
|
32
32
|
thing.to_time
|
33
33
|
else
|
34
|
-
raise ArgumentError
|
34
|
+
raise ArgumentError, "Unhandled Type for Time to ensure: #{thing.class}"
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
def ensure!(
|
39
|
+
def ensure!(_thing)
|
40
40
|
def ensure!(thing)
|
41
41
|
result = self.ensure(thing)
|
42
42
|
raise ArgumentError, "Cannot Time.ensure(#{thing})" unless result
|
43
43
|
result
|
44
44
|
end
|
45
45
|
end
|
46
|
-
|
47
46
|
end
|
48
|
-
|
49
47
|
end
|
50
48
|
end
|
51
49
|
|
52
50
|
::Time.prepend(Ensurance::TimeEnsure)
|
53
|
-
|
data/lib/ensurance/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Ensurance
|
2
|
-
VERSION =
|
3
|
-
end
|
2
|
+
VERSION = '0.1.12'.freeze
|
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.
|
4
|
+
version: 0.1.12
|
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-
|
11
|
+
date: 2018-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -31,127 +31,127 @@ dependencies:
|
|
31
31
|
- !ruby/object:Gem::Version
|
32
32
|
version: '6'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: activerecord
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '3'
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '6'
|
40
43
|
type: :development
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
43
46
|
requirements:
|
44
|
-
- - "
|
47
|
+
- - ">="
|
45
48
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
49
|
+
version: '3'
|
50
|
+
- - "<"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '6'
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
54
|
+
name: awesome_print
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
50
56
|
requirements:
|
51
|
-
- - "
|
57
|
+
- - ">="
|
52
58
|
- !ruby/object:Gem::Version
|
53
|
-
version: '
|
59
|
+
version: '1.0'
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '2'
|
54
63
|
type: :development
|
55
64
|
prerelease: false
|
56
65
|
version_requirements: !ruby/object:Gem::Requirement
|
57
66
|
requirements:
|
58
|
-
- - "
|
67
|
+
- - ">="
|
59
68
|
- !ruby/object:Gem::Version
|
60
|
-
version: '
|
69
|
+
version: '1.0'
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '2'
|
61
73
|
- !ruby/object:Gem::Dependency
|
62
|
-
name:
|
74
|
+
name: bundler
|
63
75
|
requirement: !ruby/object:Gem::Requirement
|
64
76
|
requirements:
|
65
77
|
- - "~>"
|
66
78
|
- !ruby/object:Gem::Version
|
67
|
-
version: '
|
79
|
+
version: '1.16'
|
68
80
|
type: :development
|
69
81
|
prerelease: false
|
70
82
|
version_requirements: !ruby/object:Gem::Requirement
|
71
83
|
requirements:
|
72
84
|
- - "~>"
|
73
85
|
- !ruby/object:Gem::Version
|
74
|
-
version: '
|
86
|
+
version: '1.16'
|
75
87
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
88
|
+
name: globalid
|
77
89
|
requirement: !ruby/object:Gem::Requirement
|
78
90
|
requirements:
|
79
91
|
- - ">="
|
80
92
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
93
|
+
version: 0.3.6
|
82
94
|
- - "<"
|
83
95
|
- !ruby/object:Gem::Version
|
84
|
-
version: '
|
96
|
+
version: '2'
|
85
97
|
type: :development
|
86
98
|
prerelease: false
|
87
99
|
version_requirements: !ruby/object:Gem::Requirement
|
88
100
|
requirements:
|
89
101
|
- - ">="
|
90
102
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
103
|
+
version: 0.3.6
|
92
104
|
- - "<"
|
93
105
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
106
|
+
version: '2'
|
95
107
|
- !ruby/object:Gem::Dependency
|
96
|
-
name:
|
108
|
+
name: rake
|
97
109
|
requirement: !ruby/object:Gem::Requirement
|
98
110
|
requirements:
|
99
|
-
- - "
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: 0.3.6
|
102
|
-
- - "<"
|
111
|
+
- - "~>"
|
103
112
|
- !ruby/object:Gem::Version
|
104
|
-
version: '
|
113
|
+
version: '10.0'
|
105
114
|
type: :development
|
106
115
|
prerelease: false
|
107
116
|
version_requirements: !ruby/object:Gem::Requirement
|
108
117
|
requirements:
|
109
|
-
- - "
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: 0.3.6
|
112
|
-
- - "<"
|
118
|
+
- - "~>"
|
113
119
|
- !ruby/object:Gem::Version
|
114
|
-
version: '
|
120
|
+
version: '10.0'
|
115
121
|
- !ruby/object:Gem::Dependency
|
116
|
-
name:
|
122
|
+
name: rspec
|
117
123
|
requirement: !ruby/object:Gem::Requirement
|
118
124
|
requirements:
|
119
|
-
- - "
|
120
|
-
- !ruby/object:Gem::Version
|
121
|
-
version: 1.3.0
|
122
|
-
- - "<"
|
125
|
+
- - "~>"
|
123
126
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
127
|
+
version: '3.0'
|
125
128
|
type: :development
|
126
129
|
prerelease: false
|
127
130
|
version_requirements: !ruby/object:Gem::Requirement
|
128
131
|
requirements:
|
129
|
-
- - "
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: 1.3.0
|
132
|
-
- - "<"
|
132
|
+
- - "~>"
|
133
133
|
- !ruby/object:Gem::Version
|
134
|
-
version: '
|
134
|
+
version: '3.0'
|
135
135
|
- !ruby/object:Gem::Dependency
|
136
|
-
name:
|
136
|
+
name: sqlite3
|
137
137
|
requirement: !ruby/object:Gem::Requirement
|
138
138
|
requirements:
|
139
139
|
- - ">="
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version:
|
141
|
+
version: 1.3.0
|
142
142
|
- - "<"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '
|
144
|
+
version: '4'
|
145
145
|
type: :development
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - ">="
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version:
|
151
|
+
version: 1.3.0
|
152
152
|
- - "<"
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
154
|
+
version: '4'
|
155
155
|
description: 'A handy shortcut for user = user.is_a?(User) ? user : User.find(user)'
|
156
156
|
email:
|
157
157
|
- bsharpe@gmail.com
|
@@ -171,6 +171,7 @@ files:
|
|
171
171
|
- bin/setup
|
172
172
|
- ensurance.gemspec
|
173
173
|
- lib/ensurance.rb
|
174
|
+
- lib/ensurance/array_ensure.rb
|
174
175
|
- lib/ensurance/date_ensure.rb
|
175
176
|
- lib/ensurance/hash_ensure.rb
|
176
177
|
- lib/ensurance/time_ensure.rb
|