rom 0.2.0 → 0.3.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.
Files changed (175) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -3
  3. data/.ruby-version +1 -1
  4. data/.travis.yml +13 -14
  5. data/{Changelog.md → CHANGELOG.md} +12 -3
  6. data/Gemfile +14 -10
  7. data/Gemfile.devtools +16 -16
  8. data/Guardfile +2 -5
  9. data/README.md +68 -56
  10. data/Rakefile +3 -3
  11. data/config/flay.yml +2 -2
  12. data/config/mutant.yml +2 -4
  13. data/config/rubocop.yml +30 -0
  14. data/lib/rom.rb +47 -9
  15. data/lib/rom/adapter.rb +52 -0
  16. data/lib/rom/adapter/memory.rb +70 -0
  17. data/lib/rom/boot.rb +158 -0
  18. data/lib/rom/boot/base_relation_dsl.rb +43 -0
  19. data/lib/rom/boot/dsl.rb +30 -0
  20. data/lib/rom/boot/mapper_dsl.rb +23 -0
  21. data/lib/rom/boot/relation_dsl.rb +23 -0
  22. data/lib/rom/boot/schema_dsl.rb +27 -0
  23. data/lib/rom/env.rb +48 -0
  24. data/lib/rom/header.rb +123 -0
  25. data/lib/rom/mapper.rb +38 -153
  26. data/lib/rom/mapper_builder.rb +85 -0
  27. data/lib/rom/model_builder.rb +58 -0
  28. data/lib/rom/ra.rb +196 -0
  29. data/lib/rom/ra/operation/group.rb +49 -0
  30. data/lib/rom/ra/operation/join.rb +41 -0
  31. data/lib/rom/ra/operation/wrap.rb +45 -0
  32. data/lib/rom/reader.rb +62 -0
  33. data/lib/rom/reader_builder.rb +28 -0
  34. data/lib/rom/relation.rb +41 -350
  35. data/lib/rom/relation_builder.rb +48 -0
  36. data/lib/rom/repository.rb +28 -53
  37. data/lib/rom/support/registry.rb +34 -0
  38. data/lib/rom/version.rb +3 -0
  39. data/rom.gemspec +12 -10
  40. data/spec/integration/adapters/extending_relations_spec.rb +43 -0
  41. data/spec/integration/mappers/definition_dsl_spec.rb +82 -0
  42. data/spec/integration/mappers/prefixing_attributes_spec.rb +42 -0
  43. data/spec/integration/mappers/renaming_attributes_spec.rb +138 -0
  44. data/spec/integration/ra/group_spec.rb +47 -0
  45. data/spec/integration/ra/join_spec.rb +24 -0
  46. data/spec/integration/ra/wrap_spec.rb +37 -0
  47. data/spec/integration/relations/reading_spec.rb +116 -0
  48. data/spec/integration/relations/registry_dsl_spec.rb +44 -0
  49. data/spec/integration/schema_spec.rb +29 -0
  50. data/spec/integration/setup_spec.rb +18 -0
  51. data/spec/shared/users_and_tasks.rb +34 -0
  52. data/spec/spec_helper.rb +14 -36
  53. data/spec/unit/rom/adapter_spec.rb +59 -0
  54. data/spec/unit/rom/header_spec.rb +58 -0
  55. data/spec/unit/rom/mapper_spec.rb +27 -0
  56. data/spec/unit/rom/ra/operation/group_spec.rb +55 -0
  57. data/spec/unit/rom/ra/operation/wrap_spec.rb +29 -0
  58. data/spec/unit/rom/relation_spec.rb +34 -0
  59. metadata +122 -190
  60. data/lib/rom/constants.rb +0 -16
  61. data/lib/rom/environment.rb +0 -105
  62. data/lib/rom/environment/builder.rb +0 -71
  63. data/lib/rom/mapper/attribute.rb +0 -108
  64. data/lib/rom/mapper/builder.rb +0 -58
  65. data/lib/rom/mapper/builder/definition.rb +0 -162
  66. data/lib/rom/mapper/header.rb +0 -103
  67. data/lib/rom/mapper/loader_builder.rb +0 -26
  68. data/lib/rom/schema.rb +0 -21
  69. data/lib/rom/schema/builder.rb +0 -59
  70. data/lib/rom/schema/definition.rb +0 -84
  71. data/lib/rom/schema/definition/relation.rb +0 -80
  72. data/lib/rom/schema/definition/relation/base.rb +0 -27
  73. data/lib/rom/session.rb +0 -111
  74. data/lib/rom/session/environment.rb +0 -67
  75. data/lib/rom/session/identity_map.rb +0 -43
  76. data/lib/rom/session/mapper.rb +0 -62
  77. data/lib/rom/session/relation.rb +0 -140
  78. data/lib/rom/session/state.rb +0 -59
  79. data/lib/rom/session/state/created.rb +0 -22
  80. data/lib/rom/session/state/deleted.rb +0 -25
  81. data/lib/rom/session/state/persisted.rb +0 -34
  82. data/lib/rom/session/state/transient.rb +0 -20
  83. data/lib/rom/session/state/updated.rb +0 -29
  84. data/lib/rom/session/tracker.rb +0 -62
  85. data/lib/rom/support/axiom/adapter.rb +0 -111
  86. data/lib/rom/support/axiom/adapter/data_objects.rb +0 -38
  87. data/lib/rom/support/axiom/adapter/memory.rb +0 -25
  88. data/lib/rom/support/axiom/adapter/postgres.rb +0 -19
  89. data/lib/rom/support/axiom/adapter/sqlite3.rb +0 -20
  90. data/lib/version.rb +0 -3
  91. data/spec/integration/environment_setup_spec.rb +0 -24
  92. data/spec/integration/grouped_mappers_spec.rb +0 -87
  93. data/spec/integration/join_and_group_spec.rb +0 -76
  94. data/spec/integration/join_and_wrap_spec.rb +0 -68
  95. data/spec/integration/mapping_embedded_relations_spec.rb +0 -73
  96. data/spec/integration/mapping_relations_spec.rb +0 -120
  97. data/spec/integration/schema_definition_spec.rb +0 -152
  98. data/spec/integration/session_spec.rb +0 -87
  99. data/spec/integration/wrapped_mappers_spec.rb +0 -73
  100. data/spec/shared/unit/environment_context.rb +0 -6
  101. data/spec/shared/unit/loader.rb +0 -11
  102. data/spec/shared/unit/loader_identity.rb +0 -13
  103. data/spec/shared/unit/mapper_context.rb +0 -11
  104. data/spec/shared/unit/relation_context.rb +0 -82
  105. data/spec/shared/unit/session_environment_context.rb +0 -11
  106. data/spec/shared/unit/session_relation_context.rb +0 -18
  107. data/spec/support/helper.rb +0 -34
  108. data/spec/support/ice_nine_config.rb +0 -10
  109. data/spec/support/test_mapper.rb +0 -110
  110. data/spec/unit/rom/environment/builder/mapping_spec.rb +0 -24
  111. data/spec/unit/rom/environment/builder/schema_spec.rb +0 -33
  112. data/spec/unit/rom/environment/class_methods/setup_spec.rb +0 -18
  113. data/spec/unit/rom/environment/repository_spec.rb +0 -21
  114. data/spec/unit/rom/mapper/attribute/embedded_collection/to_ast_spec.rb +0 -18
  115. data/spec/unit/rom/mapper/attribute/embedded_value/to_ast_spec.rb +0 -16
  116. data/spec/unit/rom/mapper/attribute/rename_spec.rb +0 -9
  117. data/spec/unit/rom/mapper/attribute/to_ast_spec.rb +0 -9
  118. data/spec/unit/rom/mapper/builder/class_methods/call_spec.rb +0 -61
  119. data/spec/unit/rom/mapper/class_methods/build_spec.rb +0 -55
  120. data/spec/unit/rom/mapper/dump_spec.rb +0 -11
  121. data/spec/unit/rom/mapper/group_spec.rb +0 -35
  122. data/spec/unit/rom/mapper/header/each_spec.rb +0 -26
  123. data/spec/unit/rom/mapper/header/element_reader_spec.rb +0 -21
  124. data/spec/unit/rom/mapper/header/group_spec.rb +0 -18
  125. data/spec/unit/rom/mapper/header/join_spec.rb +0 -14
  126. data/spec/unit/rom/mapper/header/keys_spec.rb +0 -29
  127. data/spec/unit/rom/mapper/header/project_spec.rb +0 -13
  128. data/spec/unit/rom/mapper/header/rename_spec.rb +0 -11
  129. data/spec/unit/rom/mapper/header/to_ast_spec.rb +0 -11
  130. data/spec/unit/rom/mapper/header/wrap_spec.rb +0 -18
  131. data/spec/unit/rom/mapper/identity_from_tuple_spec.rb +0 -11
  132. data/spec/unit/rom/mapper/identity_spec.rb +0 -11
  133. data/spec/unit/rom/mapper/join_spec.rb +0 -15
  134. data/spec/unit/rom/mapper/load_spec.rb +0 -11
  135. data/spec/unit/rom/mapper/new_object_spec.rb +0 -14
  136. data/spec/unit/rom/mapper/project_spec.rb +0 -11
  137. data/spec/unit/rom/mapper/rename_spec.rb +0 -16
  138. data/spec/unit/rom/mapper/wrap_spec.rb +0 -35
  139. data/spec/unit/rom/relation/delete_spec.rb +0 -15
  140. data/spec/unit/rom/relation/drop_spec.rb +0 -11
  141. data/spec/unit/rom/relation/each_spec.rb +0 -23
  142. data/spec/unit/rom/relation/first_spec.rb +0 -19
  143. data/spec/unit/rom/relation/group_spec.rb +0 -29
  144. data/spec/unit/rom/relation/inject_mapper_spec.rb +0 -17
  145. data/spec/unit/rom/relation/insert_spec.rb +0 -13
  146. data/spec/unit/rom/relation/last_spec.rb +0 -19
  147. data/spec/unit/rom/relation/one_spec.rb +0 -49
  148. data/spec/unit/rom/relation/rename_spec.rb +0 -21
  149. data/spec/unit/rom/relation/replace_spec.rb +0 -13
  150. data/spec/unit/rom/relation/restrict_spec.rb +0 -25
  151. data/spec/unit/rom/relation/sort_by_spec.rb +0 -25
  152. data/spec/unit/rom/relation/take_spec.rb +0 -11
  153. data/spec/unit/rom/relation/to_a_spec.rb +0 -20
  154. data/spec/unit/rom/relation/update_spec.rb +0 -25
  155. data/spec/unit/rom/relation/wrap_spec.rb +0 -29
  156. data/spec/unit/rom/repository/class_methods/build_spec.rb +0 -27
  157. data/spec/unit/rom/repository/element_reader_spec.rb +0 -21
  158. data/spec/unit/rom/repository/element_writer_spec.rb +0 -18
  159. data/spec/unit/rom/schema/builder/class_methods/build_spec.rb +0 -103
  160. data/spec/unit/rom/schema/element_reader_spec.rb +0 -15
  161. data/spec/unit/rom/session/class_methods/start_spec.rb +0 -23
  162. data/spec/unit/rom/session/clean_predicate_spec.rb +0 -21
  163. data/spec/unit/rom/session/environment/element_reader_spec.rb +0 -13
  164. data/spec/unit/rom/session/flush_spec.rb +0 -58
  165. data/spec/unit/rom/session/mapper/load_spec.rb +0 -47
  166. data/spec/unit/rom/session/relation/delete_spec.rb +0 -28
  167. data/spec/unit/rom/session/relation/dirty_predicate_spec.rb +0 -35
  168. data/spec/unit/rom/session/relation/identity_spec.rb +0 -11
  169. data/spec/unit/rom/session/relation/new_spec.rb +0 -50
  170. data/spec/unit/rom/session/relation/save_spec.rb +0 -50
  171. data/spec/unit/rom/session/relation/state_spec.rb +0 -23
  172. data/spec/unit/rom/session/relation/track_spec.rb +0 -23
  173. data/spec/unit/rom/session/relation/tracking_predicate_spec.rb +0 -23
  174. data/spec/unit/rom/session/relation/update_attributes_spec.rb +0 -45
  175. data/spec/unit/rom/session/state_spec.rb +0 -79
