errol 0.0.1
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/.gitignore +14 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +220 -0
- data/Rakefile +17 -0
- data/errol.gemspec +26 -0
- data/lib/errol.rb +8 -0
- data/lib/errol/entity.rb +109 -0
- data/lib/errol/inquiry.rb +33 -0
- data/lib/errol/repository.rb +178 -0
- data/lib/errol/version.rb +3 -0
- data/test/entity/access_generation_test.rb +75 -0
- data/test/entity/access_methods_test.rb +32 -0
- data/test/entity/entity_test.rb +35 -0
- data/test/entity/repository_method_test.rb +92 -0
- data/test/inquiry/inquiry_test.rb +57 -0
- data/test/repository/contruction_test.rb +62 -0
- data/test/repository/page_test.rb +163 -0
- data/test/repository/query_test.rb +190 -0
- data/test/test_config.rb +27 -0
- metadata +144 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
require_relative '../test_config'
|
2
|
+
require_relative './query_test'
|
3
|
+
|
4
|
+
class Item < Sequel::Model(:items)
|
5
|
+
def name=(name)
|
6
|
+
super name.reverse
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
class RepositoryQueyTest < RecordTest
|
11
|
+
def test_can_build_new_record
|
12
|
+
assert_equal Item.new, TestRepository.build.__getobj__
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_can_build_new_record_with_name
|
16
|
+
assert_equal 'ylurnu', TestRepository.build(:name => 'unruly').name
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_build_yields_to_block
|
20
|
+
mock = MiniTest::Mock.new
|
21
|
+
mock.expect :record, true, [Item.new]
|
22
|
+
TestRepository.build do |item|
|
23
|
+
mock.record item.__getobj__
|
24
|
+
end
|
25
|
+
mock.verify
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_can_save_an_item
|
29
|
+
# TODO incorperate, update.amend/renew/revise, remove/obliterate/withdraw
|
30
|
+
item = SimpleDelegator.new Item.new
|
31
|
+
TestRepository.save(item)
|
32
|
+
refute_empty TestRepository
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_save_returns_repository
|
36
|
+
item = SimpleDelegator.new Item.new
|
37
|
+
assert_equal TestRepository, TestRepository.save(item)
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_can_remove_an_item
|
41
|
+
item = SimpleDelegator.new Item.create
|
42
|
+
TestRepository.remove(item)
|
43
|
+
assert_empty TestRepository
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_cant_remove_missing_item
|
47
|
+
item = SimpleDelegator.new Item.new
|
48
|
+
assert_raises Errol::Repository::RecordAbsent do
|
49
|
+
TestRepository.remove(item)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_remove_returns_repository
|
54
|
+
item = SimpleDelegator.new Item.create
|
55
|
+
assert_equal TestRepository, TestRepository.remove(item)
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_can_create_item
|
59
|
+
TestRepository.create
|
60
|
+
refute_empty TestRepository
|
61
|
+
end
|
62
|
+
end
|
@@ -0,0 +1,163 @@
|
|
1
|
+
require_relative '../test_config'
|
2
|
+
|
3
|
+
class PaginatedInquiry < Errol::Inquiry
|
4
|
+
default :page, 1
|
5
|
+
default :page_size, 2
|
6
|
+
end
|
7
|
+
|
8
|
+
class PaginatedRepository < Errol::Repository
|
9
|
+
def self.record_class
|
10
|
+
Item
|
11
|
+
end
|
12
|
+
|
13
|
+
def dataset
|
14
|
+
dataset = raw_dataset
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.inquiry(requirements)
|
18
|
+
PaginatedInquiry.new(requirements)
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.dispatch(record)
|
22
|
+
SimpleDelegator.new record
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.receive(entity)
|
26
|
+
entity.__getobj__
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
class DemoRepositoryQueyTest < RecordTest
|
31
|
+
def items
|
32
|
+
DB[:items]
|
33
|
+
end
|
34
|
+
|
35
|
+
def first
|
36
|
+
@first ||= items.insert({})
|
37
|
+
end
|
38
|
+
|
39
|
+
def second
|
40
|
+
@second ||= items.insert({})
|
41
|
+
end
|
42
|
+
|
43
|
+
def third
|
44
|
+
@third ||= items.insert({})
|
45
|
+
end
|
46
|
+
|
47
|
+
def setup
|
48
|
+
first
|
49
|
+
second
|
50
|
+
third
|
51
|
+
end
|
52
|
+
|
53
|
+
def teardown
|
54
|
+
@first = nil
|
55
|
+
@second = nil
|
56
|
+
@third = nil
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_can_get_first_page_number
|
60
|
+
page = PaginatedRepository.new
|
61
|
+
assert_equal 1, page.current_page
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_can_get_first_page_size
|
65
|
+
page = PaginatedRepository.new
|
66
|
+
assert_equal 2, page.page_size
|
67
|
+
end
|
68
|
+
|
69
|
+
def test_identifies_as_first_page
|
70
|
+
page = PaginatedRepository.new
|
71
|
+
assert page.first_page?
|
72
|
+
end
|
73
|
+
|
74
|
+
def test_identifies_as_not_first_page
|
75
|
+
page = PaginatedRepository.new :page => 2
|
76
|
+
refute page.first_page?
|
77
|
+
end
|
78
|
+
|
79
|
+
def test_identifies_as_last_page
|
80
|
+
page = PaginatedRepository.new :page => 2
|
81
|
+
assert page.last_page?
|
82
|
+
end
|
83
|
+
|
84
|
+
def test_identifies_as_not_first_page
|
85
|
+
page = PaginatedRepository.new
|
86
|
+
refute page.last_page?
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_can_get_page_count_from_each_page
|
90
|
+
page = PaginatedRepository.new
|
91
|
+
assert_equal 2, page.page_count
|
92
|
+
end
|
93
|
+
|
94
|
+
def test_can_get_page_range
|
95
|
+
page = PaginatedRepository.new
|
96
|
+
assert_equal 1..2, page.page_range
|
97
|
+
end
|
98
|
+
|
99
|
+
def test_can_get_next_page
|
100
|
+
page = PaginatedRepository.new
|
101
|
+
assert_equal 2, page.next_page
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_can_get_previous_page
|
105
|
+
page = PaginatedRepository.new
|
106
|
+
assert_equal nil, page.previous_page
|
107
|
+
end
|
108
|
+
|
109
|
+
def test_page_reports_not_empty
|
110
|
+
page = PaginatedRepository.new
|
111
|
+
refute_empty page
|
112
|
+
end
|
113
|
+
|
114
|
+
def test_page_reports_empty
|
115
|
+
page = PaginatedRepository.new :page => 3
|
116
|
+
assert_empty page
|
117
|
+
end
|
118
|
+
|
119
|
+
def test_counts_page_items
|
120
|
+
page = PaginatedRepository.new :page => 2
|
121
|
+
assert_equal 1, page.count
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_can_get_first_item_on_second_page
|
125
|
+
page = PaginatedRepository.new :page => 2
|
126
|
+
assert_equal third, page.first.id
|
127
|
+
end
|
128
|
+
|
129
|
+
def test_can_get_last_item_on_first_page
|
130
|
+
page = PaginatedRepository.new :page => 1
|
131
|
+
assert_equal second, page.last.id
|
132
|
+
end
|
133
|
+
|
134
|
+
# def test_nil_if_not_found_on_page
|
135
|
+
# # TODO note pagination applied after filtering so finds record
|
136
|
+
# page = PaginatedRepository.new :page => 1
|
137
|
+
# assert_nil page[third]
|
138
|
+
# end
|
139
|
+
|
140
|
+
def test_can_get_all_items_on_second_page
|
141
|
+
page = PaginatedRepository.new :page => 2
|
142
|
+
assert_equal [third], page.all.map{ |entity| entity.id }
|
143
|
+
end
|
144
|
+
|
145
|
+
def test_can_get_each_item_on_page
|
146
|
+
mock = MiniTest::Mock.new
|
147
|
+
mock.expect :record, true, [third]
|
148
|
+
page = PaginatedRepository.new :page => 2
|
149
|
+
page.each { |entity| mock.record entity.id }
|
150
|
+
mock.verify
|
151
|
+
end
|
152
|
+
|
153
|
+
def test_each_method_returns_self
|
154
|
+
page = PaginatedRepository.new :page => 2
|
155
|
+
assert_equal page, page.each{}
|
156
|
+
end
|
157
|
+
|
158
|
+
def test_can_map_items_on_page
|
159
|
+
page = PaginatedRepository.new :page => 2
|
160
|
+
assert_equal [3], page.map(&:id)
|
161
|
+
end
|
162
|
+
|
163
|
+
end
|
@@ -0,0 +1,190 @@
|
|
1
|
+
require_relative '../test_config'
|
2
|
+
|
3
|
+
class Inquiry < Errol::Inquiry
|
4
|
+
default :show_offers, false
|
5
|
+
end
|
6
|
+
|
7
|
+
class TestRepository < Errol::Repository
|
8
|
+
def self.record_class
|
9
|
+
Item
|
10
|
+
end
|
11
|
+
|
12
|
+
def dataset
|
13
|
+
dataset = raw_dataset
|
14
|
+
|
15
|
+
inquiry.show_offers? ? dataset.where(:discounted) : dataset
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.inquiry(requirements)
|
20
|
+
Inquiry.new(requirements)
|
21
|
+
end
|
22
|
+
|
23
|
+
def self.dispatch(record)
|
24
|
+
SimpleDelegator.new record
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.receive(entity)
|
28
|
+
entity.__getobj__
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
|
33
|
+
class RepositoryQueyTest < RecordTest
|
34
|
+
def items
|
35
|
+
DB[:items]
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_repository_starts_empty
|
39
|
+
assert_equal true, TestRepository.empty?
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_repository_not_empty_with_item
|
43
|
+
items.insert(:name => 'abc')
|
44
|
+
assert_equal false, TestRepository.empty?
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_filtered_repository_is_empty
|
48
|
+
items.insert(:name => 'abc', :discounted => false)
|
49
|
+
assert_equal true, TestRepository.empty?(:show_offers => true)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_repository_starts_with_count_zero
|
53
|
+
assert_equal 0, TestRepository.count
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_respository_counts_one_item
|
57
|
+
items.insert(:name => 'abc')
|
58
|
+
assert_equal 1, TestRepository.count
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_filtered_repository_counts_zero_items
|
62
|
+
items.insert(:name => 'abc', :discounted => false)
|
63
|
+
assert_equal 0, TestRepository.count(:show_offers => true)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_can_get_first_item
|
67
|
+
item = Item.create(:name => 'abc')
|
68
|
+
assert_equal item, TestRepository.first.__getobj__
|
69
|
+
end
|
70
|
+
|
71
|
+
def test_wraps_first_item
|
72
|
+
items.insert(:name => 'abc')
|
73
|
+
assert_equal SimpleDelegator, TestRepository.first.class
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_returns_nil_for_no_first_item
|
77
|
+
assert_nil TestRepository.first
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_returns_first_filtered_item
|
81
|
+
items.insert(:name => 'abc', :discounted => false)
|
82
|
+
i = items.insert(:name => 'abc', :discounted => true)
|
83
|
+
items.insert(:name => 'abc', :discounted => false)
|
84
|
+
assert_equal i, TestRepository.first(:show_offers => true).id
|
85
|
+
end
|
86
|
+
|
87
|
+
def test_can_get_last_item
|
88
|
+
item = Item.create(:name => 'abc')
|
89
|
+
assert_equal item, TestRepository.last.__getobj__
|
90
|
+
end
|
91
|
+
|
92
|
+
def test_wraps_last_item
|
93
|
+
items.insert(:name => 'abc')
|
94
|
+
assert_equal SimpleDelegator, TestRepository.last.class
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_returns_nil_for_no_last_item
|
98
|
+
assert_nil TestRepository.last
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_returns_last_filtered_item
|
102
|
+
items.insert(:name => 'abc', :discounted => false)
|
103
|
+
i = items.insert(:name => 'abc', :discounted => true)
|
104
|
+
items.insert(:name => 'abc', :discounted => false)
|
105
|
+
assert_equal i, TestRepository.last(:show_offers => true).id
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_can_find_item_by_id
|
109
|
+
item = Item.create(:name => 'abc')
|
110
|
+
assert_equal item, TestRepository[item.id].__getobj__
|
111
|
+
end
|
112
|
+
|
113
|
+
def test_wraps_found_item
|
114
|
+
item = Item.create(:name => 'abc')
|
115
|
+
assert_equal SimpleDelegator, TestRepository[item.id].class
|
116
|
+
end
|
117
|
+
|
118
|
+
def test_returns_nil_for_no_found_item
|
119
|
+
assert_nil TestRepository[2]
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_returns_nil_on_filtered_find
|
123
|
+
item = Item.create(:name => 'abc')
|
124
|
+
assert_nil TestRepository[item.id, :show_offers => true]
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_can_fetch_item_by_id
|
128
|
+
item = Item.create(:name => 'abc')
|
129
|
+
assert_equal item, TestRepository.fetch(item.id).__getobj__
|
130
|
+
end
|
131
|
+
|
132
|
+
def test_wraps_fetched_item
|
133
|
+
item = Item.create(:name => 'abc')
|
134
|
+
assert_equal SimpleDelegator, TestRepository.fetch(item.id).class
|
135
|
+
end
|
136
|
+
|
137
|
+
def test_raises_error_for_no_fetched_item
|
138
|
+
err = assert_raises Errol::Repository::RecordAbsent do
|
139
|
+
TestRepository.fetch(2)
|
140
|
+
end
|
141
|
+
assert_equal 'TestRepository contains no record with id: 2', err.message
|
142
|
+
end
|
143
|
+
|
144
|
+
def test_raises_error_on_filtered_fetch
|
145
|
+
item = Item.create(:name => 'abc')
|
146
|
+
assert_raises Errol::Repository::RecordAbsent do
|
147
|
+
TestRepository.fetch(item.id, :show_offers => true)
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def test_fetch_calls_block_for_missing_item
|
152
|
+
mock = MiniTest::Mock.new
|
153
|
+
mock.expect :record, true, [2]
|
154
|
+
TestRepository.fetch(2) { |id| mock.record id }
|
155
|
+
end
|
156
|
+
|
157
|
+
def test_returns_all_items
|
158
|
+
item = Item.create(:name => 'abc')
|
159
|
+
assert_equal [item], TestRepository.all.map(&:__getobj__)
|
160
|
+
end
|
161
|
+
|
162
|
+
def test_wraps_all_items
|
163
|
+
item = Item.create(:name => 'abc')
|
164
|
+
assert_equal [SimpleDelegator], TestRepository.all.map(&:class)
|
165
|
+
end
|
166
|
+
|
167
|
+
def test_filters_all_records
|
168
|
+
discounted = Item.create(:name => 'abc', :discounted => true)
|
169
|
+
Item.create(:name => 'abc')
|
170
|
+
assert_equal [discounted], TestRepository.all(:show_offers => true).map(&:__getobj__)
|
171
|
+
end
|
172
|
+
|
173
|
+
def test_can_get_each_item_in_repository
|
174
|
+
item = Item.create(:name => 'abc')
|
175
|
+
mock = MiniTest::Mock.new
|
176
|
+
mock.expect :record, true, [item]
|
177
|
+
TestRepository.each { |entity| mock.record entity.__getobj__ }
|
178
|
+
mock.verify
|
179
|
+
end
|
180
|
+
|
181
|
+
def test_can_get_each_item_in_filtered_repository
|
182
|
+
item = Item.create(:name => 'abc')
|
183
|
+
discounted = Item.create(:name => 'abc', :discounted => true)
|
184
|
+
mock = MiniTest::Mock.new
|
185
|
+
mock.expect :record, true, [discounted]
|
186
|
+
TestRepository.each(:show_offers => true) { |entity| mock.record entity.__getobj__ }
|
187
|
+
mock.verify
|
188
|
+
end
|
189
|
+
|
190
|
+
end
|
data/test/test_config.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'errol'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
require 'minitest/reporters'
|
4
|
+
require 'sequel'
|
5
|
+
|
6
|
+
reporter_options = {color: true, slow_count: 5}
|
7
|
+
Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(reporter_options)]
|
8
|
+
|
9
|
+
DB = Sequel.sqlite
|
10
|
+
|
11
|
+
DB.create_table :items do
|
12
|
+
primary_key :id
|
13
|
+
String :name
|
14
|
+
TrueClass :discounted
|
15
|
+
Float :price
|
16
|
+
end
|
17
|
+
DB.extension(:pagination)
|
18
|
+
|
19
|
+
class RecordTest < MiniTest::Test
|
20
|
+
|
21
|
+
def run(*args, &block)
|
22
|
+
result = nil
|
23
|
+
Sequel::Model.db.transaction(:rollback=>:always, :auto_savepoint=>true){result = super}
|
24
|
+
result
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
metadata
ADDED
@@ -0,0 +1,144 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: errol
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Peter Saxton
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sequel
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.19'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.19'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.7'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.7'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '5.4'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '5.4'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest-reporters
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.0'
|
83
|
+
description: Based of the Sequel Library to deliver a repository interface to persisted
|
84
|
+
data. Handles pagination by default
|
85
|
+
email:
|
86
|
+
- peterhsaxton@gmail.com
|
87
|
+
executables: []
|
88
|
+
extensions: []
|
89
|
+
extra_rdoc_files: []
|
90
|
+
files:
|
91
|
+
- ".gitignore"
|
92
|
+
- Gemfile
|
93
|
+
- LICENSE.txt
|
94
|
+
- README.md
|
95
|
+
- Rakefile
|
96
|
+
- errol.gemspec
|
97
|
+
- lib/errol.rb
|
98
|
+
- lib/errol/entity.rb
|
99
|
+
- lib/errol/inquiry.rb
|
100
|
+
- lib/errol/repository.rb
|
101
|
+
- lib/errol/version.rb
|
102
|
+
- test/entity/access_generation_test.rb
|
103
|
+
- test/entity/access_methods_test.rb
|
104
|
+
- test/entity/entity_test.rb
|
105
|
+
- test/entity/repository_method_test.rb
|
106
|
+
- test/inquiry/inquiry_test.rb
|
107
|
+
- test/repository/contruction_test.rb
|
108
|
+
- test/repository/page_test.rb
|
109
|
+
- test/repository/query_test.rb
|
110
|
+
- test/test_config.rb
|
111
|
+
homepage: ''
|
112
|
+
licenses:
|
113
|
+
- MIT
|
114
|
+
metadata: {}
|
115
|
+
post_install_message:
|
116
|
+
rdoc_options: []
|
117
|
+
require_paths:
|
118
|
+
- lib
|
119
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: '0'
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - ">="
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '0'
|
129
|
+
requirements: []
|
130
|
+
rubyforge_project:
|
131
|
+
rubygems_version: 2.4.5
|
132
|
+
signing_key:
|
133
|
+
specification_version: 4
|
134
|
+
summary: Repository to store and deliver encapsulated records.
|
135
|
+
test_files:
|
136
|
+
- test/entity/access_generation_test.rb
|
137
|
+
- test/entity/access_methods_test.rb
|
138
|
+
- test/entity/entity_test.rb
|
139
|
+
- test/entity/repository_method_test.rb
|
140
|
+
- test/inquiry/inquiry_test.rb
|
141
|
+
- test/repository/contruction_test.rb
|
142
|
+
- test/repository/page_test.rb
|
143
|
+
- test/repository/query_test.rb
|
144
|
+
- test/test_config.rb
|