flutter 0.1.0.pre.2 → 0.2.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 (88) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -5
  3. data/Gemfile +1 -0
  4. data/README.md +62 -2
  5. data/Rakefile +35 -1
  6. data/codecov.yml +13 -0
  7. data/lib/flutter/minitest.rb +6 -8
  8. data/lib/flutter/parser.rb +18 -16
  9. data/lib/flutter/persistence.rb +51 -5
  10. data/lib/flutter/rspec.rb +7 -7
  11. data/lib/flutter/tracker.rb +48 -5
  12. data/lib/flutter/version.rb +1 -1
  13. metadata +21 -95
  14. data/integration_tests/minitest/grape_app/.gitignore +0 -67
  15. data/integration_tests/minitest/grape_app/.ruby-version +0 -1
  16. data/integration_tests/minitest/grape_app/Gemfile +0 -17
  17. data/integration_tests/minitest/grape_app/Gemfile.lock +0 -89
  18. data/integration_tests/minitest/grape_app/README.md +0 -2
  19. data/integration_tests/minitest/grape_app/Rakefile +0 -9
  20. data/integration_tests/minitest/grape_app/api/api.rb +0 -34
  21. data/integration_tests/minitest/grape_app/api/routes/api_helpers.rb +0 -12
  22. data/integration_tests/minitest/grape_app/api/routes/change_request/api.rb +0 -69
  23. data/integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb +0 -18
  24. data/integration_tests/minitest/grape_app/api/routes/event/api.rb +0 -121
  25. data/integration_tests/minitest/grape_app/api/routes/event/response_entity.rb +0 -41
  26. data/integration_tests/minitest/grape_app/api/routes/project/api.rb +0 -59
  27. data/integration_tests/minitest/grape_app/api/routes/project/response_entity.rb +0 -13
  28. data/integration_tests/minitest/grape_app/api/routes/property/api.rb +0 -78
  29. data/integration_tests/minitest/grape_app/api/routes/property/response_entity.rb +0 -31
  30. data/integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb +0 -64
  31. data/integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb +0 -24
  32. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb +0 -88
  33. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb +0 -17
  34. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb +0 -19
  35. data/integration_tests/minitest/grape_app/api/routes/user/api.rb +0 -22
  36. data/integration_tests/minitest/grape_app/api/routes/user/response_entity.rb +0 -12
  37. data/integration_tests/minitest/grape_app/app/app.rb +0 -30
  38. data/integration_tests/minitest/grape_app/app/change_request/endpoint.rb +0 -24
  39. data/integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb +0 -25
  40. data/integration_tests/minitest/grape_app/app/change_request/service.rb +0 -79
  41. data/integration_tests/minitest/grape_app/app/event/endpoint.rb +0 -78
  42. data/integration_tests/minitest/grape_app/app/event/service.rb +0 -68
  43. data/integration_tests/minitest/grape_app/app/event/validator.rb +0 -108
  44. data/integration_tests/minitest/grape_app/app/project/endpoint.rb +0 -24
  45. data/integration_tests/minitest/grape_app/app/project/service.rb +0 -42
  46. data/integration_tests/minitest/grape_app/app/property/endpoint.rb +0 -39
  47. data/integration_tests/minitest/grape_app/app/property/service.rb +0 -56
  48. data/integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb +0 -38
  49. data/integration_tests/minitest/grape_app/app/trackable_object/service.rb +0 -49
  50. data/integration_tests/minitest/grape_app/app/trackable_object/validator.rb +0 -40
  51. data/integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb +0 -58
  52. data/integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb +0 -91
  53. data/integration_tests/minitest/grape_app/app/tracking_spec/service.rb +0 -51
  54. data/integration_tests/minitest/grape_app/app/tracking_spec/validator.rb +0 -61
  55. data/integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb +0 -10
  56. data/integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb +0 -12
  57. data/integration_tests/minitest/grape_app/app/versioned_entity/entity.rb +0 -110
  58. data/integration_tests/minitest/grape_app/app/versioned_entity/service.rb +0 -47
  59. data/integration_tests/minitest/grape_app/app/versioned_entity/validator.rb +0 -61
  60. data/integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb +0 -32
  61. data/integration_tests/minitest/grape_app/config/boot.rb +0 -9
  62. data/integration_tests/minitest/grape_app/config.ru +0 -3
  63. data/integration_tests/minitest/grape_app/db/proto/change_request.rb +0 -10
  64. data/integration_tests/minitest/grape_app/db/proto/common/doc.rb +0 -86
  65. data/integration_tests/minitest/grape_app/db/proto/event.rb +0 -10
  66. data/integration_tests/minitest/grape_app/db/proto/event_snapshot.rb +0 -10
  67. data/integration_tests/minitest/grape_app/db/proto/project.rb +0 -21
  68. data/integration_tests/minitest/grape_app/db/proto/property.rb +0 -10
  69. data/integration_tests/minitest/grape_app/db/proto/property_snapshot.rb +0 -10
  70. data/integration_tests/minitest/grape_app/db/proto/trackable_object.rb +0 -10
  71. data/integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb +0 -10
  72. data/integration_tests/minitest/grape_app/db/proto/tracking_spec.rb +0 -10
  73. data/integration_tests/minitest/grape_app/test/api/functional/event_test.rb +0 -186
  74. data/integration_tests/minitest/grape_app/test/api/functional/property_test.rb +0 -197
  75. data/integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb +0 -134
  76. data/integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb +0 -56
  77. data/integration_tests/minitest/grape_app/test/api/functional/user_test.rb +0 -24
  78. data/integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb +0 -157
  79. data/integration_tests/minitest/grape_app/test/fixtures/change_requests.rb +0 -83
  80. data/integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb +0 -105
  81. data/integration_tests/minitest/grape_app/test/fixtures/events.rb +0 -58
  82. data/integration_tests/minitest/grape_app/test/fixtures/properties.rb +0 -66
  83. data/integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb +0 -124
  84. data/integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json +0 -125
  85. data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb +0 -58
  86. data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb +0 -61
  87. data/integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb +0 -22
  88. data/integration_tests/minitest/grape_app/test/test_helper.rb +0 -15