@@ -0,0 +1,58 @@
1
+ require 'spec_helper'
2
+
3
+ describe ROM::Header do
4
+ describe '.coerce' do
5
+ subject(:header) { ROM::Header.coerce(input) }
6
+
7
+
8
+ context 'with a primitive type' do
9
+ let(:input) { [[:name, type: String]] }
10
+
11
+ let(:expected) { ROM::Header.new(name: ROM::Header::Attribute.coerce(input.first)) }
12
+
13
+ it 'returns a header with coerced attributes' do
14
+ expect(header).to eql(expected)
15
+
16
+ expect(header[:name].type).to be(String)
17
+ end
18
+ end
19
+
20
+ context 'with a collection type' do
21
+ let(:input) { [[:tasks, header: [[:title]], type: Array, model: model]] }
22
+ let(:model) { Class.new }
23
+
24
+ let(:expected) { ROM::Header.new(tasks: ROM::Header::Attribute.coerce(input.first)) }
25
+
26
+ it 'returns a header with coerced attributes' do
27
+ expect(header).to eql(expected)
28
+
29
+ tasks = header[:tasks]
30
+
31
+ expect(tasks.type).to be(Array)
32
+ expect(tasks.model).to be(model)
33
+ expect(tasks.header).to eql(ROM::Header.coerce([[:title]]))
34
+
35
+ expect(input.first[1]).to eql(header: [[:title]], type: Array, model: model)
36
+ end
37
+ end
38
+
39
+ context 'with a hash type' do
40
+ let(:input) { [[:task, header: [[:title]], type: Hash, model: model]] }
41
+ let(:model) { Class.new }
42
+
43
+ let(:expected) { ROM::Header.new(task: ROM::Header::Attribute.coerce(input.first)) }
44
+
45
+ it 'returns a header with coerced attributes' do
46
+ expect(header).to eql(expected)
47
+
48
+ tasks = header[:task]
49
+
50
+ expect(tasks.type).to be(Hash)
51
+ expect(tasks.model).to be(model)
52
+ expect(tasks.header).to eql(ROM::Header.coerce([[:title]]))
53
+
54
+ expect(input.first[1]).to eql(header: [[:title]], type: Hash, model: model)
55
+ end
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ require 'ostruct'
4
+
5
+ describe ROM::Mapper do
6
+ subject(:mapper) { ROM::Mapper.build(ROM::Header.coerce(relation.header.zip), user_model) }
7
+
8
+ let(:relation) { ROM::Relation.new(dataset, [:id, :name]) }
9
+ let(:dataset) { ROM::Adapter::Memory::Dataset.new([{id: 1, name: 'Jane'}, {id: 2, name: 'Joe'}]) }
10
+ let(:user_model) { Class.new(OpenStruct) { include Equalizer.new(:id, :name) } }
11
+
12
+ let(:jane) { user_model.new(id: 1, name: 'Jane') }
13
+ let(:joe) { user_model.new(id: 2, name: 'Joe') }
14
+
15
+ describe "#each" do
16
+ it "yields all mapped objects" do
17
+ result = []
18
+
19
+ relation.each do |tuple|
20
+ result << mapper.load(tuple)
21
+ end
22
+
23
+ expect(result).to eql([jane, joe])
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,55 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Group operation' do
4
+ subject(:group) { opts = options; relation.in_memory { group(opts) } }
5
+
6
+ let(:relation) do
7
+ ROM::Relation.new(dataset, header)
8
+ end
9
+
10
+ let(:header) do
11
+ [:name, :email, :street, :zipcode, :city]
12
+ end
13
+
14
+ let(:options) do
15
+ { addresses: [:street, :zipcode, :city] }
16
+ end
17
+
18
+ context 'when group values are present' do
19
+ let(:dataset) do
20
+ [{ name: 'Jane',
21
+ email: 'jane@doe.org',
22
+ street: 'Street 1',
23
+ zipcode: '1234',
24
+ city: 'Cracow' }]
25
+ end
26
+
27
+ it 'groups given attributes under specified key' do
28
+ expect(group.to_a).to eql(
29
+ [{ name: 'Jane',
30
+ email: 'jane@doe.org',
31
+ addresses: [{ street: 'Street 1', zipcode: '1234', city: 'Cracow' }] }]
32
+ )
33
+ end
34
+
35
+ it 'exposes the header' do
36
+ expect(group.header).to eql([:name, :email, :addresses])
37
+ end
38
+ end
39
+
40
+ context 'when group values are not present' do
41
+ let(:dataset) do
42
+ [{ name: 'Jane',
43
+ email: 'jane@doe.org',
44
+ street: nil,
45
+ zipcode: nil,
46
+ city: nil }]
47
+ end
48
+
49
+ it 'sets empty array for grouped attributes' do
50
+ expect(group.to_a).to eql(
51
+ [{ name: 'Jane', email: 'jane@doe.org', addresses: [] }]
52
+ )
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'Wrap operation' do
4
+ subject(:wrap) { relation.in_memory { wrap(address: [:street, :zipcode, :city]) } }
5
+
6
+ let(:relation) do
7
+ ROM::Relation.new([{ name: 'Jane',
8
+ email: 'jane@doe.org',
9
+ street: 'Street 1',
10
+ zipcode: '1234',
11
+ city: 'Cracow' }], header)
12
+ end
13
+
14
+ let(:header) do
15
+ [:name, :email, :street, :zipcode, :city]
16
+ end
17
+
18
+ it 'wraps given attributes under specified key' do
19
+ expect(wrap.to_a).to eql(
20
+ [{ name: 'Jane',
21
+ email: 'jane@doe.org',
22
+ address: { street: 'Street 1', zipcode: '1234', city: 'Cracow' } }]
23
+ )
24
+ end
25
+
26
+ it 'exposes the header' do
27
+ expect(wrap.header).to eql([:name, :email, :address])
28
+ end
29
+ end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe ROM::Relation do
4
+ subject(:relation) { ROM::Relation.new(dataset, [:id, :name]) }
5
+
6
+ let(:dataset) { ROM::Adapter::Memory::Dataset.new([jane, joe]) }
7
+
8
+ let(:jane) { { id: 1, name: 'Jane' } }
9
+ let(:joe) { { id: 2, name: 'Joe' } }
10
+
11
+ describe "#header" do
12
+ it "return's duplicated and frozen dataset header" do
13
+ expect(relation.header).to be_frozen
14
+ expect(relation.header).not_to be(dataset.header)
15
+ end
16
+ end
17
+
18
+ describe "#each" do
19
+ it "yields all objects" do
20
+ result = []
21
+
22
+ relation.each do |user|
23
+ result << user
24
+ end
25
+
26
+ expect(result).to eql([jane, joe])
27
+ end
28
+
29
+ it "returns an enumerator if block is not provided" do
30
+ expect(relation.each).to be_instance_of(Enumerator)
31
+ end
32
+ end
33
+
34
+ end
metadata CHANGED
@@ -1,152 +1,163 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
- - Dan Kubb
9
- - Markus Schirp
10
- - Martin Gamsjaeger
11
7
  - Piotr Solnica
