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.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -1
  3. data/README.md +3 -1
  4. data/lib/flutter/persistence.rb +51 -5
  5. data/lib/flutter/tracker.rb +47 -5
  6. data/lib/flutter/version.rb +1 -1
  7. metadata +16 -91
  8. data/integration_tests/minitest/grape_app/.gitignore +0 -67
  9. data/integration_tests/minitest/grape_app/.ruby-version +0 -1
  10. data/integration_tests/minitest/grape_app/Gemfile +0 -17
  11. data/integration_tests/minitest/grape_app/Gemfile.lock +0 -89
  12. data/integration_tests/minitest/grape_app/README.md +0 -2
  13. data/integration_tests/minitest/grape_app/Rakefile +0 -9
  14. data/integration_tests/minitest/grape_app/api/api.rb +0 -34
  15. data/integration_tests/minitest/grape_app/api/routes/api_helpers.rb +0 -12
  16. data/integration_tests/minitest/grape_app/api/routes/change_request/api.rb +0 -69
  17. data/integration_tests/minitest/grape_app/api/routes/change_request/response_entity.rb +0 -18
  18. data/integration_tests/minitest/grape_app/api/routes/event/api.rb +0 -121
  19. data/integration_tests/minitest/grape_app/api/routes/event/response_entity.rb +0 -41
  20. data/integration_tests/minitest/grape_app/api/routes/project/api.rb +0 -59
  21. data/integration_tests/minitest/grape_app/api/routes/project/response_entity.rb +0 -13
  22. data/integration_tests/minitest/grape_app/api/routes/property/api.rb +0 -78
  23. data/integration_tests/minitest/grape_app/api/routes/property/response_entity.rb +0 -31
  24. data/integration_tests/minitest/grape_app/api/routes/trackable_object/api.rb +0 -64
  25. data/integration_tests/minitest/grape_app/api/routes/trackable_object/response_entity.rb +0 -24
  26. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/api.rb +0 -88
  27. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/response_entity.rb +0 -17
  28. data/integration_tests/minitest/grape_app/api/routes/tracking_spec/spec_response.rb +0 -19
  29. data/integration_tests/minitest/grape_app/api/routes/user/api.rb +0 -22
  30. data/integration_tests/minitest/grape_app/api/routes/user/response_entity.rb +0 -12
  31. data/integration_tests/minitest/grape_app/app/app.rb +0 -30
  32. data/integration_tests/minitest/grape_app/app/change_request/endpoint.rb +0 -24
  33. data/integration_tests/minitest/grape_app/app/change_request/generate_system_changes.rb +0 -25
  34. data/integration_tests/minitest/grape_app/app/change_request/service.rb +0 -79
  35. data/integration_tests/minitest/grape_app/app/event/endpoint.rb +0 -78
  36. data/integration_tests/minitest/grape_app/app/event/service.rb +0 -68
  37. data/integration_tests/minitest/grape_app/app/event/validator.rb +0 -108
  38. data/integration_tests/minitest/grape_app/app/project/endpoint.rb +0 -24
  39. data/integration_tests/minitest/grape_app/app/project/service.rb +0 -42
  40. data/integration_tests/minitest/grape_app/app/property/endpoint.rb +0 -39
  41. data/integration_tests/minitest/grape_app/app/property/service.rb +0 -56
  42. data/integration_tests/minitest/grape_app/app/trackable_object/endpoint.rb +0 -38
  43. data/integration_tests/minitest/grape_app/app/trackable_object/service.rb +0 -49
  44. data/integration_tests/minitest/grape_app/app/trackable_object/validator.rb +0 -40
  45. data/integration_tests/minitest/grape_app/app/tracking_spec/endpoint.rb +0 -58
  46. data/integration_tests/minitest/grape_app/app/tracking_spec/expand_tracking_spec_events.rb +0 -91
  47. data/integration_tests/minitest/grape_app/app/tracking_spec/service.rb +0 -51
  48. data/integration_tests/minitest/grape_app/app/tracking_spec/validator.rb +0 -61
  49. data/integration_tests/minitest/grape_app/app/utils/errors/api_exceptions.rb +0 -10
  50. data/integration_tests/minitest/grape_app/app/utils/errors/service_exceptions.rb +0 -12
  51. data/integration_tests/minitest/grape_app/app/versioned_entity/entity.rb +0 -110
  52. data/integration_tests/minitest/grape_app/app/versioned_entity/service.rb +0 -47
  53. data/integration_tests/minitest/grape_app/app/versioned_entity/validator.rb +0 -61
  54. data/integration_tests/minitest/grape_app/app/versioned_entity_snapshot/entity.rb +0 -32
  55. data/integration_tests/minitest/grape_app/config/boot.rb +0 -9
  56. data/integration_tests/minitest/grape_app/config.ru +0 -3
  57. data/integration_tests/minitest/grape_app/db/proto/change_request.rb +0 -10
  58. data/integration_tests/minitest/grape_app/db/proto/common/doc.rb +0 -86
  59. data/integration_tests/minitest/grape_app/db/proto/event.rb +0 -10
  60. data/integration_tests/minitest/grape_app/db/proto/event_snapshot.rb +0 -10
  61. data/integration_tests/minitest/grape_app/db/proto/project.rb +0 -21
  62. data/integration_tests/minitest/grape_app/db/proto/property.rb +0 -10
  63. data/integration_tests/minitest/grape_app/db/proto/property_snapshot.rb +0 -10
  64. data/integration_tests/minitest/grape_app/db/proto/trackable_object.rb +0 -10
  65. data/integration_tests/minitest/grape_app/db/proto/trackable_object_snapshot.rb +0 -10
  66. data/integration_tests/minitest/grape_app/db/proto/tracking_spec.rb +0 -10
  67. data/integration_tests/minitest/grape_app/test/api/functional/event_test.rb +0 -186
  68. data/integration_tests/minitest/grape_app/test/api/functional/property_test.rb +0 -197
  69. data/integration_tests/minitest/grape_app/test/api/functional/trackable_object_test.rb +0 -134
  70. data/integration_tests/minitest/grape_app/test/api/functional/tracking_spec_test.rb +0 -56
  71. data/integration_tests/minitest/grape_app/test/api/functional/user_test.rb +0 -24
  72. data/integration_tests/minitest/grape_app/test/api/functional/versioned_entity_helper.rb +0 -157
  73. data/integration_tests/minitest/grape_app/test/fixtures/change_requests.rb +0 -83
  74. data/integration_tests/minitest/grape_app/test/fixtures/event_snapshots.rb +0 -105
  75. data/integration_tests/minitest/grape_app/test/fixtures/events.rb +0 -58
  76. data/integration_tests/minitest/grape_app/test/fixtures/properties.rb +0 -66
  77. data/integration_tests/minitest/grape_app/test/fixtures/property_snapshots.rb +0 -124
  78. data/integration_tests/minitest/grape_app/test/fixtures/sample_tracking_spec.json +0 -125
  79. data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects.rb +0 -58
  80. data/integration_tests/minitest/grape_app/test/fixtures/trackable_objects_snapshots.rb +0 -61
  81. data/integration_tests/minitest/grape_app/test/fixtures/tracking_specs.rb +0 -22
  82. 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: c941483caa54c2444a2cfb3f264f9cea9cf79dbbeaac3e70803f83929d5ca542
