rspec-rest 0.1.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 93914e31c974ea40630915bca0148c886b24608cca438d627f58b7ae83a3c4b5
4
+ data.tar.gz: d31e2d01339e37c1d432dc8b36333ba8e707d2e2ebff5637c7ebbce94093ba9b
5
+ SHA512:
6
+ metadata.gz: 908e78cda54bbd8dc33be4001429e6d9ca36e0111fcd8da1aa54bded587a27225828663bcbf19c2a130c4c1d634af3f68d8d7eab270dbb2d5769459861b7d5cc
7
+ data.tar.gz: 8aed0d1c0d77ce8381169b1ed4babb90ed9f02b9b9749fe12f0f7f7724d6bc73cd9fb4fbb2ad46d75b2eeb2254c29fd7b1ea72fc3642b8ac92d2f9bd0269bdc3
data/.gitignore ADDED
@@ -0,0 +1,69 @@
1
+ *.rbc
2
+ capybara-*.html
3
+ .rspec
4
+ /db/*.sqlite3
5
+ /db/*.sqlite3-journal
6
+ /db/*.sqlite3-[0-9]*
7
+ /public/system
8
+ /coverage/
9
+ /spec/tmp
10
+ *.orig
11
+ rerun.txt
12
+ pickle-email-*.html
13
+
14
+ # Ignore all logfiles and tempfiles.
15
+ /log/*
16
+ /tmp/*
17
+ !/log/.keep
18
+ !/tmp/.keep
19
+
20
+ # TODO Comment out this rule if you are OK with secrets being uploaded to the repo
21
+ config/initializers/secret_token.rb
22
+ config/master.key
23
+
24
+ # Only include if you have production secrets in this file, which is no longer a Rails default
25
+ # config/secrets.yml
26
+
27
+ # dotenv, dotenv-rails
28
+ # TODO Comment out these rules if environment variables can be committed
29
+ .env
30
+ .env*.local
31
+
32
+ ## Environment normalization:
33
+ /.bundle
34
+ /vendor/bundle
35
+
36
+ # these should all be checked in to normalize the environment:
37
+ # Gemfile.lock, .ruby-version, .ruby-gemset
38
+
39
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
40
+ .rvmrc
41
+
42
+ # if using bower-rails ignore default bower_components path bower.json files
43
+ /vendor/assets/bower_components
44
+ *.bowerrc
45
+ bower.json
46
+
47
+ # Ignore pow environment settings
48
+ .powenv
49
+
50
+ # Ignore Byebug command history file.
51
+ .byebug_history
52
+
53
+ # Ignore node_modules
54
+ node_modules/
55
+
56
+ # Ignore precompiled javascript packs
57
+ /public/packs
58
+ /public/packs-test
59
+ /public/assets
60
+
61
+ # Ignore yarn files
62
+ /yarn-error.log
63
+ yarn-debug.log*
64
+ .yarn-integrity
65
+
66
+ # Ignore uploaded files in development
67
+ /storage/*
68
+ !/storage/.keep
69
+ /public/uploads
data/.rubocop.yml ADDED
@@ -0,0 +1,49 @@
1
+ plugins:
2
+ - rubocop-rspec
3
+
4
+ AllCops:
5
+ NewCops: enable
6
+ SuggestExtensions: false
7
+ TargetRubyVersion: 3.2
8
+ Exclude:
9
+ - "bin/**/*"
10
+ - "vendor/**/*"
11
+
12
+ Layout/LineLength:
13
+ Max: 120
14
+
15
+ RSpec/ExampleLength:
16
+ Max: 15
17
+
18
+ Style/StringLiterals:
19
+ Enabled: false
20
+
21
+ Style/Documentation:
22
+ Enabled: false
23
+
24
+ Metrics/AbcSize:
25
+ Enabled: false
26
+
27
+ Metrics/CyclomaticComplexity:
28
+ Enabled: false
29
+
30
+ Metrics/MethodLength:
31
+ Enabled: false
32
+
33
+ Metrics/PerceivedComplexity:
34
+ Enabled: false
35
+
36
+ RSpec/SpecFilePathFormat:
37
+ Enabled: false
38
+
39
+ Gemspec/DevelopmentDependencies:
40
+ Enabled: false
41
+
42
+ Gemspec/RequiredRubyVersion:
43
+ Enabled: false
44
+
45
+ RSpec/MultipleExpectations:
46
+ Enabled: false
47
+
48
+ Style/IfUnlessModifier:
49
+ Enabled: false
data/CHANGELOG.md ADDED
@@ -0,0 +1,45 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on Keep a Changelog, and this project aims to follow
6
+ Semantic Versioning.
7
+
8
+ ## [Unreleased]
9
+
10
+ No changes yet.
11
+
12
+ ## [0.1.0] - 2026-03-07
13
+
14
+ ### Added
15
+ - Initial public release of `rspec-rest`.
16
+ - Core runtime:
17
+ - `Config`, `Session`, and `Response` objects
18
+ - JSON parsing with `InvalidJsonError`
19
+ - DSL:
20
+ - `api`, `resource`, `get/post/put/patch/delete`
21
+ - request builders: `header`, `headers`, `query`, `json`, `path_params`
22
+ - auth builders: `bearer`, `unauthenticated!`
23
+ - multipart builders: `multipart!`, `file(...)`
24
+ - shared presets: `with_headers`, `with_query`, `with_auth`
25
+ - Expectations:
26
+ - `expect_status`, `expect_header`, `expect_json`, `expect_json_at`
27
+ - error/pagination helpers: `expect_error`, `expect_page_size`, `expect_max_page_size`, `expect_ids_in_order`
28
+ - reusable contract helpers: `contract`, `expect_json_contract`
29
+ - helper matchers: `integer`, `string`, `boolean`, `array_of`, `hash_including`
30
+ - Captures and selectors:
31
+ - `capture` / `get`
32
+ - minimal selector support (`$.a.b`, `$.items[0].id`)
33
+ - Failure diagnostics:
34
+ - request/response dump formatter
35
+ - pretty-printed JSON output
36
+ - configurable sensitive-header redaction
37
+ - `curl` reproduction:
38
+ - generated `curl` command in failure output
39
+ - full URL generation with `base_url`
40
+ - header/body/query reproduction with redaction
41
+ - Tooling/docs:
42
+ - RSpec + RuboCop + GitHub Actions CI
43
+ - PR and issue templates
44
+ - expanded README docs
45
+ - acceptance and formatter specs
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,74 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rspec-rest (0.1.0)
5
+ rack-test (~> 2.1)
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ ast (2.4.3)
11
+ diff-lcs (1.6.1)
12
+ json (2.18.1)
13
+ language_server-protocol (3.17.0.5)
14
+ lint_roller (1.1.0)
15
+ parallel (1.27.0)
16
+ parser (3.3.10.2)
17
+ ast (~> 2.4.1)
18
+ racc
19
+ prism (1.9.0)
20
+ racc (1.8.1)
21
+ rack (3.1.14)
22
+ rack-test (2.2.0)
23
+ rack (>= 1.3)
24
+ rainbow (3.1.1)
25
+ rake (13.2.1)
26
+ regexp_parser (2.11.3)
27
+ rspec (3.13.0)
28
+ rspec-core (~> 3.13.0)
29
+ rspec-expectations (~> 3.13.0)
30
+ rspec-mocks (~> 3.13.0)
31
+ rspec-core (3.13.3)
32
+ rspec-support (~> 3.13.0)
33
+ rspec-expectations (3.13.3)
34
+ diff-lcs (>= 1.2.0, < 2.0)
35
+ rspec-support (~> 3.13.0)
36
+ rspec-mocks (3.13.2)
37
+ diff-lcs (>= 1.2.0, < 2.0)
38
+ rspec-support (~> 3.13.0)
39
+ rspec-support (3.13.2)
40
+ rubocop (1.84.2)
41
+ json (~> 2.3)
42
+ language_server-protocol (~> 3.17.0.2)
43
+ lint_roller (~> 1.1.0)
44
+ parallel (~> 1.10)
45
+ parser (>= 3.3.0.2)
46
+ rainbow (>= 2.2.2, < 4.0)
47
+ regexp_parser (>= 2.9.3, < 3.0)
48
+ rubocop-ast (>= 1.49.0, < 2.0)
49
+ ruby-progressbar (~> 1.7)
50
+ unicode-display_width (>= 2.4.0, < 4.0)
51
+ rubocop-ast (1.49.0)
52
+ parser (>= 3.3.7.2)
53
+ prism (~> 1.7)
54
+ rubocop-rspec (3.9.0)
55
+ lint_roller (~> 1.1)
56
+ rubocop (~> 1.81)
57
+ ruby-progressbar (1.13.0)
58
+ unicode-display_width (3.2.0)
59
+ unicode-emoji (~> 4.1)
60
+ unicode-emoji (4.2.0)
61
+
62
+ PLATFORMS
63
+ arm64-darwin-23
64
+ ruby
65
+
66
+ DEPENDENCIES
67
+ rake (~> 13.0)
68
+ rspec (~> 3.13)
69
+ rspec-rest!
70
+ rubocop (>= 1.72, < 2.0)
71
+ rubocop-rspec (~> 3.4)
72
+
73
+ BUNDLED WITH
74
+ 2.6.2
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 L&L Web Consulting
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.