8
+ - piotr.solnica@gmail.com
12
9
  autorequire:
13
10
  bindir: bin
14
11
  cert_chain: []
15
- date: 2014-04-06 00:00:00.000000000 Z
12
+ date: 2014-11-24 00:00:00.000000000 Z
16
13
  dependencies:
17
14
  - !ruby/object:Gem::Dependency
18
15
  name: addressable
19
16
  requirement: !ruby/object:Gem::Requirement
20
- none: false
21
17
  requirements:
22
- - - ~>
18
+ - - "~>"
23
19
  - !ruby/object:Gem::Version
24
20
  version: '2.3'
25
- - - ! '>='
26
- - !ruby/object:Gem::Version
27
- version: 2.3.3
28
21
  type: :runtime
29
22
  prerelease: false
30
23
  version_requirements: !ruby/object:Gem::Requirement
31
- none: false
32
24
  requirements:
33
- - - ~>
25
+ - - "~>"
34
26
  - !ruby/object:Gem::Version
35
27
  version: '2.3'
36
- - - ! '>='
28
+ - !ruby/object:Gem::Dependency
29
+ name: equalizer
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.0'
35
+ - - ">="
37
36
  - !ruby/object:Gem::Version
38
- version: 2.3.3
37
+ version: 0.0.9
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ requirements:
42
+ - - "~>"
43
+ - !ruby/object:Gem::Version
44
+ version: '0.0'
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 0.0.9
39
48
  - !ruby/object:Gem::Dependency