4
- data.tar.gz: 942bf3843ba7de39bd80c32b69f045126cc08a8b1a3a7b7d139d992a2642438a
3
+ metadata.gz: bdffa233de57141c16bbbd41684ca85b04208b32edeec97625662383f4e3e753
4
+ data.tar.gz: be3eb7f6bb1d0ffd8123ad4b8c2293ecdaf4c3979c75be8471542a2c26e1d771
5
5
  SHA512:
6
- metadata.gz: a2a7862c51c5ecc07bc8ac6a16f99ab5e324a76a8905eab1382369c3e8f0230b1e062e774ad7934f526351c630ad4428478b66759ca68b9d5037d050df07b521
7
- data.tar.gz: 43ea7ed0cbfcbbc354f1a1d7816d4bae213b73acdf9bb9585eeafbab545396f45d7eeb6adaa9aa8f8c085fcb7717f15c579d2f0a60804aed356df2e244c64ab9
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
- - Initial release
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 in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
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
 
@@ -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
- def persist!(updates)
30
- raise NotImplementedError
31
- end
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
@@ -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
- # Resets the in-memory test_mapping for each test, and stores the methods that
27
- # the test calls in the in-memory test_mapping
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 }]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Flutter
4
- VERSION = "0.1.0.pre.2"
4
+ VERSION = "0.1.0.pre.3"
5
5
  end
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.2
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-29 00:00:00.000000000 Z
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: '0'
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: '0'
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: '0'
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: '0'
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.6.0
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.3.7
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,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