@@ -1,157 +0,0 @@
1
- require_relative '../../test_helper'
2
- module Skee
3
- module API
4
- module Test
5
- module Functional
6
- module VersionedEntityHelper
7
-
8
- def get_all_entities
9
- get "/api/#{@entity_path}"
10
- assert last_response.ok?
11
- expected_entity_ids = @entity_fixture.all.map{ |e| e[:id] }
12
- response_entity_ids = JSON.parse(last_response.body).map{ |e| e['id'] }
13
- assert_empty(expected_entity_ids - response_entity_ids)
14
- end
15
-
16
- def retrieve_entity(id, params=nil)
17
- get "/api/#{@entity_path}/#{id}", params
18
- retrieved_entity = JSON.parse(last_response.body)
19
- assert last_response.ok?
20
- assert_equal(
21
- id,
22
- retrieved_entity['id']
23
- )
24
- retrieved_entity
25
- end
26
-
27
- def create_entity_invalid_change_request(new_entity_params)
28
- post "/api/#{@entity_path}", new_entity_params
29
- assert_equal(400, last_response.status)
30
- assert_equal(
31
- "{\"error\":\"Invalid change request\"}",
32
- last_response.body
33
- )
34
- end
35
-
36
- def create_entity_valid_name(new_entity_params)
37
- post "/api/#{@entity_path}", new_entity_params
38
- change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(new_entity_params['change_request_id'])
39
- new_entity = JSON.parse(last_response.body)
40
- assert_equal(201,last_response.status)
41
- assert_equal(
42
- new_entity_params['name'],
43
- new_entity['name']
44
- )
45
- assert_includes(change_request.change_set[@entity_type][new_entity['id']].values, new_entity['snapshot_id'])
46
- new_entity
47
- end
48
-
49
- def update_entity_invalid_change_request(id, update_params)
50
- post "/api/#{@entity_path}/#{id}", update_params
51
- assert_equal(400, last_response.status)
52
- assert_equal(
53
- "{\"error\":\"Invalid change request\"}",
54
- last_response.body
55
- )
56
- end
57
-
58
- def update_entity_valid_creates_new_entity(id, update_params)
59
- post "/api/#{@entity_path}/#{id}", update_params
60
- change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(update_params['change_request_id'])
61
- updated_entity = JSON.parse(last_response.body)
62
- assert_equal(201, last_response.status)
63
- assert_equal(id, updated_entity['id'])
64
- assert_includes(change_request.change_set[@entity_type].keys, id)
65
- assert_equal(change_request.change_set[@entity_type][id].values.first, updated_entity['snapshot_id'])
66
- assert_equal(change_request.change_set[@entity_type][id].keys.first, updated_entity['previous_snapshot_id'])
67
- updated_entity
68
- end
69
-
70
- def update_entity_valid_updates_existing_snapshot_of_updated_entity(id, update_params)
71
- old_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(update_params['change_request_id'])
72
- post "/api/#{@entity_path}/#{id}", update_params
73
- updated_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(update_params['change_request_id'])
74
- updated_entity = JSON.parse(last_response.body)
75
- assert_equal(201, last_response.status)
76
- assert_equal(id, updated_entity['id'])
77
- assert_includes(updated_change_request.change_set[@entity_type].keys, id)
78
- assert_equal(updated_change_request.change_set[@entity_type][id].values.first,
79
- old_change_request.change_set[@entity_type][id].values.first)
80
- assert_equal(updated_change_request.change_set[@entity_type][id].keys.first,
81
- old_change_request.change_set[@entity_type][id].keys.first)
82
- updated_entity
83
- end
84
-
85
- def update_entity_valid_updates_existing_snapshot_of_new_entity(id, update_params)
86
- old_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(update_params['change_request_id'])
87
- post "/api/#{@entity_path}/#{id}", update_params
88
- updated_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(update_params['change_request_id'])
89
- updated_entity = JSON.parse(last_response.body)
90
- assert_equal(201, last_response.status)
91
- assert_equal(id, updated_entity['id'])
92
- assert_includes(updated_change_request.change_set[@entity_type].keys, id)
93
- assert_equal(old_change_request.change_set[@entity_type][id].values.first,
94
- updated_change_request.change_set[@entity_type][id].values.first)
95
- assert_nil(updated_change_request.change_set[@entity_type][id].keys.first)
96
- assert_nil(updated_entity['previous_snapshot_id'])
97
- updated_entity
98
- end
99
-
100
- def remove_entity_invalid_change_request(id, remove_params)
101
- post "/api/#{@entity_path}/#{id}/remove", remove_params
102
- assert_equal(400, last_response.status)
103
- assert_equal(
104
- "{\"error\":\"Invalid change request\"}",
105
- last_response.body
106
- )
107
- end
108
-
109
- def remove_entity_valid_creates_new_entity(id, remove_params)
110
- post "/api/#{@entity_path}/#{id}/remove", remove_params
111
- change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(remove_params['change_request_id'])
112
- updated_entity = JSON.parse(last_response.body)
113
- assert_equal(201, last_response.status)
114
- assert_equal(true, updated_entity['is_removed'])
115
- assert_equal(id, updated_entity['id'])
116
- assert_includes(change_request.change_set[@entity_type].keys, id)
117
- assert_equal(change_request.change_set[@entity_type][id].values.first, updated_entity['snapshot_id'])
118
- assert_equal(change_request.change_set[@entity_type][id].keys.first, updated_entity['previous_snapshot_id'])
119
- updated_entity
120
- end
121
-
122
- def remove_entity_valid_updates_existing_snapshot_of_updated_entity(id, remove_params)
123
- old_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(remove_params['change_request_id'])
124
- post "/api/#{@entity_path}/#{id}/remove", remove_params
125
- updated_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(remove_params['change_request_id'])
126
- updated_entity = JSON.parse(last_response.body)
127
- assert_equal(201, last_response.status)
128
- assert_equal(true, updated_entity['is_removed'])
129
- assert_equal(id, updated_entity['id'])
130
- assert_includes(updated_change_request.change_set[@entity_type].keys, id)
131
- assert_equal(updated_change_request.change_set[@entity_type][id].values.first,
132
- old_change_request.change_set[@entity_type][id].values.first)
133
- assert_equal(updated_change_request.change_set[@entity_type][id].keys.first,
134
- old_change_request.change_set[@entity_type][id].keys.first)
135
- updated_entity
136
- end
137
-
138
- def remove_entity_valid_updates_existing_snapshot_of_new_entity(id, remove_params)
139
- old_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(remove_params['change_request_id'])
140
- post "/api/#{@entity_path}/#{id}/remove", remove_params
141
- updated_change_request = Skee::App::DB_MAPPING_ENTITY[:change_request].find(remove_params['change_request_id'])
142
- updated_entity = JSON.parse(last_response.body)
143
- assert_equal(201, last_response.status)
144
- assert_equal(true, updated_entity['is_removed'])
145
- assert_equal(id, updated_entity['id'])
146
- assert_includes(updated_change_request.change_set[@entity_type].keys, id)
147
- assert_equal(old_change_request.change_set[@entity_type][id].values.first,
148
- updated_change_request.change_set[@entity_type][id].values.first)
149
- assert_nil(updated_change_request.change_set[@entity_type][id].keys.first)
150
- assert_nil(updated_entity['previous_snapshot_id'])
151
- updated_entity
152
- end
153
- end
154
- end
155
- end
156
- end
157
- end
@@ -1,83 +0,0 @@
1
- module Skee
2
- module Test
3
- module Fixtures
4
- class ChangeRequests
5
- def self.all
6
- all_change_requests = [
7
- {
8
- 'id': '1',
9
- 'name': 'Self-enabling disintermediate budgetary management',
10
- 'identifier': 'Voltsillam',
11
- 'project_id': '1',
12
- 'source_tracking_spec_id': '0',
13
- 'status': 'open',
14
- 'description': 'nulla suscipit ligula in lacus curabitur at ipsum',
15
- 'change_set': {
16
- trackable_object: {
17
- '4' => {
18
- '4' => '5'
19
- },
20
- '5' => {
21
- nil => '7'
22
- }
23
- },
24
- property: {
25
- '4' => {
26
- '4' => '5'
27
- },
28
- '5' => {
29
- nil => '7'
30
- }
31
- },
32
- event: {
33
- '4' => {
34
- '4' => '5'
35
- },
36
- '5' => {
37
- nil => '7'
38
- }
39
- },
40
- }
41
- }
42
- ]
43
- all_change_requests << initial_change_request
44
- end
45
-
46
- def self.initial_change_request
47
- {
48
- 'id': '0',
49
- 'name': 'Budgetary management',
50
- 'identifier': 'beginning',
51
- 'project_id': '1',
52
- 'source_tracking_spec_id': nil,
53
- 'status': 'open',
54
- 'description': 'nulla suscipit ligula in lacus curabitur at ipsum',
55
- 'change_set': {
56
- trackable_object: {
57
- '4' => {
58
- nil => '4'
59
- },
60
- },
61
- property: {
62
- '5' => {
63
- nil => '7'
64
- }
65
- },
66
- event: {
67
- '1' => {
68
- nil => '1'
69
- },
70
- '3' => {
71
- nil => '5'
72
- },
73
- '4' => {
74
- nil => '4'
75
- }
76
- },
77
- }
78
- }
79
- end
80
- end
81
- end
82
- end
83
- end
@@ -1,105 +0,0 @@
1
- module Skee
2
- module Test
3
- module Fixtures
4
- class EventSnapshots
5
- def self.all
6
- [
7
- {
8
- 'id': '1',
9
- 'name': 'Closed App',
10
- 'description': 'Description of event A.',
11
- 'payload': {
12
- 'primary_user' => {
13
- 'reference_entity_type': :trackable_object,
14
- 'reference_entity_id': '1',
15
- 'is_array': false,
16
- 'is_primary': true,
17
- 'selected_property_ids': ['1'],
18
- },
19
- 'created_timestamp' => {
20
- 'reference_entity_type': :property,
21
- 'reference_entity_id': '2',
22
- 'is_array': false,
23
- 'is_primary': nil,
24
- 'selected_property_ids': ['2'],
25
- },
26
- 'cart' => {
27
- 'reference_entity_type': :trackable_object,
28
- 'reference_entity_id': '3',
29
- 'is_array': false,
30
- 'is_primary': nil,
31
- 'selected_property_ids': ['3'],
32
- }
33
- },
34
- 'change_request_id': '1',
35
- 'previous_snapshot_id': nil,
36
- 'is_removed': nil,
37
- },
38
- {
39
- 'id': '4',
40
- 'name': 'Launched App',
41
- 'description': 'Description of event A.',
42
- 'payload': {
43
- 'primary_user' => {
44
- 'reference_entity_type': :trackable_object,
45
- 'reference_entity_id': '1',
46
- 'is_array': false,
47
- 'is_primary': true,
48
- 'selected_property_ids': ['1'],
49
- },
50
- 'created_timestamp' => {
51
- 'reference_entity_type': :property,
52
- 'reference_entity_id': '2',
53
- 'is_array': false,
54
- 'is_primary': nil,
55
- 'selected_property_ids': ['2'],
56
- },
57
- 'cart' => {
58
- 'reference_entity_type': :trackable_object,
59
- 'reference_entity_id': '3',
60
- 'is_array': false,
61
- 'is_primary': nil,
62
- 'selected_property_ids': ['3'],
63
- }
64
- },
65
- 'change_request_id': '1',
66
- 'previous_snapshot_id': nil,
67
- 'is_removed': nil,
68
- },
69
- {
70
- 'id': '5',
71
- 'name': 'Opened App',
72
- 'description': 'Description of event A.',
73
- 'payload': {
74
- 'primary_user' => {
75
- 'reference_entity_type': :trackable_object,
76
- 'reference_entity_id': '1',
77
- 'is_array': false,
78
- 'is_primary': true,
79
- 'selected_property_ids': ['1'],
80
- },
81
- 'created_timestamp' => {
82
- 'reference_entity_type': :property,
83
- 'reference_entity_id': '2',
84
- 'is_array': false,
85
- 'is_primary': nil,
86
- 'selected_property_ids': ['2'],
87
- },
88
- 'cart' => {
89
- 'reference_entity_type': :trackable_object,
90
- 'reference_entity_id': '3',
91
- 'is_array': false,
92
- 'is_primary': nil,
93
- 'selected_property_ids': ['3'],
94
- }
95
- },
96
- 'change_request_id': '1',
97
- 'previous_snapshot_id': nil,
98
- 'is_removed': nil,
99
- },
100
- ]
101
- end
102
- end
103
- end
104
- end
105
- end
@@ -1,58 +0,0 @@
1
- module Skee
2
- module Test
3
- module Fixtures
4
- class Events
5
- def self.all
6
- [
7
- {
8
- 'id': '1',
9
- 'latest_snapshot_id': '1',
10
- 'snapshot_mapping': {
11
- '0' => '1'
12
- },
13
- 'is_removed': nil,
14
- }, {
15
- 'id': '2',
16
- 'latest_snapshot_id': nil,
17
- 'snapshot_mapping': {
18
- },
19
- 'is_removed': nil,
20
- }, {
21
- 'id': '3',
22
- 'latest_snapshot_id': '5',
23
- 'snapshot_mapping': {
24
- '0' => '5'
25
- },
26
- 'is_removed': nil,
27
- }, {
28
- 'id': '4',
29
- 'latest_snapshot_id': '4',
30
- 'snapshot_mapping': {
31
- '0' => '4'
32
- },
33
- 'is_removed': nil,
34
- }, {
35
- 'id': '5',
36
- 'latest_snapshot_id': '4',
37
- 'snapshot_mapping': {
38
- },
39
- 'is_removed': nil,
40
- }, {
41
- 'id': '6',
42
- 'latest_snapshot_id': nil,
43
- 'snapshot_mapping': {
44
- },
45
- 'is_removed': nil,
46
- }, {
47
- 'id': '7',
48
- 'latest_snapshot_id': nil,
49
- 'snapshot_mapping': {
50
- },
51
- 'is_removed': nil,
52
- }
53
- ]
54
- end
55
- end
56
- end
57
- end
58
- end
@@ -1,66 +0,0 @@
1
- module Skee
2
- module Test
3
- module Fixtures
4
- class Properties
5
- def self.all
6
- [{
7
- 'id': '1',
8
- 'latest_snapshot_id': '1',
9
- 'snapshot_mapping': {
10
- '0' => '1'
11
- },
12
- 'is_removed': nil,
13
- }, {
14
- 'id': '2',
15
- 'latest_snapshot_id': '2',
16
- 'snapshot_mapping': {
17
- '0' => '2'
18
- },
19
- 'is_removed': nil,
20
- }, {
21
- 'id': '3',
22
- 'latest_snapshot_id': '3',
23
- 'snapshot_mapping': {
24
- '0' => '3'
25
- },
26
- 'is_removed': nil,
27
- }, {
28
- 'id': '4',
29
- 'latest_snapshot_id': '1',
30
- 'snapshot_mapping': {
31
- '0' => '1'
32
- },
33
- 'is_removed': nil,
34
- }, {
35
- 'id': '5',
36
- 'latest_snapshot_id': '4',
37
- 'snapshot_mapping': {
38
- },
39
- 'is_removed': nil,
40
- }, {
41
- 'id': '6',
42
- 'latest_snapshot_id': nil,
43
- 'snapshot_mapping': {
44
- },
45
- 'is_removed': nil,
46
- }, {
47
- 'id': '7',
48
- 'latest_snapshot_id': '6',
49
- 'snapshot_mapping': {
50
- '0' => '6'
51
- },
52
- 'is_removed': nil,
53
- }, {
54
- 'id': '8',
55
- 'latest_snapshot_id': '7',
56
- 'snapshot_mapping': {
57
- '0' => '7'
58
- },
59
- 'is_removed': nil,
60
- }
61
- ]
62
- end
63
- end
64
- end
65
- end
66
- end
@@ -1,124 +0,0 @@
1
- module Skee
2
- module Test
3
- module Fixtures
4
- class PropertySnapshots
5
- def self.all
6
- [
7
- {
8
- 'id': '1',
9
- 'name': 'name',
10
- 'is_array': false,
11
- 'property_of': :trackable_object,
12
- 'data_type': 'String',
13
- 'description': "user's name",
14
- 'trackable_object_id': nil,
15
- 'is_nullable': false,
16
- 'additional_instructions': nil,
17
- 'data_format_id': nil,
18
- 'regex_validation': nil,
19
- 'change_request_id': '1',
20
- 'previous_snapshot_id': nil,
21
- 'is_removed': nil,
22
- },
23
- {
24
- 'id': '2',
25
- 'name': 'created_at',
26
- 'is_array': false,
27
- 'property_of': :event,
28
- 'data_type': 'String',
29
- 'description': 'created_at timestamp',
30
- 'trackable_object_id': nil,
31
- 'is_nullable': false,
32
- 'additional_instructions': nil,
33
- 'data_format_id': nil,
34
- 'regex_validation': nil,
35
- 'change_request_id': '1',
36
- 'previous_snapshot_id': nil,
37
- 'is_removed': nil,
38
- },
39
- {
40
- 'id': '3',
41
- 'name': 'products',
42
- 'is_array': true,
43
- 'property_of': :trackable_object,
44
- 'data_type': 'Array',
45
- 'description': 'list of products',
46
- 'trackable_object_id': '2',
47
- 'is_nullable': true,
48
- 'additional_instructions': nil,
49
- 'data_format_id': nil,
50
- 'regex_validation': nil,
51
- 'change_request_id': '1',
52
- 'previous_snapshot_id': nil,
53
- 'is_removed': nil,
54
- },
55
- {
56
- 'id': '4',
57
- 'name': 'price',
58
- 'is_array': false,
59
- 'property_of': :trackable_object,
60
- 'data_type': 'Float',
61
- 'description': 'price of products',
62
- 'trackable_object_id': nil,
63
- 'is_nullable': true,
64
- 'additional_instructions': nil,
65
- 'data_format_id': nil,
66
- 'regex_validation': nil,
67
- 'change_request_id': '1',
68
- 'previous_snapshot_id': nil,
69
- 'is_removed': nil,
70
- },
71
- {
72
- 'id': '5',
73
- 'name': 'discount',
74
- 'is_array': false,
75
- 'property_of': :trackable_object,
76
- 'data_type': 'Float',
77
- 'description': 'discount on products',
78
- 'trackable_object_id': nil,
79
- 'is_nullable': true,
80
- 'additional_instructions': nil,
81
- 'data_format_id': nil,
82
- 'regex_validation': nil,
83
- 'change_request_id': '1',
84
- 'previous_snapshot_id': '4',
85
- 'is_removed': nil,
86
- },
87
- {
88
- 'id': '6',
89
- 'name': 'address',
90
- 'is_array': false,
91
- 'property_of': :trackable_object,
92
- 'data_type': 'String',
93
- 'description': 'A location address',
94
- 'trackable_object_id': nil,
95
- 'is_nullable': true,
96
- 'additional_instructions': nil,
97
- 'data_format_id': nil,
98
- 'regex_validation': nil,
99
- 'change_request_id': '1',
100
- 'previous_snapshot_id': '4',
101
- 'is_removed': nil,
102
- },
103
- {
104
- 'id': '7',
105
- 'name': 'store_name',
106
- 'is_array': false,
107
- 'property_of': :trackable_object,
108
- 'data_type': 'String',
109
- 'description': 'Store name',
110
- 'trackable_object_id': nil,
111
- 'is_nullable': true,
112
- 'additional_instructions': nil,
113
- 'data_format_id': nil,
114
- 'regex_validation': nil,
115
- 'change_request_id': '1',
116
- 'previous_snapshot_id': '4',
117
- 'is_removed': nil,
118
- }
119
- ]
120
- end
121
- end
122
- end
123
- end
124
- end