40
49
  name: concord
41
50
  requirement: !ruby/object:Gem::Requirement
42
- none: false
43
51
  requirements:
44
- - - ~>
52
+ - - "~>"
45
53
  - !ruby/object:Gem::Version
46
54
  version: '0.1'
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: 0.1.4
47
58
  type: :runtime
48
59
  prerelease: false
49
60
  version_requirements: !ruby/object:Gem::Requirement
50
- none: false
51
61
  requirements:
52
- - - ~>
62
+ - - "~>"
53
63
  - !ruby/object:Gem::Version
54
64
  version: '0.1'
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: 0.1.4
55
68
  - !ruby/object:Gem::Dependency
56
- name: adamantium
69
+ name: charlatan
57
70
  requirement: !ruby/object:Gem::Requirement
58
- none: false
59
71
  requirements:
60
- - - ~>
72
+ - - "~>"
61
73
  - !ruby/object:Gem::Version
62
- version: '0.2'
74
+ version: '0.1'
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '0.1'
63
78
  type: :runtime
64
79
  prerelease: false
65
80
  version_requirements: !ruby/object:Gem::Requirement
66
- none: false
67
81
  requirements:
68
- - - ~>
82
+ - - "~>"
83
+ - !ruby/object:Gem::Version
84
+ version: '0.1'
85
+ - - ">="
69
86
  - !ruby/object:Gem::Version
