csv_record 2.1.2 → 3.0.0
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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -1
- data/README.md +51 -39
- data/Rakefile +1 -1
- data/csv_record.gemspec +8 -6
- data/lib/csv_record.rb +0 -23
- data/lib/csv_record/associations.rb +1 -1
- data/lib/csv_record/callback.rb +4 -2
- data/lib/csv_record/callbacks.rb +21 -19
- data/lib/csv_record/{csv_queries/condition.rb → condition.rb} +4 -2
- data/lib/csv_record/connector.rb +9 -7
- data/lib/csv_record/csv_validations/custom_validation.rb +8 -5
- data/lib/csv_record/csv_validations/presence_validation.rb +6 -4
- data/lib/csv_record/csv_validations/uniqueness_validation.rb +8 -5
- data/lib/csv_record/csv_validations/validations.rb +23 -28
- data/lib/csv_record/document.rb +12 -12
- data/lib/csv_record/field.rb +6 -4
- data/lib/csv_record/fields.rb +45 -0
- data/lib/csv_record/helpers.rb +10 -6
- data/lib/csv_record/{csv_queries/query.rb → query.rb} +8 -15
- data/lib/csv_record/reader.rb +120 -0
- data/lib/csv_record/timestamps.rb +4 -2
- data/lib/csv_record/version.rb +3 -3
- data/lib/csv_record/writer.rb +143 -0
- data/test/csv_record/associations_test.rb +1 -1
- data/test/csv_record/connector_test.rb +3 -3
- data/test/csv_record/reader_test.rb +6 -6
- data/test/csv_record/validation_test.rb +1 -1
- data/test/models/callback_test_class.rb +1 -2
- data/test/models/custom_errors_class.rb +2 -1
- data/test/models/customized_class.rb +1 -1
- data/test/models/jedi.rb +4 -3
- data/test/models/jedi_order.rb +2 -2
- data/test/models/padawan.rb +1 -1
- data/test/test_helper.rb +3 -3
- data/test/{helpers.rb → test_helpers.rb} +2 -2
- metadata +80 -52
- data/lib/csv_record/csv_fields.rb +0 -45
- data/lib/csv_record/csv_readers/class_reader.rb +0 -82
- data/lib/csv_record/csv_readers/instance_reader.rb +0 -29
- data/lib/csv_record/csv_readers/reader.rb +0 -9
- data/lib/csv_record/csv_writers/class_writer.rb +0 -52
- data/lib/csv_record/csv_writers/instance_writer.rb +0 -86
- data/lib/csv_record/csv_writers/writer.rb +0 -9
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
# This module handles the behaviour for setting up document created at
|
2
4
|
# timestamp.
|
3
5
|
module CsvRecord::Timestamps
|
@@ -15,7 +17,7 @@ module CsvRecord::Timestamps
|
|
15
17
|
end
|
16
18
|
end
|
17
19
|
|
18
|
-
private
|
20
|
+
private
|
19
21
|
|
20
22
|
# Update the created_at field on the Document to the current time. This is
|
21
23
|
# only called on create.
|
@@ -41,4 +43,4 @@ private
|
|
41
43
|
|
42
44
|
alias :set_created_at :__set_created_at__
|
43
45
|
alias :set_updated_at :__set_updated_at__
|
44
|
-
end
|
46
|
+
end
|
data/lib/csv_record/version.rb
CHANGED
@@ -0,0 +1,143 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module CsvRecord::Writer
|
4
|
+
module ClassMethods
|
5
|
+
def __create__(attributes={})
|
6
|
+
build(attributes).tap do |instance|
|
7
|
+
yield instance if block_given?
|
8
|
+
instance.save
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
[:attr_accessor, :attr_writer].each do |custom_accessor|
|
13
|
+
define_method custom_accessor do |*attributes|
|
14
|
+
attributes.each do |attribute|
|
15
|
+
unless fields.has_name? attribute
|
16
|
+
fields << CsvRecord::Field.new(attribute)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
super(*attributes)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def store_as(name)
|
24
|
+
@table_name = name.to_s.underscore.pluralize
|
25
|
+
redefine_database_location
|
26
|
+
|
27
|
+
@table_name
|
28
|
+
end
|
29
|
+
|
30
|
+
def table_name
|
31
|
+
@table_name ||= store_as name
|
32
|
+
end
|
33
|
+
|
34
|
+
def mapping(config=[])
|
35
|
+
config.each do |field, doppelganger|
|
36
|
+
unless fields.include? field
|
37
|
+
fields << CsvRecord::Field.new(field, doppelganger)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def redefine_database_location
|
43
|
+
if const_defined?('DATABASE_LOCATION') || const_defined?('DATABASE_LOCATION_TMP')
|
44
|
+
send :remove_const, 'DATABASE_LOCATION'
|
45
|
+
send :remove_const, 'DATABASE_LOCATION_TMP'
|
46
|
+
end
|
47
|
+
|
48
|
+
const_set 'DATABASE_LOCATION', "db/#{@table_name}.csv"
|
49
|
+
const_set 'DATABASE_LOCATION_TMP', "db/#{@table_name}_tmp.csv"
|
50
|
+
end
|
51
|
+
|
52
|
+
alias :create :__create__
|
53
|
+
end
|
54
|
+
|
55
|
+
module InstanceMethods
|
56
|
+
def self.included(receiver)
|
57
|
+
receiver.send :attr_accessor, :id
|
58
|
+
end
|
59
|
+
|
60
|
+
def __save__(validate=true)
|
61
|
+
if (not validate) || valid?
|
62
|
+
new_record? ? append_registry : update_registry
|
63
|
+
else
|
64
|
+
false
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def new_record?
|
69
|
+
created_at.nil? || id.nil?
|
70
|
+
end
|
71
|
+
|
72
|
+
def __update_attribute__(field, value)
|
73
|
+
public_send "#{field}=", value
|
74
|
+
save false
|
75
|
+
end
|
76
|
+
|
77
|
+
def __update_attributes__(params={validate: true})
|
78
|
+
validate = params.delete :validate
|
79
|
+
|
80
|
+
params.each do |field, value|
|
81
|
+
public_send "#{field}=", value
|
82
|
+
end
|
83
|
+
|
84
|
+
yield self if block_given?
|
85
|
+
|
86
|
+
save validate
|
87
|
+
end
|
88
|
+
|
89
|
+
def __destroy__
|
90
|
+
self.class.parse_database_file do |row|
|
91
|
+
new_row = row
|
92
|
+
new_row = nil if id.to_i == row.field('id').to_i
|
93
|
+
new_row
|
94
|
+
end
|
95
|
+
empty_fields
|
96
|
+
true
|
97
|
+
end
|
98
|
+
|
99
|
+
private
|
100
|
+
|
101
|
+
def calculate_id
|
102
|
+
@id = self.class.count + 1
|
103
|
+
end
|
104
|
+
|
105
|
+
def append_registry
|
106
|
+
write_object
|
107
|
+
end
|
108
|
+
|
109
|
+
def update_registry
|
110
|
+
self.class.parse_database_file do |row|
|
111
|
+
new_row = row
|
112
|
+
new_row = values if id.to_i == row.field('id').to_i
|
113
|
+
new_row
|
114
|
+
end
|
115
|
+
true
|
116
|
+
end
|
117
|
+
|
118
|
+
def __write_object__
|
119
|
+
calculate_id
|
120
|
+
self.class.open_database_file CsvRecord::Connector::APPEND_MODE do |csv|
|
121
|
+
csv << values
|
122
|
+
end
|
123
|
+
true
|
124
|
+
end
|
125
|
+
|
126
|
+
def empty_fields
|
127
|
+
%w(id created_at updated_at).each do |field|
|
128
|
+
public_send "#{field}=", nil
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
132
|
+
alias :save :__save__
|
133
|
+
alias :write_object :__write_object__
|
134
|
+
alias :update_attribute :__update_attribute__
|
135
|
+
alias :destroy :__destroy__
|
136
|
+
alias :update_attributes :__update_attributes__
|
137
|
+
end
|
138
|
+
|
139
|
+
def self.included(receiver)
|
140
|
+
receiver.extend ClassMethods
|
141
|
+
receiver.send :include, InstanceMethods
|
142
|
+
end
|
143
|
+
end
|
@@ -11,7 +11,7 @@ describe CsvRecord::Connector do
|
|
11
11
|
describe 'validating the methods behavior' do
|
12
12
|
it "Creates the database folder" do
|
13
13
|
Jedi.initialize_db_directory.wont_be_nil
|
14
|
-
Dir.
|
14
|
+
Dir.exist?('db').must_equal true
|
15
15
|
end
|
16
16
|
|
17
17
|
it "Checks the database initialization state" do
|
@@ -22,7 +22,7 @@ describe CsvRecord::Connector do
|
|
22
22
|
|
23
23
|
it "Creates the database file" do
|
24
24
|
luke.save
|
25
|
-
File.
|
25
|
+
File.exist?(Jedi::DATABASE_LOCATION).must_equal true
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
28
|
+
end
|
@@ -179,9 +179,9 @@ describe CsvRecord::Reader do
|
|
179
179
|
end
|
180
180
|
|
181
181
|
it 'finding with a single field' do
|
182
|
-
|
183
|
-
|
184
|
-
|
182
|
+
found_jedi = Jedi.find_by_age(852)
|
183
|
+
found_jedi.wont_be_nil
|
184
|
+
found_jedi.must_be_instance_of Jedi
|
185
185
|
end
|
186
186
|
|
187
187
|
it 'finding with multiple fields' do
|
@@ -194,10 +194,10 @@ describe CsvRecord::Reader do
|
|
194
194
|
end
|
195
195
|
if conditions[i]
|
196
196
|
found_jedis = Jedi.public_send "find_by_#{conditions[i]}", *values
|
197
|
-
found_jedis.
|
198
|
-
found_jedis.
|
197
|
+
found_jedis.wont_be_nil
|
198
|
+
found_jedis.must_be_instance_of Jedi
|
199
199
|
end
|
200
200
|
end
|
201
201
|
end
|
202
202
|
end
|
203
|
-
end
|
203
|
+
end
|
@@ -79,7 +79,7 @@ describe CsvRecord::Validations do
|
|
79
79
|
before { yoda.save }
|
80
80
|
|
81
81
|
let :fake_yoda do
|
82
|
-
|
82
|
+
Jedi.new name: 'Yoda the green', age: 238, midi_chlorians: '1k'
|
83
83
|
end
|
84
84
|
|
85
85
|
it 'can`t have the same name' do
|
data/test/models/jedi.rb
CHANGED
@@ -14,11 +14,12 @@ class Jedi
|
|
14
14
|
|
15
15
|
def initialize(params={})
|
16
16
|
params.each do |key, value|
|
17
|
-
|
17
|
+
public_send "#{key}=", value
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
private
|
21
|
+
private
|
22
|
+
|
22
23
|
def my_custom_validator_method
|
23
24
|
@custom_validator_checker = true
|
24
25
|
end
|
@@ -28,4 +29,4 @@ private
|
|
28
29
|
def my_after_save_method
|
29
30
|
@after_save_value = true
|
30
31
|
end
|
31
|
-
end
|
32
|
+
end
|
data/test/models/jedi_order.rb
CHANGED
data/test/models/padawan.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -3,7 +3,7 @@ require 'minitest/autorun'
|
|
3
3
|
require 'turn'
|
4
4
|
require 'csv_record'
|
5
5
|
|
6
|
-
require_relative '
|
6
|
+
require_relative 'test_helpers'
|
7
7
|
|
8
8
|
require_relative 'models/jedi'
|
9
9
|
require_relative 'models/jedi_order'
|
@@ -13,7 +13,7 @@ require_relative 'models/custom_errors_class'
|
|
13
13
|
require_relative 'models/customized_class'
|
14
14
|
|
15
15
|
class MiniTest::Spec
|
16
|
-
include
|
16
|
+
include TestHelpers
|
17
17
|
|
18
18
|
after :each do
|
19
19
|
FileUtils.rm_rf 'db'
|
@@ -48,4 +48,4 @@ class MiniTest::Spec
|
|
48
48
|
midi_chlorians: '4k'
|
49
49
|
)
|
50
50
|
end
|
51
|
-
end
|
51
|
+
end
|
metadata
CHANGED
@@ -1,96 +1,127 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: csv_record
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
5
|
-
prerelease:
|
4
|
+
version: 3.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Lukas Alexandre
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2018-01-16 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: activesupport
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version:
|
26
|
+
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- - ~>
|
31
|
+
- - "~>"
|
36
32
|
- !ruby/object:Gem::Version
|
37
|
-
version: 0
|
33
|
+
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- - ~>
|
38
|
+
- - "~>"
|
44
39
|
- !ruby/object:Gem::Version
|
45
|
-
version: 0
|
40
|
+
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: timecop
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
|
-
version: 0
|
47
|
+
version: '0'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0
|
54
|
+
version: '0'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: turn
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- - ~>
|
59
|
+
- - "~>"
|
68
60
|
- !ruby/object:Gem::Version
|
69
|
-
version: 0
|
61
|
+
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- - ~>
|
66
|
+
- - "~>"
|
76
67
|
- !ruby/object:Gem::Version
|
77
|
-
version: 0
|
68
|
+
version: '0'
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: minitest
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
|
-
- - ~>
|
73
|
+
- - "~>"
|
84
74
|
- !ruby/object:Gem::Version
|
85
|
-
version:
|
75
|
+
version: '0'
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
|
-
- - ~>
|
80
|
+
- - "~>"
|
92
81
|
- !ruby/object:Gem::Version
|
93
|
-
version:
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: pry
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry-nav
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: m
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
94
125
|
description: CSV Object-relational mapping for Ruby
|
95
126
|
email:
|
96
127
|
- lukasalexandre@gmail.com
|
@@ -98,8 +129,10 @@ executables: []
|
|
98
129
|
extensions: []
|
99
130
|
extra_rdoc_files: []
|
100
131
|
files:
|
101
|
-
- .gitignore
|
102
|
-
- .
|
132
|
+
- ".gitignore"
|
133
|
+
- ".ruby-gemset"
|
134
|
+
- ".ruby-version"
|
135
|
+
- ".travis.yml"
|
103
136
|
- Gemfile
|
104
137
|
- LICENSE
|
105
138
|
- README.md
|
@@ -109,26 +142,22 @@ files:
|
|
109
142
|
- lib/csv_record/associations.rb
|
110
143
|
- lib/csv_record/callback.rb
|
111
144
|
- lib/csv_record/callbacks.rb
|
145
|
+
- lib/csv_record/condition.rb
|
112
146
|
- lib/csv_record/connector.rb
|
113
|
-
- lib/csv_record/csv_fields.rb
|
114
|
-
- lib/csv_record/csv_queries/condition.rb
|
115
|
-
- lib/csv_record/csv_queries/query.rb
|
116
|
-
- lib/csv_record/csv_readers/class_reader.rb
|
117
|
-
- lib/csv_record/csv_readers/instance_reader.rb
|
118
|
-
- lib/csv_record/csv_readers/reader.rb
|
119
147
|
- lib/csv_record/csv_validations/custom_validation.rb
|
120
148
|
- lib/csv_record/csv_validations/presence_validation.rb
|
121
149
|
- lib/csv_record/csv_validations/uniqueness_validation.rb
|
122
150
|
- lib/csv_record/csv_validations/validations.rb
|
123
|
-
- lib/csv_record/csv_writers/class_writer.rb
|
124
|
-
- lib/csv_record/csv_writers/instance_writer.rb
|
125
|
-
- lib/csv_record/csv_writers/writer.rb
|
126
151
|
- lib/csv_record/document.rb
|
127
152
|
- lib/csv_record/exceptions.rb
|
128
153
|
- lib/csv_record/field.rb
|
154
|
+
- lib/csv_record/fields.rb
|
129
155
|
- lib/csv_record/helpers.rb
|
156
|
+
- lib/csv_record/query.rb
|
157
|
+
- lib/csv_record/reader.rb
|
130
158
|
- lib/csv_record/timestamps.rb
|
131
159
|
- lib/csv_record/version.rb
|
160
|
+
- lib/csv_record/writer.rb
|
132
161
|
- test/csv_record/associations_test.rb
|
133
162
|
- test/csv_record/callbacks_test.rb
|
134
163
|
- test/csv_record/condition_test.rb
|
@@ -139,7 +168,6 @@ files:
|
|
139
168
|
- test/csv_record/timestamps_test.rb
|
140
169
|
- test/csv_record/validation_test.rb
|
141
170
|
- test/csv_record/writer_test.rb
|
142
|
-
- test/helpers.rb
|
143
171
|
- test/models/callback_test_class.rb
|
144
172
|
- test/models/custom_errors_class.rb
|
145
173
|
- test/models/customized_class.rb
|
@@ -148,30 +176,30 @@ files:
|
|
148
176
|
- test/models/padawan.rb
|
149
177
|
- test/monkey_patches/object_test.rb
|
150
178
|
- test/test_helper.rb
|
179
|
+
- test/test_helpers.rb
|
151
180
|
homepage: https://github.com/lukelex/csv_record
|
152
181
|
licenses:
|
153
182
|
- MIT
|
183
|
+
metadata: {}
|
154
184
|
post_install_message:
|
155
185
|
rdoc_options: []
|
156
186
|
require_paths:
|
157
187
|
- lib
|
158
188
|
required_ruby_version: !ruby/object:Gem::Requirement
|
159
|
-
none: false
|
160
189
|
requirements:
|
161
|
-
- -
|
190
|
+
- - ">="
|
162
191
|
- !ruby/object:Gem::Version
|
163
192
|
version: '0'
|
164
193
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
165
|
-
none: false
|
166
194
|
requirements:
|
167
|
-
- -
|
195
|
+
- - ">="
|
168
196
|
- !ruby/object:Gem::Version
|
169
197
|
version: '0'
|
170
198
|
requirements: []
|
171
199
|
rubyforge_project:
|
172
|
-
rubygems_version:
|
200
|
+
rubygems_version: 2.6.14
|
173
201
|
signing_key:
|
174
|
-
specification_version:
|
202
|
+
specification_version: 4
|
175
203
|
summary: CSV Record connects Ruby classes to CSV documents database to establish an
|
176
204
|
almost zero-configuration persistence layer for applications.
|
177
205
|
test_files:
|
@@ -185,7 +213,6 @@ test_files:
|
|
185
213
|
- test/csv_record/timestamps_test.rb
|
186
214
|
- test/csv_record/validation_test.rb
|
187
215
|
- test/csv_record/writer_test.rb
|
188
|
-
- test/helpers.rb
|
189
216
|
- test/models/callback_test_class.rb
|
190
217
|
- test/models/custom_errors_class.rb
|
191
218
|
- test/models/customized_class.rb
|
@@ -194,3 +221,4 @@ test_files:
|
|
194
221
|
- test/models/padawan.rb
|
195
222
|
- test/monkey_patches/object_test.rb
|
196
223
|
- test/test_helper.rb
|
224
|
+
- test/test_helpers.rb
|