valuable 0.9.13 → 0.9.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 +4 -4
- data/.circleci/config.yml +53 -0
- data/lib/valuable/utils.rb +8 -8
- data/test/typical_test.rb +5 -0
- data/valuable.version +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a9ae4b2f448c215cd86746d50be099275ca5a35
|
4
|
+
data.tar.gz: ac0f811db32462875b4ff074ecb2601fa86290a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93d818c8fa7f7a00d95ab807d7142975bc760aceae78051f16dce1a7cb58a8abbf43cf8214f6d1adfaeda90c505ac96bb9abece10ff0f8d97c696c1c65a198ef
|
7
|
+
data.tar.gz: 9b4db1e4201ccadc8a19f1f5d126b91c352a747eb702f75c5355e136927c6c9eaa45d68f78dbd271998d21d065d6d34c1ace52b6bb326eebb83fe3713b3409cb
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# Ruby CircleCI 2.0 configuration file
|
2
|
+
#
|
3
|
+
# Check https://circleci.com/docs/2.0/language-ruby/ for more details
|
4
|
+
#
|
5
|
+
version: 2
|
6
|
+
jobs:
|
7
|
+
build:
|
8
|
+
docker:
|
9
|
+
# specify the version you desire here
|
10
|
+
- image: circleci/ruby:2.4.1-node-browsers
|
11
|
+
|
12
|
+
# Specify service dependencies here if necessary
|
13
|
+
# CircleCI maintains a library of pre-built images
|
14
|
+
# documented at https://circleci.com/docs/2.0/circleci-images/
|
15
|
+
# - image: circleci/postgres:9.4
|
16
|
+
|
17
|
+
working_directory: ~/repo
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- checkout
|
21
|
+
|
22
|
+
# Download and cache dependencies
|
23
|
+
- restore_cache:
|
24
|
+
keys:
|
25
|
+
- v1-dependencies-{{ checksum "Gemfile.lock" }}
|
26
|
+
# fallback to using the latest cache if no exact match is found
|
27
|
+
- v1-dependencies-
|
28
|
+
|
29
|
+
- run:
|
30
|
+
name: install dependencies
|
31
|
+
command: |
|
32
|
+
bundle install --jobs=4 --retry=3 --path vendor/bundle
|
33
|
+
|
34
|
+
- save_cache:
|
35
|
+
paths:
|
36
|
+
- ./venv
|
37
|
+
key: v1-dependencies-{{ checksum "Gemfile.lock" }}
|
38
|
+
|
39
|
+
# run tests!
|
40
|
+
- run:
|
41
|
+
name: run tests
|
42
|
+
command: |
|
43
|
+
mkdir /tmp/test-results
|
44
|
+
#TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)"
|
45
|
+
|
46
|
+
bundle exec rake test > /tmp/test-results/test-unit.txt
|
47
|
+
|
48
|
+
# collect reports
|
49
|
+
- store_test_results:
|
50
|
+
path: /tmp/test-results
|
51
|
+
- store_artifacts:
|
52
|
+
path: /tmp/test-results
|
53
|
+
destination: test-results
|
data/lib/valuable/utils.rb
CHANGED
@@ -38,7 +38,7 @@ module Valuable::Utils
|
|
38
38
|
klass = collection_item ? attributes[name][:item_klass] : attributes[name][:klass]
|
39
39
|
|
40
40
|
case klass
|
41
|
-
when *formatters.keys
|
41
|
+
when *formatters.keys
|
42
42
|
formatters[klass].call(value)
|
43
43
|
|
44
44
|
when NilClass
|
@@ -62,7 +62,7 @@ module Valuable::Utils
|
|
62
62
|
when "ActiveSupport::TimeWithZone", "Time", "DateTime"
|
63
63
|
value.to_date
|
64
64
|
when "String"
|
65
|
-
value && Date.parse(value)
|
65
|
+
value && begin; Date.parse(value); rescue; end
|
66
66
|
else
|
67
67
|
value
|
68
68
|
end
|
@@ -81,15 +81,15 @@ module Valuable::Utils
|
|
81
81
|
else
|
82
82
|
BigDecimal.new( value.to_s )
|
83
83
|
end
|
84
|
-
|
84
|
+
|
85
85
|
when :string
|
86
|
-
|
86
|
+
|
87
87
|
value && value.to_s
|
88
88
|
|
89
89
|
when :boolean
|
90
90
|
|
91
91
|
value == '0' ? false : !!value
|
92
|
-
|
92
|
+
|
93
93
|
else
|
94
94
|
|
95
95
|
if value.nil?
|
@@ -105,11 +105,11 @@ module Valuable::Utils
|
|
105
105
|
end unless value.nil?
|
106
106
|
|
107
107
|
end
|
108
|
-
|
108
|
+
|
109
109
|
def formatters
|
110
110
|
@formatters ||= {}
|
111
111
|
end
|
112
|
-
|
112
|
+
|
113
113
|
def klass_options
|
114
114
|
[NilClass, :integer, Class, :date, :decimal, :string, :boolean] + formatters.keys
|
115
115
|
end
|
@@ -133,7 +133,7 @@ module Valuable::Utils
|
|
133
133
|
|
134
134
|
raise ArgumentError, "#{class_name}##{attribute} has a default value that must be set using a lambda. Use :default => lambda { Thing.new }." if options[:default] && !options[:default].kind_of?(Proc) && !can_be_duplicated?( options[:default] )
|
135
135
|
|
136
|
-
raise ArgumentError, "has_value did not know how to respond to option(s) #{invalid_options.join(', ')}. Valid (optional) arguments are: #{known_options.join(', ')}" unless invalid_options.empty?
|
136
|
+
raise ArgumentError, "has_value did not know how to respond to option(s) #{invalid_options.join(', ')}. Valid (optional) arguments are: #{known_options.join(', ')}" unless invalid_options.empty?
|
137
137
|
|
138
138
|
raise ArgumentError, "#{class_name} doesn't know how to format #{attribute} with :klass => #{options[:klass].inspect}" unless klass_options.any?{|klass| klass === options[:klass]}
|
139
139
|
|
data/test/typical_test.rb
CHANGED
@@ -21,6 +21,11 @@ class TypicalTest < Test::Unit::TestCase
|
|
21
21
|
assert_equal( born_on, me.dob )
|
22
22
|
end
|
23
23
|
|
24
|
+
def test_that_date_do_not_flip_out
|
25
|
+
me = Person.new( :dob => "" )
|
26
|
+
assert_equal( nil, me.dob )
|
27
|
+
end
|
28
|
+
|
24
29
|
def test_that_dates_are_parsed_from_strings
|
25
30
|
neil_born_on = 'August 5, 1930'
|
26
31
|
neil = Person.new( :dob => neil_born_on )
|
data/valuable.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.9.
|
1
|
+
0.9.14
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: valuable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.14
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Johnathon Wright
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-10-17 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Valuable is a ruby base class that is essentially attr_accessor on steroids.
|
14
14
|
A simple and intuitive interface allows you to get on with modeling in your app.
|
@@ -17,6 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
+
- ".circleci/config.yml"
|
20
21
|
- ".gitignore"
|
21
22
|
- Gemfile
|
22
23
|
- Gemfile.lock
|