70
- version: '0.2'
87
+ version: '0.1'
71
88
  - !ruby/object:Gem::Dependency
72
- name: axiom
89
+ name: inflecto
73
90
  requirement: !ruby/object:Gem::Requirement
74
- none: false
75
91
  requirements:
76
- - - ~>
92
+ - - "~>"
77
93
  - !ruby/object:Gem::Version
78
- version: '0.2'
94
+ version: '0.0'
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: 0.0.2
79
98
  type: :runtime
80
99
  prerelease: false
81
100
  version_requirements: !ruby/object:Gem::Requirement
82
- none: false
83
101
  requirements:
84
- - - ~>
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '0.0'
105
+ - - ">="
85
106
  - !ruby/object:Gem::Version
86
- version: '0.2'
107
+ version: 0.0.2
87
108
  - !ruby/object:Gem::Dependency
88
- name: axiom-optimizer
109
+ name: rake
89
110
  requirement: !ruby/object:Gem::Requirement
90
- none: false
91
111
  requirements:
92
- - - ~>
112
+ - - "~>"
93
113
  - !ruby/object:Gem::Version
94
- version: '0.2'
95
- type: :runtime
114
+ version: '10.3'
115
+ type: :development
96
116
  prerelease: false
97
117
  version_requirements: !ruby/object:Gem::Requirement
