appmap 0.20.0 → 0.21.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +6 -4
- data/appmap.gemspec +3 -2
- data/lib/appmap/command/record.rb +5 -0
- data/lib/appmap/middleware/remote_recording.rb +3 -0
- data/lib/appmap/rspec.rb +7 -1
- data/lib/appmap/trace/tracer.rb +1 -1
- data/lib/appmap/version.rb +3 -1
- data/test/fixtures/rspec_recorder/spec/decorated_hello_spec.rb +9 -0
- data/test/fixtures/rspec_recorder/spec/{hello_spec.rb → labeled_hello_spec.rb} +2 -2
- data/test/fixtures/rspec_recorder/spec/plain_hello_spec.rb +9 -0
- data/test/rspec_test.rb +47 -7
- metadata +7 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f6f185625c62dee8266aaca7dc13d15994bf1ebe947569e134da574a0a557a0
|
4
|
+
data.tar.gz: 46c6c133477606f5ba908b710fa69fd44063b91b4e966e8d1d36fb5eb8b4aa6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82ed069dbe728941c732d1b9c9e5681a6d31544df703a859e4e3a8c75fe0fde906036bfaaabebac5ad2f2cab5df1176e2233f16e975ab39f2eca1bac592fd3f0
|
7
|
+
data.tar.gz: 77d93bb43e7efdc5cd81570422af35aac203e84438eea375eb18f07d5ed3e0a76ad7383ba808daa1cc8ac0e7f5a1a224c3857131aef7fbe5a64c323fefacdab7
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -145,17 +145,19 @@ unless Rails.env.test?
|
|
145
145
|
end
|
146
146
|
```
|
147
147
|
|
148
|
-
2.
|
148
|
+
2. Download and unpack the [AppLand browser extension](https://github.com/applandinc/appland-browser-extension). Install into Chrome using `chrome://extensions/`. Turn on "Developer Mode" and then load the extension using the "Load unpacked" button.
|
149
|
+
|
150
|
+
3. Start your Rails application server. For example:
|
149
151
|
|
150
152
|
```sh-session
|
151
153
|
$ bundle exec rails server
|
152
154
|
```
|
153
155
|
|
154
|
-
|
156
|
+
4. Open the AppApp browser extension and push `Start`.
|
155
157
|
|
156
|
-
|
158
|
+
5. Use your app. For example, perform a login flow, or run through a manual UI test.
|
157
159
|
|
158
|
-
|
160
|
+
6. Open the AppApp browser extension and push `Stop`. The recording will be transferred to the AppLand website and opened in your browser.
|
159
161
|
|
160
162
|
# Uploading AppMaps
|
161
163
|
|
data/appmap.gemspec
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
# frozen_string_literal: true
|
1
2
|
|
2
3
|
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
@@ -9,8 +10,8 @@ Gem::Specification.new do |spec|
|
|
9
10
|
spec.authors = ['Kevin Gilpin']
|
10
11
|
spec.email = ['kgilpin@gmail.com']
|
11
12
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.homepage =
|
13
|
+
spec.summary = %q{Record the operation of a Ruby program, using the AppLand 'AppMap' format.}
|
14
|
+
spec.homepage = AppMap::URL
|
14
15
|
spec.license = 'MIT'
|
15
16
|
|
16
17
|
# Specify which files should be added to the gem when it is released.
|
@@ -69,6 +69,9 @@ module AppMap
|
|
69
69
|
|
70
70
|
require 'appmap/command/record'
|
71
71
|
metadata = AppMap::Command::Record.detect_metadata
|
72
|
+
metadata[:recorder] = {
|
73
|
+
name: 'remote_recording'
|
74
|
+
}
|
72
75
|
|
73
76
|
response = JSON.generate(version: AppMap::APPMAP_FORMAT_VERSION, classMap: @features, metadata: metadata, events: @events)
|
74
77
|
|
data/lib/appmap/rspec.rb
CHANGED
@@ -42,6 +42,9 @@ module AppMap
|
|
42
42
|
name: 'rspec',
|
43
43
|
version: Gem.loaded_specs['rspec-core']&.version&.to_s
|
44
44
|
}
|
45
|
+
m[:recorder] = {
|
46
|
+
name: 'rspec'
|
47
|
+
}
|
45
48
|
end
|
46
49
|
|
47
50
|
appmap = {
|
@@ -272,14 +275,17 @@ module AppMap
|
|
272
275
|
description = []
|
273
276
|
leaf = scope = ScopeExample.new(example)
|
274
277
|
feature_group = feature = nil
|
275
|
-
labels = scope.labels.map(&:to_s).map(&:strip).reject(&:blank?).map(&:downcase).uniq
|
276
278
|
|
279
|
+
labels = []
|
277
280
|
while scope
|
281
|
+
labels += scope.labels
|
278
282
|
description << scope.description
|
279
283
|
feature ||= scope.feature
|
280
284
|
feature_group ||= scope.feature_group
|
281
285
|
scope = scope.parent
|
282
286
|
end
|
287
|
+
|
288
|
+
labels = labels.map(&:to_s).map(&:strip).reject(&:blank?).map(&:downcase).uniq
|
283
289
|
description.reject!(&:nil?).reject(&:blank?)
|
284
290
|
default_description = description.last
|
285
291
|
description.reverse!
|
data/lib/appmap/trace/tracer.rb
CHANGED
@@ -135,7 +135,7 @@ module AppMap
|
|
135
135
|
end
|
136
136
|
|
137
137
|
def collect_parameters(tp)
|
138
|
-
tp.self.method(tp.method_id).parameters.collect do |pinfo|
|
138
|
+
-> { tp.self.method(tp.method_id).parameters rescue [] }.call.collect do |pinfo|
|
139
139
|
kind, key = pinfo
|
140
140
|
value = value_in_binding(tp, key)
|
141
141
|
{
|
data/lib/appmap/version.rb
CHANGED
@@ -2,8 +2,8 @@ require 'rspec'
|
|
2
2
|
require 'appmap/rspec'
|
3
3
|
require 'hello'
|
4
4
|
|
5
|
-
describe Hello,
|
6
|
-
it 'says hello',
|
5
|
+
describe Hello, appmap: 'hello' do
|
6
|
+
it 'says hello', appmap: 'speak' do
|
7
7
|
expect(Hello.new.say_hello).to eq('Hello!')
|
8
8
|
end
|
9
9
|
end
|
data/test/rspec_test.rb
CHANGED
@@ -5,18 +5,58 @@ require 'test_helper'
|
|
5
5
|
require 'English'
|
6
6
|
|
7
7
|
class RSpecTest < Minitest::Test
|
8
|
-
def
|
8
|
+
def perform_test(test_name)
|
9
9
|
Bundler.with_clean_env do
|
10
10
|
Dir.chdir 'test/fixtures/rspec_recorder' do
|
11
|
-
appmap_file = 'tmp/appmap/rspec/Hello_says_hello.json'
|
12
11
|
FileUtils.rm_rf 'tmp'
|
13
12
|
system 'bundle'
|
14
|
-
system({ 'APPMAP' => 'true' },
|
15
|
-
|
16
|
-
|
17
|
-
assert_includes File.read(appmap_file), %("feature":"Say hello")
|
18
|
-
assert_includes File.read(appmap_file), %("feature_group":"Hello")
|
13
|
+
system({ 'APPMAP' => 'true' }, %(bundle exec rspec spec/#{test_name}.rb))
|
14
|
+
|
15
|
+
yield
|
19
16
|
end
|
20
17
|
end
|
21
18
|
end
|
19
|
+
|
20
|
+
def test_record_decorated_rspec
|
21
|
+
perform_test 'decorated_hello_spec' do
|
22
|
+
appmap_file = 'tmp/appmap/rspec/Hello_says_hello.appmap.json'
|
23
|
+
|
24
|
+
assert File.file?(appmap_file), 'appmap output file does not exist'
|
25
|
+
appmap = JSON.parse(File.read(appmap_file))
|
26
|
+
assert_equal AppMap::APPMAP_FORMAT_VERSION, appmap['version']
|
27
|
+
assert_includes appmap.keys, 'metadata'
|
28
|
+
metadata = appmap['metadata']
|
29
|
+
assert_equal 'Saying hello', metadata['feature_group']
|
30
|
+
assert_equal 'Speak hello', metadata['feature']
|
31
|
+
assert_equal 'Hello says hello', metadata['name']
|
32
|
+
assert_includes metadata.keys, 'client'
|
33
|
+
assert_equal({ name: 'appmap', url: AppMap::URL, version: AppMap::VERSION }.stringify_keys, metadata['client'])
|
34
|
+
assert_includes metadata.keys, 'recorder'
|
35
|
+
assert_equal({ name: 'rspec' }.stringify_keys, metadata['recorder'])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_record_plain_rspec
|
40
|
+
perform_test 'plain_hello_spec' do
|
41
|
+
appmap_file = 'tmp/appmap/rspec/Hello_says_hello.appmap.json'
|
42
|
+
assert File.file?(appmap_file), 'appmap output file does not exist'
|
43
|
+
appmap = JSON.parse(File.read(appmap_file))
|
44
|
+
assert_includes appmap.keys, 'metadata'
|
45
|
+
metadata = appmap['metadata']
|
46
|
+
assert_equal 'Hello', metadata['feature_group']
|
47
|
+
assert_equal 'Hello', metadata['feature']
|
48
|
+
assert_equal 'Hello says hello', metadata['name']
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_record_labeled_rspec
|
53
|
+
perform_test 'labeled_hello_spec' do
|
54
|
+
appmap_file = 'tmp/appmap/rspec/Hello_says_hello.appmap.json'
|
55
|
+
assert File.file?(appmap_file), 'appmap output file does not exist'
|
56
|
+
appmap = JSON.parse(File.read(appmap_file))
|
57
|
+
assert_includes appmap.keys, 'metadata'
|
58
|
+
metadata = appmap['metadata']
|
59
|
+
assert_equal %w[hello speak], metadata['labels'].sort
|
60
|
+
end
|
61
|
+
end
|
22
62
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: appmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.21.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kevin Gilpin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -467,7 +467,9 @@ files:
|
|
467
467
|
- test/fixtures/rspec_recorder/Gemfile
|
468
468
|
- test/fixtures/rspec_recorder/appmap.yml
|
469
469
|
- test/fixtures/rspec_recorder/lib/hello.rb
|
470
|
-
- test/fixtures/rspec_recorder/spec/
|
470
|
+
- test/fixtures/rspec_recorder/spec/decorated_hello_spec.rb
|
471
|
+
- test/fixtures/rspec_recorder/spec/labeled_hello_spec.rb
|
472
|
+
- test/fixtures/rspec_recorder/spec/plain_hello_spec.rb
|
471
473
|
- test/fixtures/trace_test/trace_program_1.rb
|
472
474
|
- test/implicit_inspect_test.rb
|
473
475
|
- test/include_exclude_test.rb
|
@@ -475,7 +477,7 @@ files:
|
|
475
477
|
- test/rspec_test.rb
|
476
478
|
- test/test_helper.rb
|
477
479
|
- test/trace_test.rb
|
478
|
-
homepage: https://github.com/
|
480
|
+
homepage: https://github.com/applandinc/appmap-ruby
|
479
481
|
licenses:
|
480
482
|
- MIT
|
481
483
|
metadata: {}
|
@@ -497,5 +499,5 @@ requirements: []
|
|
497
499
|
rubygems_version: 3.0.3
|
498
500
|
signing_key:
|
499
501
|
specification_version: 4
|
500
|
-
summary:
|
502
|
+
summary: Record the operation of a Ruby program, using the AppLand 'AppMap' format.
|
501
503
|
test_files: []
|