flutter 0.1.0.pre.2 → 0.1.0.pre.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -1
- data/README.md +3 -1
- data/lib/flutter/persistence.rb +51 -5
- data/lib/flutter/tracker.rb +47 -5
- data/lib/flutter/version.rb +1 -1
- metadata +16 -91
- data/integration_tests/minitest/grape_app/.gitignore +0 -67
- data/integration_tests/minitest/grape_app/.ruby-version +0 -1
- data/integration_tests/minitest/grape_app/Gemfile +0 -17
- data/integration_tests/minitest/grape_app/Gemfile.lock +0 -89
- data/integration_tests/minitest/grape_app/README.md +0 -2
- data/integration_tests/minitest/grape_app/Rakefile +0 -9
- data/integration_tests/minitest/grape_app/api/api.rb +0 -34
- data/integration_tests/minitest/grape_app/api/routes/api_helpers.rb +0 -12
- data/integration_tests/minitest/grape_app/api/routes/change_request/api.rb +0 -69
- data/integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb +0 -18
- data/integration_tests/minitest/grape_app/api/routes/event/api.rb +0 -121
- data/integration_tests/minitest/grape_app/api/routes/event/response_entity.rb +0 -41
- data/integration_tests/minitest/grape_app/api/routes/project/api.rb +0 -59
- data/integration_tests/minitest/grape_app/api/routes/project/response_entity.rb +0 -13
- data/integration_tests/minitest/grape_app/api/routes/property/api.rb +0 -78
- data/integration_tests/minitest/grape_app/api/routes/property/response_entity.rb +0 -31
- data/integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb +0 -64
- data/integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb +0 -24
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb +0 -88
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb +0 -17
- data/integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb +0 -19
- data/integration_tests/minitest/grape_app/api/routes/user/api.rb +0 -22
- data/integration_tests/minitest/grape_app/api/routes/user/response_entity.rb +0 -12
- data/integration_tests/minitest/grape_app/app/app.rb +0 -30
- data/integration_tests/minitest/grape_app/app/change_request/endpoint.rb +0 -24
- data/integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb +0 -25
- data/integration_tests/minitest/grape_app/app/change_request/service.rb +0 -79
- data/integration_tests/minitest/grape_app/app/event/endpoint.rb +0 -78
- data/integration_tests/minitest/grape_app/app/event/service.rb +0 -68
- data/integration_tests/minitest/grape_app/app/event/validator.rb +0 -108
- data/integration_tests/minitest/grape_app/app/project/endpoint.rb +0 -24
- data/integration_tests/minitest/grape_app/app/project/service.rb +0 -42
- data/integration_tests/minitest/grape_app/app/property/endpoint.rb +0 -39
- data/integration_tests/minitest/grape_app/app/property/service.rb +0 -56
- data/integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb +0 -38
- data/integration_tests/minitest/grape_app/app/trackable_object/service.rb +0 -49
- data/integration_tests/minitest/grape_app/app/trackable_object/validator.rb +0 -40
- data/integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb +0 -58
- data/integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb +0 -91
- data/integration_tests/minitest/grape_app/app/tracking_spec/service.rb +0 -51
- data/integration_tests/minitest/grape_app/app/tracking_spec/validator.rb +0 -61
- data/integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb +0 -10
- data/integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb +0 -12
- data/integration_tests/minitest/grape_app/app/versioned_entity/entity.rb +0 -110
- data/integration_tests/minitest/grape_app/app/versioned_entity/service.rb +0 -47
- data/integration_tests/minitest/grape_app/app/versioned_entity/validator.rb +0 -61
- data/integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb +0 -32
- data/integration_tests/minitest/grape_app/config/boot.rb +0 -9
- data/integration_tests/minitest/grape_app/config.ru +0 -3
- data/integration_tests/minitest/grape_app/db/proto/change_request.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/common/doc.rb +0 -86
- data/integration_tests/minitest/grape_app/db/proto/event.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/event_snapshot.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/project.rb +0 -21
- data/integration_tests/minitest/grape_app/db/proto/property.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/property_snapshot.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/trackable_object.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb +0 -10
- data/integration_tests/minitest/grape_app/db/proto/tracking_spec.rb +0 -10
- data/integration_tests/minitest/grape_app/test/api/functional/event_test.rb +0 -186
- data/integration_tests/minitest/grape_app/test/api/functional/property_test.rb +0 -197
- data/integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb +0 -134
- data/integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb +0 -56
- data/integration_tests/minitest/grape_app/test/api/functional/user_test.rb +0 -24
- data/integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb +0 -157
- data/integration_tests/minitest/grape_app/test/fixtures/change_requests.rb +0 -83
- data/integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb +0 -105
- data/integration_tests/minitest/grape_app/test/fixtures/events.rb +0 -58
- data/integration_tests/minitest/grape_app/test/fixtures/properties.rb +0 -66
- data/integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb +0 -124
- data/integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json +0 -125
- data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb +0 -58
- data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb +0 -61
- data/integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb +0 -22
- data/integration_tests/minitest/grape_app/test/test_helper.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdffa233de57141c16bbbd41684ca85b04208b32edeec97625662383f4e3e753
|
4
|
+
data.tar.gz: be3eb7f6bb1d0ffd8123ad4b8c2293ecdaf4c3979c75be8471542a2c26e1d771
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e301754a8492f5eaae1ba2388fe39c4d1fe2250b61bb7b792025d646e96719bd1df76a1ed8f669a821107e4e12f54b89c070671f5b86c29d24eae7bf2a3de3d7
|
7
|
+
data.tar.gz: 4e69808a87b89d50f3d7fcf964ae3a2d5ccc176294e7f610e00d5ffb712131384ff24bb64e630e1ef1f5df1afac7f2175c986d031b4ada8dba9af37df00c930d
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,20 @@
|
|
1
|
+
# Changelog
|
2
|
+
All notable changes to this project will be documented in this file.
|
3
|
+
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
6
|
+
|
1
7
|
## [Unreleased]
|
8
|
+
## [0.1.0.pre.3]
|
9
|
+
### Added
|
10
|
+
- Improved documentation for Tracker
|
11
|
+
- Improved documentation for Persistance classes
|
12
|
+
|
13
|
+
### Changed
|
14
|
+
- Pinned dependencies to known working minimum versions
|
15
|
+
|
2
16
|
## [0.1.0.pre.2]
|
3
|
-
|
17
|
+
### Added
|
4
18
|
- Minitest integration
|
5
19
|
- RSpec integration
|
6
20
|
|
data/README.md
CHANGED
@@ -119,7 +119,9 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
|
|
119
119
|
|
120
120
|
This project uses [overcommit](https://github.com/sds/overcommit) to enforce standards. Enable the precommit hooks in your local checkout by running: `overcommit --sign`
|
121
121
|
|
122
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number
|
122
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number by running `gem bump`,
|
123
|
+
then move the `Unreleased` entries in the [CHANGELOG](./CHANGELOG.md) to the new version and commit that.
|
124
|
+
Finally tag and release the gem with `gem tag` and `gem release`
|
123
125
|
|
124
126
|
## Contributing
|
125
127
|
|
data/lib/flutter/persistence.rb
CHANGED
@@ -4,40 +4,68 @@ require "fileutils"
|
|
4
4
|
require "set"
|
5
5
|
module Flutter
|
6
6
|
module Persistence
|
7
|
+
# The abstract base storage.
|
8
|
+
#
|
9
|
+
# To implement a custom storage, override the following methods:
|
10
|
+
# * {#test_mapping}
|
11
|
+
# * {#source_mapping}
|
12
|
+
# * {#update_test_mapping!}
|
13
|
+
# * {#update_source_mapping!}
|
14
|
+
# * {#load!}
|
15
|
+
# * {#persist!}
|
16
|
+
# * {#clear!}
|
17
|
+
#
|
18
|
+
# @abstract Override this class to implement a custom storage
|
7
19
|
class AbstractStorage
|
8
20
|
def initialize
|
9
21
|
load!
|
10
22
|
end
|
11
23
|
|
12
24
|
# :nocov:
|
25
|
+
|
26
|
+
# Mapping of +test_id -> source file -> callable_id+
|
27
|
+
# @return [Hash<String, Hash<String, Set<String>>>]
|
13
28
|
def test_mapping
|
14
29
|
raise NotImplementedError
|
15
30
|
end
|
16
31
|
|
32
|
+
# Mapping of +source file -> callable_id -> signature+
|
33
|
+
# @return [Hash<String, Hash<String, String>>] mapping
|
17
34
|
def source_mapping
|
18
35
|
raise NotImplementedError
|
19
36
|
end
|
20
37
|
|
38
|
+
##
|
39
|
+
# Update {#test_mapping}
|
40
|
+
#
|
41
|
+
# @param [Hash<String, Hash<String, String>>] mapping
|
21
42
|
def update_test_mapping!(mapping)
|
22
43
|
raise NotImplementedError
|
23
44
|
end
|
24
45
|
|
46
|
+
##
|
47
|
+
# Update {#source_mapping}
|
48
|
+
#
|
49
|
+
# @param [Hash<String, Hash<String, String>>] mapping
|
25
50
|
def update_source_mapping!(mapping)
|
26
51
|
raise NotImplementedError
|
27
52
|
end
|
28
53
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
def to_s
|
54
|
+
# Save the state of test & source mapping to the underlying
|
55
|
+
# storage
|
56
|
+
# @return [void]
|
57
|
+
def persist!
|
34
58
|
raise NotImplementedError
|
35
59
|
end
|
36
60
|
|
61
|
+
# Clear any saved state in the underlying storage
|
62
|
+
# @return [void]
|
37
63
|
def clear!
|
38
64
|
raise NotImplementedError
|
39
65
|
end
|
40
66
|
|
67
|
+
# If the storage was already persisted load the current state
|
68
|
+
# @return [void]
|
41
69
|
def load!
|
42
70
|
raise NotImplementedError
|
43
71
|
end
|
@@ -48,6 +76,8 @@ module Flutter
|
|
48
76
|
require "yaml"
|
49
77
|
# ruby >= 3.1 requires this
|
50
78
|
YAML_LOAD_OPTS = RUBY_VERSION > "3.1" ? { permitted_classes: [Hash, Set, Symbol] } : {}
|
79
|
+
|
80
|
+
# @param [String] path The directory to store the +state.yml+ file
|
51
81
|
def initialize(path:)
|
52
82
|
@path = File.absolute_path(path)
|
53
83
|
@full_path = File.join(@path, "state.yml")
|
@@ -55,6 +85,7 @@ module Flutter
|
|
55
85
|
super()
|
56
86
|
end
|
57
87
|
|
88
|
+
# (see AbstractStorage#load!)
|
58
89
|
def load!
|
59
90
|
if File.exist?(@full_path)
|
60
91
|
persisted = YAML.load(File.read(@full_path), **YAML_LOAD_OPTS)
|
@@ -62,27 +93,33 @@ module Flutter
|
|
62
93
|
end
|
63
94
|
end
|
64
95
|
|
96
|
+
# (see AbstractStorage#test_mapping)
|
65
97
|
def test_mapping
|
66
98
|
@state.fetch(:test_mapping) { @state[:test_mapping] = {} }
|
67
99
|
end
|
68
100
|
|
101
|
+
# (see AbstractStorage#source_mapping)
|
69
102
|
def source_mapping
|
70
103
|
@state.fetch(:source_mapping) { @state[:source_mapping] = {} }
|
71
104
|
end
|
72
105
|
|
106
|
+
# (see AbstractStorage#update_test_mapping!)
|
73
107
|
def update_test_mapping!(mapping)
|
74
108
|
test_mapping.merge!(mapping)
|
75
109
|
end
|
76
110
|
|
111
|
+
# (see AbstractStorage#update_source_mapping!)
|
77
112
|
def update_source_mapping!(mapping)
|
78
113
|
source_mapping.merge!(mapping)
|
79
114
|
end
|
80
115
|
|
116
|
+
# (see AbstractStorage#clear!)
|
81
117
|
def clear!
|
82
118
|
FileUtils.rm(@full_path) if File.exist?(@full_path)
|
83
119
|
@state.clear
|
84
120
|
end
|
85
121
|
|
122
|
+
# (see AbstractStorage#persist!)
|
86
123
|
def persist!
|
87
124
|
FileUtils.mkdir_p(@path) unless File.exist?(@path)
|
88
125
|
File.open(@full_path, "w") { |file| file.write(@state.to_yaml) }
|
@@ -95,6 +132,7 @@ module Flutter
|
|
95
132
|
|
96
133
|
class Marshal < AbstractStorage
|
97
134
|
require "pstore"
|
135
|
+
# @param [String] path The directory to store the marshaled state file +state.pstore+
|
98
136
|
def initialize(path:)
|
99
137
|
@path = File.absolute_path(path)
|
100
138
|
FileUtils.mkdir_p(@path) unless File.exist?(@path)
|
@@ -103,6 +141,7 @@ module Flutter
|
|
103
141
|
super()
|
104
142
|
end
|
105
143
|
|
144
|
+
# (see AbstractStorage#load!)
|
106
145
|
def load!
|
107
146
|
@state = PStore.new(@full_path)
|
108
147
|
@state.transaction do
|
@@ -111,18 +150,21 @@ module Flutter
|
|
111
150
|
end
|
112
151
|
end
|
113
152
|
|
153
|
+
# (see AbstractStorage#test_mapping)
|
114
154
|
def test_mapping
|
115
155
|
@state.transaction do
|
116
156
|
return @state[:test_mapping]
|
117
157
|
end
|
118
158
|
end
|
119
159
|
|
160
|
+
# (see AbstractStorage#source_mapping)
|
120
161
|
def source_mapping
|
121
162
|
@state.transaction do
|
122
163
|
return @state[:source_mapping]
|
123
164
|
end
|
124
165
|
end
|
125
166
|
|
167
|
+
# (see AbstractStorage#update_test_mapping!)
|
126
168
|
def update_test_mapping!(mapping)
|
127
169
|
@state.transaction do
|
128
170
|
@state[:test_mapping] ||= {}
|
@@ -130,6 +172,7 @@ module Flutter
|
|
130
172
|
end
|
131
173
|
end
|
132
174
|
|
175
|
+
# (see AbstractStorage#update_source_mapping!)
|
133
176
|
def update_source_mapping!(mapping)
|
134
177
|
@state.transaction do
|
135
178
|
@state[:source_mapping] ||= {}
|
@@ -137,13 +180,16 @@ module Flutter
|
|
137
180
|
end
|
138
181
|
end
|
139
182
|
|
183
|
+
# (see AbstractStorage#clear!)
|
140
184
|
def clear!
|
141
185
|
FileUtils.rm(@full_path) if File.exist?(@full_path)
|
142
186
|
end
|
143
187
|
|
188
|
+
# (see AbstractStorage#persist!)
|
144
189
|
def persist!
|
145
190
|
end
|
146
191
|
|
192
|
+
# @return [String]
|
147
193
|
def to_s
|
148
194
|
"state: #{@full_path}"
|
149
195
|
end
|
data/lib/flutter/tracker.rb
CHANGED
@@ -7,9 +7,20 @@ require_relative "parser"
|
|
7
7
|
require "pry"
|
8
8
|
|
9
9
|
module Flutter
|
10
|
+
# @attr [Hash<String, Hash<String, Set<String>>>] test_mapping Mapping of tests to
|
11
|
+
# files -> callable_ids
|
12
|
+
# @attr [Hash<String, Hash<String, String>>] source_mapping Mapping of
|
13
|
+
# source files -> callable_id -> signature
|
14
|
+
# @attr [Persistence::AbstractStorage] storage the storage instance used for
|
15
|
+
# persisting the state of the tracker
|
10
16
|
class Tracker
|
11
|
-
attr_reader :test_mapping, :source_mapping
|
17
|
+
attr_reader :test_mapping, :source_mapping, :storage
|
12
18
|
|
19
|
+
# @param [Array<String>] sources
|
20
|
+
# @param [Array<String>] exclusions
|
21
|
+
# @param [Class<Flutter::Persistence::AbstractStorage>] storage_class
|
22
|
+
# @param [Hash] storage_options Additionally options that should be passed
|
23
|
+
# to the +storage_class+ constructor
|
13
24
|
def initialize(sources, exclusions, storage_class, storage_options)
|
14
25
|
@sources = sources.map { |s| File.absolute_path(s) }
|
15
26
|
@exclusions = exclusions.map { |s| File.absolute_path(s) }
|
@@ -23,8 +34,8 @@ module Flutter
|
|
23
34
|
@tracked_files = {}
|
24
35
|
end
|
25
36
|
|
26
|
-
#
|
27
|
-
#
|
37
|
+
# Starts tracking calls made by +test+
|
38
|
+
# @param [String] test A unique identifier for the test
|
28
39
|
def start(test)
|
29
40
|
# Delete test from the in-memory mapping to allow each new test run
|
30
41
|
# to store all the functions that the test calls into
|
@@ -35,10 +46,24 @@ module Flutter
|
|
35
46
|
@current_tracepoint&.enable
|
36
47
|
end
|
37
48
|
|
49
|
+
# End tracking (should be called after a call to {#start})
|
38
50
|
def stop
|
39
51
|
@current_tracepoint&.disable
|
40
52
|
end
|
41
53
|
|
54
|
+
##
|
55
|
+
# Decides if a test should be skipped based on *all* of the following
|
56
|
+
# criteria being met:
|
57
|
+
#
|
58
|
+
# 1. Test was seen before
|
59
|
+
# 2. Test sources have not changed since the last time it was executed
|
60
|
+
# 3. All the callables triggered within the scope of this test have no
|
61
|
+
# changes in their source since the last time this test was executed
|
62
|
+
#
|
63
|
+
# @param [String] test A unique identifier for the test
|
64
|
+
# @param [String] test_location The absolute path to the source file containing the test
|
65
|
+
# @param [String] test_source The source code of the test itself
|
66
|
+
# @return [TrueClass, FalseClass] If the test should be skipped
|
42
67
|
def skip?(test, test_location, test_source)
|
43
68
|
test_location_rel = relative_path(test_location)
|
44
69
|
@test_source_mapping.fetch(test_location_rel) do
|
@@ -58,12 +83,20 @@ module Flutter
|
|
58
83
|
end.all?
|
59
84
|
end
|
60
85
|
|
86
|
+
##
|
87
|
+
# Persist the state of the tracker to the storage
|
88
|
+
# specified by {#storage}
|
89
|
+
# @return [void]
|
61
90
|
def persist!
|
62
91
|
@storage.update_test_mapping!(@test_mapping)
|
63
92
|
@storage.update_source_mapping!(generate_source_mapping)
|
64
93
|
@storage.persist!
|
65
94
|
end
|
66
95
|
|
96
|
+
##
|
97
|
+
# Reset the state of the tracker and the storage
|
98
|
+
# that it was configured with
|
99
|
+
# @return [void]
|
67
100
|
def reset!
|
68
101
|
@storage.clear!
|
69
102
|
@source_mapping.clear
|
@@ -74,8 +107,6 @@ module Flutter
|
|
74
107
|
@storage.to_s
|
75
108
|
end
|
76
109
|
|
77
|
-
attr_reader :mapping
|
78
|
-
|
79
110
|
private
|
80
111
|
|
81
112
|
def hit!(test, tracepoint)
|
@@ -116,6 +147,13 @@ module Flutter
|
|
116
147
|
end
|
117
148
|
end
|
118
149
|
|
150
|
+
##
|
151
|
+
# Check if a file pair should be tracked or not based on the
|
152
|
+
# +sources+ and +exclusions+ lists provided when initializing
|
153
|
+
# the instance
|
154
|
+
#
|
155
|
+
# @param [String] file
|
156
|
+
# @param [Symbol] _method
|
119
157
|
def tracked?(file, _method)
|
120
158
|
@tracked_files.fetch(file) do
|
121
159
|
@sources.any?(->(source) { File.fnmatch?(source, file) }) && !@exclusions.any?(->(exclusion) {
|
@@ -124,6 +162,10 @@ module Flutter
|
|
124
162
|
end
|
125
163
|
end
|
126
164
|
|
165
|
+
##
|
166
|
+
# Generates a mapping of
|
167
|
+
#
|
168
|
+
# @return [Hash<String, Hash<String, Hash<String, String>>>]
|
127
169
|
def generate_source_mapping
|
128
170
|
@test_mapping.map { |_k, v| v.keys }.flatten.uniq.map do |file|
|
129
171
|
[file, @current_source_mapping.fetch(file) { Flutter::Parser.new(file).signatures }]
|
data/lib/flutter/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flutter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.0.pre.
|
4
|
+
version: 0.1.0.pre.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ali-Akber Saifee
|
@@ -9,50 +9,50 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2022-09-
|
12
|
+
date: 2022-09-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: deep_merge
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - "~>"
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: '
|
20
|
+
version: '1.2'
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '1.2'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: dry-configurable
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- - "
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '0'
|
34
|
+
version: '0.15'
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- - "
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: '0'
|
41
|
+
version: '0.15'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: parser
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- - "
|
46
|
+
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '3.1'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- - "
|
53
|
+
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '3.1'
|
56
56
|
description: "Flutter plugs in to your RSpec or Minitest test suites\n and helps
|
57
57
|
you run only the tests that exercise the code you have changed since the last run\n
|
58
58
|
\ "
|
@@ -73,81 +73,6 @@ files:
|
|
73
73
|
- README.md
|
74
74
|
- Rakefile
|
75
75
|
- TODO.md
|
76
|
-
- integration_tests/minitest/grape_app/.gitignore
|
77
|
-
- integration_tests/minitest/grape_app/.ruby-version
|
78
|
-
- integration_tests/minitest/grape_app/Gemfile
|
79
|
-
- integration_tests/minitest/grape_app/Gemfile.lock
|
80
|
-
- integration_tests/minitest/grape_app/README.md
|
81
|
-
- integration_tests/minitest/grape_app/Rakefile
|
82
|
-
- integration_tests/minitest/grape_app/api/api.rb
|
83
|
-
- integration_tests/minitest/grape_app/api/routes/api_helpers.rb
|
84
|
-
- integration_tests/minitest/grape_app/api/routes/change_request/api.rb
|
85
|
-
- integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb
|
86
|
-
- integration_tests/minitest/grape_app/api/routes/event/api.rb
|
87
|
-
- integration_tests/minitest/grape_app/api/routes/event/response_entity.rb
|
88
|
-
- integration_tests/minitest/grape_app/api/routes/project/api.rb
|
89
|
-
- integration_tests/minitest/grape_app/api/routes/project/response_entity.rb
|
90
|
-
- integration_tests/minitest/grape_app/api/routes/property/api.rb
|
91
|
-
- integration_tests/minitest/grape_app/api/routes/property/response_entity.rb
|
92
|
-
- integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb
|
93
|
-
- integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb
|
94
|
-
- integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb
|
95
|
-
- integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb
|
96
|
-
- integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb
|
97
|
-
- integration_tests/minitest/grape_app/api/routes/user/api.rb
|
98
|
-
- integration_tests/minitest/grape_app/api/routes/user/response_entity.rb
|
99
|
-
- integration_tests/minitest/grape_app/app/app.rb
|
100
|
-
- integration_tests/minitest/grape_app/app/change_request/endpoint.rb
|
101
|
-
- integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb
|
102
|
-
- integration_tests/minitest/grape_app/app/change_request/service.rb
|
103
|
-
- integration_tests/minitest/grape_app/app/event/endpoint.rb
|
104
|
-
- integration_tests/minitest/grape_app/app/event/service.rb
|
105
|
-
- integration_tests/minitest/grape_app/app/event/validator.rb
|
106
|
-
- integration_tests/minitest/grape_app/app/project/endpoint.rb
|
107
|
-
- integration_tests/minitest/grape_app/app/project/service.rb
|
108
|
-
- integration_tests/minitest/grape_app/app/property/endpoint.rb
|
109
|
-
- integration_tests/minitest/grape_app/app/property/service.rb
|
110
|
-
- integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb
|
111
|
-
- integration_tests/minitest/grape_app/app/trackable_object/service.rb
|
112
|
-
- integration_tests/minitest/grape_app/app/trackable_object/validator.rb
|
113
|
-
- integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb
|
114
|
-
- integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb
|
115
|
-
- integration_tests/minitest/grape_app/app/tracking_spec/service.rb
|
116
|
-
- integration_tests/minitest/grape_app/app/tracking_spec/validator.rb
|
117
|
-
- integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb
|
118
|
-
- integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb
|
119
|
-
- integration_tests/minitest/grape_app/app/versioned_entity/entity.rb
|
120
|
-
- integration_tests/minitest/grape_app/app/versioned_entity/service.rb
|
121
|
-
- integration_tests/minitest/grape_app/app/versioned_entity/validator.rb
|
122
|
-
- integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb
|
123
|
-
- integration_tests/minitest/grape_app/config.ru
|
124
|
-
- integration_tests/minitest/grape_app/config/boot.rb
|
125
|
-
- integration_tests/minitest/grape_app/db/proto/change_request.rb
|
126
|
-
- integration_tests/minitest/grape_app/db/proto/common/doc.rb
|
127
|
-
- integration_tests/minitest/grape_app/db/proto/event.rb
|
128
|
-
- integration_tests/minitest/grape_app/db/proto/event_snapshot.rb
|
129
|
-
- integration_tests/minitest/grape_app/db/proto/project.rb
|
130
|
-
- integration_tests/minitest/grape_app/db/proto/property.rb
|
131
|
-
- integration_tests/minitest/grape_app/db/proto/property_snapshot.rb
|
132
|
-
- integration_tests/minitest/grape_app/db/proto/trackable_object.rb
|
133
|
-
- integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb
|
134
|
-
- integration_tests/minitest/grape_app/db/proto/tracking_spec.rb
|
135
|
-
- integration_tests/minitest/grape_app/test/api/functional/event_test.rb
|
136
|
-
- integration_tests/minitest/grape_app/test/api/functional/property_test.rb
|
137
|
-
- integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb
|
138
|
-
- integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb
|
139
|
-
- integration_tests/minitest/grape_app/test/api/functional/user_test.rb
|
140
|
-
- integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb
|
141
|
-
- integration_tests/minitest/grape_app/test/fixtures/change_requests.rb
|
142
|
-
- integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb
|
143
|
-
- integration_tests/minitest/grape_app/test/fixtures/events.rb
|
144
|
-
- integration_tests/minitest/grape_app/test/fixtures/properties.rb
|
145
|
-
- integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb
|
146
|
-
- integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json
|
147
|
-
- integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb
|
148
|
-
- integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb
|
149
|
-
- integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb
|
150
|
-
- integration_tests/minitest/grape_app/test/test_helper.rb
|
151
76
|
- lib/flutter.rb
|
152
77
|
- lib/flutter/config.rb
|
153
78
|
- lib/flutter/minitest.rb
|
@@ -173,14 +98,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
98
|
requirements:
|
174
99
|
- - ">="
|
175
100
|
- !ruby/object:Gem::Version
|
176
|
-
version: 2.
|
101
|
+
version: 2.7.0
|
177
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
103
|
requirements:
|
179
104
|
- - ">"
|
180
105
|
- !ruby/object:Gem::Version
|
181
106
|
version: 1.3.1
|
182
107
|
requirements: []
|
183
|
-
rubygems_version: 3.
|
108
|
+
rubygems_version: 3.2.33
|
184
109
|
signing_key:
|
185
110
|
specification_version: 4
|
186
111
|
summary: Intelligent test selection based on incremental code changes
|
@@ -1,67 +0,0 @@
|
|
1
|
-
*.gem
|
2
|
-
*.rbc
|
3
|
-
/.config
|
4
|
-
/coverage/
|
5
|
-
/InstalledFiles
|
6
|
-
/pkg/
|
7
|
-
/spec/reports/
|
8
|
-
/spec/examples.txt
|
9
|
-
/test/tmp/
|
10
|
-
/test/version_tmp/
|
11
|
-
/tmp/
|
12
|
-
|
13
|
-
# Used by dotenv library to load environment variables.
|
14
|
-
# .env
|
15
|
-
|
16
|
-
# Ignore Byebug command history file.
|
17
|
-
.byebug_history
|
18
|
-
|
19
|
-
## Specific to RubyMotion:
|
20
|
-
.dat*
|
21
|
-
.repl_history
|
22
|
-
build/
|
23
|
-
*.bridgesupport
|
24
|
-
build-iPhoneOS/
|
25
|
-
build-iPhoneSimulator/
|
26
|
-
|
27
|
-
## Specific to RubyMotion (use of CocoaPods):
|
28
|
-
#
|
29
|
-
# We recommend against adding the Pods directory to your .gitignore. However
|
30
|
-
# you should judge for yourself, the pros and cons are mentioned at:
|
31
|
-
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
|
32
|
-
#
|
33
|
-
# vendor/Pods/
|
34
|
-
|
35
|
-
## Documentation cache and generated files:
|
36
|
-
/.yardoc/
|
37
|
-
/_yardoc/
|
38
|
-
/doc/
|
39
|
-
/rdoc/
|
40
|
-
|
41
|
-
## Environment normalization:
|
42
|
-
/.bundle/
|
43
|
-
/vendor/bundle
|
44
|
-
/lib/bundler/man/
|
45
|
-
|
46
|
-
# for a library or gem, you might want to ignore these files since the code is
|
47
|
-
# intended to run in multiple environments; otherwise, check them in:
|
48
|
-
# Gemfile.lock
|
49
|
-
# .ruby-version
|
50
|
-
# .ruby-gemset
|
51
|
-
|
52
|
-
# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
|
53
|
-
.rvmrc
|
54
|
-
|
55
|
-
# Used by RuboCop. Remote config files pulled in from inherit_from directive.
|
56
|
-
# .rubocop-https?--*
|
57
|
-
|
58
|
-
### VisualStudioCode ###
|
59
|
-
.vscode/
|
60
|
-
|
61
|
-
### VisualStudioCode Patch ###
|
62
|
-
# Ignore all local history of files
|
63
|
-
.history
|
64
|
-
|
65
|
-
.idea/
|
66
|
-
|
67
|
-
# End of https://www.gitignore.io/api/visualstudiocode
|
@@ -1 +0,0 @@
|
|
1
|
-
2.7.1
|
@@ -1,17 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
source 'https://rubygems.org'
|
3
|
-
gem 'dotenv'
|
4
|
-
# api definitions
|
5
|
-
gem 'grape'
|
6
|
-
gem 'grape-entity'
|
7
|
-
gem 'grape-swagger'
|
8
|
-
# web server
|
9
|
-
gem 'puma'
|
10
|
-
# task runner for ruby
|
11
|
-
gem 'rake'
|
12
|
-
gem 'flutter', path: '../../../'
|
13
|
-
|
14
|
-
group :development, :test do
|
15
|
-
gem 'minitest' #, require: false
|
16
|
-
gem 'rack-test', require: 'rack/test'
|
17
|
-
end
|