98
- none: false
99
118
  requirements:
100
- - - ~>
119
+ - - "~>"
101
120
  - !ruby/object:Gem::Version
102
- version: '0.2'
121
+ version: '10.3'
103
122
  - !ruby/object:Gem::Dependency
104
- name: charlatan
123
+ name: rspec-core
105
124
  requirement: !ruby/object:Gem::Requirement
106
- none: false
107
125
  requirements:
108
- - - ~>
126
+ - - "~>"
109
127
  - !ruby/object:Gem::Version
110
- version: '0.1'
111
- type: :runtime
128
+ version: '3.1'
129
+ type: :development
112
130
  prerelease: false
113
131
  version_requirements: !ruby/object:Gem::Requirement
114
- none: false
115
132
  requirements:
116
- - - ~>
133
+ - - "~>"
117
134
  - !ruby/object:Gem::Version
118
- version: '0.1'
135
+ version: '3.1'
119
136
  - !ruby/object:Gem::Dependency
120
- name: morpher
137
+ name: rspec-expectations
121
138
  requirement: !ruby/object:Gem::Requirement
122
- none: false
123
139
  requirements:
124
- - - ~>
140
+ - - "~>"
125
141
  - !ruby/object:Gem::Version
126
- version: '0.2'
127
- type: :runtime
142
+ version: '3.1'
143
+ type: :development
128
144
  prerelease: false
129
145
  version_requirements: !ruby/object:Gem::Requirement
130
- none: false
131
146
  requirements:
132
- - - ~>
147
+ - - "~>"
133
148
  - !ruby/object:Gem::Version
134
- version: '0.2'
149
+ version: '3.1'
135
150
  description: Ruby Object Mapper
136
- email:
137
- - dan.kubb@gmail.com
138
- - gamsnjaga@gmail.com
139
- - mbj@schirp-dso.com
140
- - piotr.solnica@gmail.com
151
+ email: piotr.solnica@gmail.com
141
152
  executables: []
142
153
  extensions: []
143
154
  extra_rdoc_files: []
144
155
  files:
145
- - .gitignore
146
- - .rspec
147
- - .ruby-version
148
- - .travis.yml
149
- - Changelog.md
156
+ - ".gitignore"
157
+ - ".rspec"
158
+ - ".ruby-version"
159
+ - ".travis.yml"
160
+ - CHANGELOG.md
150
161
  - Gemfile
151
162
  - Gemfile.devtools
152
163
  - Guardfile
@@ -161,151 +172,72 @@ files:
161
172
  - config/rubocop.yml
162
173
  - config/yardstick.yml
163
174
  - lib/rom.rb
164
- - lib/rom/constants.rb
165
- - lib/rom/environment.rb
166
- - lib/rom/environment/builder.rb
175
+ - lib/rom/adapter.rb
176
+ - lib/rom/adapter/memory.rb
177
+ - lib/rom/boot.rb
178
+ - lib/rom/boot/base_relation_dsl.rb
179
+ - lib/rom/boot/dsl.rb
180
+ - lib/rom/boot/mapper_dsl.rb
181
+ - lib/rom/boot/relation_dsl.rb
182
+ - lib/rom/boot/schema_dsl.rb
183
+ - lib/rom/env.rb
184
+ - lib/rom/header.rb
167
185
  - lib/rom/mapper.rb
168
- - lib/rom/mapper/attribute.rb
169
- - lib/rom/mapper/builder.rb
170
- - lib/rom/mapper/builder/definition.rb
171
- - lib/rom/mapper/header.rb
172
- - lib/rom/mapper/loader_builder.rb
186
+ - lib/rom/mapper_builder.rb
187
+ - lib/rom/model_builder.rb
188
+ - lib/rom/ra.rb
189
+ - lib/rom/ra/operation/group.rb
190
+ - lib/rom/ra/operation/join.rb
191
+ - lib/rom/ra/operation/wrap.rb
192
+ - lib/rom/reader.rb
193
+ - lib/rom/reader_builder.rb
173
194
  - lib/rom/relation.rb
195
+ - lib/rom/relation_builder.rb
174
196
  - lib/rom/repository.rb
175
- - lib/rom/schema.rb
176
- - lib/rom/schema/builder.rb
177
- - lib/rom/schema/definition.rb
178
- - lib/rom/schema/definition/relation.rb
179
- - lib/rom/schema/definition/relation/base.rb
180
- - lib/rom/session.rb
181
- - lib/rom/session/environment.rb
182
- - lib/rom/session/identity_map.rb
183
- - lib/rom/session/mapper.rb
184
- - lib/rom/session/relation.rb
185
- - lib/rom/session/state.rb
186
- - lib/rom/session/state/created.rb
187
- - lib/rom/session/state/deleted.rb
188
- - lib/rom/session/state/persisted.rb
189
- - lib/rom/session/state/transient.rb
190
- - lib/rom/session/state/updated.rb
191
- - lib/rom/session/tracker.rb
192
- - lib/rom/support/axiom/adapter.rb
193
- - lib/rom/support/axiom/adapter/data_objects.rb
194
- - lib/rom/support/axiom/adapter/memory.rb
195
- - lib/rom/support/axiom/adapter/postgres.rb
196
- - lib/rom/support/axiom/adapter/sqlite3.rb
197
- - lib/version.rb
197
+ - lib/rom/support/registry.rb
198
+ - lib/rom/version.rb
198
199
  - rom.gemspec
199
- - spec/integration/environment_setup_spec.rb
200
- - spec/integration/grouped_mappers_spec.rb
201
- - spec/integration/join_and_group_spec.rb
202
- - spec/integration/join_and_wrap_spec.rb
203
- - spec/integration/mapping_embedded_relations_spec.rb
204
- - spec/integration/mapping_relations_spec.rb
205
- - spec/integration/schema_definition_spec.rb
206
- - spec/integration/session_spec.rb
207
- - spec/integration/wrapped_mappers_spec.rb
208
- - spec/shared/unit/environment_context.rb
209
- - spec/shared/unit/loader.rb
210
- - spec/shared/unit/loader_identity.rb
211
- - spec/shared/unit/mapper_context.rb
212
- - spec/shared/unit/relation_context.rb
213
- - spec/shared/unit/session_environment_context.rb
214
- - spec/shared/unit/session_relation_context.rb
200
+ - spec/integration/adapters/extending_relations_spec.rb
201
+ - spec/integration/mappers/definition_dsl_spec.rb
202
+ - spec/integration/mappers/prefixing_attributes_spec.rb
203
+ - spec/integration/mappers/renaming_attributes_spec.rb
204
+ - spec/integration/ra/group_spec.rb
205
+ - spec/integration/ra/join_spec.rb
206
+ - spec/integration/ra/wrap_spec.rb
207
+ - spec/integration/relations/reading_spec.rb
208
+ - spec/integration/relations/registry_dsl_spec.rb
209
+ - spec/integration/schema_spec.rb
210
+ - spec/integration/setup_spec.rb
211
+ - spec/shared/users_and_tasks.rb
215
212
  - spec/spec_helper.rb
216
- - spec/support/helper.rb
217
- - spec/support/ice_nine_config.rb
218
- - spec/support/test_mapper.rb
219
- - spec/unit/rom/environment/builder/mapping_spec.rb
220
- - spec/unit/rom/environment/builder/schema_spec.rb
221
- - spec/unit/rom/environment/class_methods/setup_spec.rb
222
- - spec/unit/rom/environment/repository_spec.rb
223
- - spec/unit/rom/mapper/attribute/embedded_collection/to_ast_spec.rb
224
- - spec/unit/rom/mapper/attribute/embedded_value/to_ast_spec.rb
225
- - spec/unit/rom/mapper/attribute/rename_spec.rb
226
- - spec/unit/rom/mapper/attribute/to_ast_spec.rb
227
- - spec/unit/rom/mapper/builder/class_methods/call_spec.rb
228
- - spec/unit/rom/mapper/class_methods/build_spec.rb
229
- - spec/unit/rom/mapper/dump_spec.rb
230
- - spec/unit/rom/mapper/group_spec.rb
231
- - spec/unit/rom/mapper/header/each_spec.rb
232
- - spec/unit/rom/mapper/header/element_reader_spec.rb
233
- - spec/unit/rom/mapper/header/group_spec.rb
234
- - spec/unit/rom/mapper/header/join_spec.rb
235
- - spec/unit/rom/mapper/header/keys_spec.rb
236
- - spec/unit/rom/mapper/header/project_spec.rb
237
- - spec/unit/rom/mapper/header/rename_spec.rb
238
- - spec/unit/rom/mapper/header/to_ast_spec.rb
239
- - spec/unit/rom/mapper/header/wrap_spec.rb
240
- - spec/unit/rom/mapper/identity_from_tuple_spec.rb
241
- - spec/unit/rom/mapper/identity_spec.rb
242
- - spec/unit/rom/mapper/join_spec.rb
243
- - spec/unit/rom/mapper/load_spec.rb
244
- - spec/unit/rom/mapper/new_object_spec.rb
245
- - spec/unit/rom/mapper/project_spec.rb
246
- - spec/unit/rom/mapper/rename_spec.rb
247
- - spec/unit/rom/mapper/wrap_spec.rb
248
- - spec/unit/rom/relation/delete_spec.rb
249
- - spec/unit/rom/relation/drop_spec.rb
250
- - spec/unit/rom/relation/each_spec.rb
251
- - spec/unit/rom/relation/first_spec.rb
252
- - spec/unit/rom/relation/group_spec.rb
253
- - spec/unit/rom/relation/inject_mapper_spec.rb
254
- - spec/unit/rom/relation/insert_spec.rb
255
- - spec/unit/rom/relation/last_spec.rb
256
- - spec/unit/rom/relation/one_spec.rb
257
- - spec/unit/rom/relation/rename_spec.rb
258
- - spec/unit/rom/relation/replace_spec.rb
259
- - spec/unit/rom/relation/restrict_spec.rb
260
- - spec/unit/rom/relation/sort_by_spec.rb
261
- - spec/unit/rom/relation/take_spec.rb
262
- - spec/unit/rom/relation/to_a_spec.rb
263
- - spec/unit/rom/relation/update_spec.rb
264
- - spec/unit/rom/relation/wrap_spec.rb
265
- - spec/unit/rom/repository/class_methods/build_spec.rb
266
- - spec/unit/rom/repository/element_reader_spec.rb
267
- - spec/unit/rom/repository/element_writer_spec.rb
268
- - spec/unit/rom/schema/builder/class_methods/build_spec.rb
269
- - spec/unit/rom/schema/element_reader_spec.rb
270
- - spec/unit/rom/session/class_methods/start_spec.rb
271
- - spec/unit/rom/session/clean_predicate_spec.rb
272
- - spec/unit/rom/session/environment/element_reader_spec.rb
273
- - spec/unit/rom/session/flush_spec.rb
274
- - spec/unit/rom/session/mapper/load_spec.rb
275
- - spec/unit/rom/session/relation/delete_spec.rb
276
- - spec/unit/rom/session/relation/dirty_predicate_spec.rb
277
- - spec/unit/rom/session/relation/identity_spec.rb
278
- - spec/unit/rom/session/relation/new_spec.rb
279
- - spec/unit/rom/session/relation/save_spec.rb
280
- - spec/unit/rom/session/relation/state_spec.rb
281
- - spec/unit/rom/session/relation/track_spec.rb
282
- - spec/unit/rom/session/relation/tracking_predicate_spec.rb
283
- - spec/unit/rom/session/relation/update_attributes_spec.rb
284
- - spec/unit/rom/session/state_spec.rb
213
+ - spec/unit/rom/adapter_spec.rb
214
+ - spec/unit/rom/header_spec.rb
215
+ - spec/unit/rom/mapper_spec.rb
216
+ - spec/unit/rom/ra/operation/group_spec.rb
217
+ - spec/unit/rom/ra/operation/wrap_spec.rb
218
+ - spec/unit/rom/relation_spec.rb
285
219
  homepage: http://rom-rb.org
286
220
  licenses:
287
221
  - MIT
222
+ metadata: {}
288
223
  post_install_message:
289
224
  rdoc_options: []
290
225
  require_paths:
291
226
  - lib
292
227
  required_ruby_version: !ruby/object:Gem::Requirement
293
- none: false
294
228
  requirements:
295
- - - ! '>='
229
+ - - ">="
296
230
  - !ruby/object:Gem::Version
297
231
  version: '0'
298
232
  required_rubygems_version: !ruby/object:Gem::Requirement
299
- none: false
300
233
  requirements:
301
- - - ! '>='
234
+ - - ">="
302
235
  - !ruby/object:Gem::Version
303
236
  version: '0'
304
237
  requirements: []
305
238
  rubyforge_project:
306
- rubygems_version: 1.8.23
239
+ rubygems_version: 2.2.2
307
240
  signing_key:
308
- specification_version: 3
241
+ specification_version: 4
309
242
  summary: Ruby Object Mapper
310
243
  test_files: []
311
- has_rdoc: