rspec_fixtures 0.0.1
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 +7 -0
- data/README.md +23 -0
- data/lib/rspec_fixtures.rb +5 -0
- data/lib/rspec_fixtures/colors.rb +11 -0
- data/lib/rspec_fixtures/matchers/match_fixture.rb +78 -0
- data/lib/rspec_fixtures/rspec_config.rb +7 -0
- data/lib/rspec_fixtures/version.rb +3 -0
- metadata +133 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 4f1f2d6588eaf7ebb37981b9f5aa5e55dd85fad0
|
4
|
+
data.tar.gz: 4b4987f63e870117de3c36b8362d78ddd88ac96f
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 783f4e3c8625d4bb2592e9b2df79a87363176f38ed147b413067206c853106b244a8dfbeab18c1cf65abd016af0dd76a5d4492e96e4ca0c418183384ff4aafba
|
7
|
+
data.tar.gz: 5d38f2e562d12c44ccce09df8ec13678cacee5a1bbc06bb5698372a8fbc61c13c122a8537d74089a29d43c8800e2133cbb0c43b0d060f81d95ef4034d6357c32
|
data/README.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
RSpec Fixtures
|
2
|
+
==================================================
|
3
|
+
|
4
|
+
[](https://rubygems.org/gems/rspec_fixtures)
|
5
|
+
[](https://travis-ci.org/DannyBen/rspec_fixtures)
|
6
|
+
[](https://codeclimate.com/github/DannyBen/rspec_fixtures)
|
7
|
+
[](https://gemnasium.com/DannyBen/rspec_fixtures)
|
8
|
+
|
9
|
+
|
10
|
+
Install
|
11
|
+
--------------------------------------------------
|
12
|
+
|
13
|
+
```
|
14
|
+
$ gem install rspec_fixtures
|
15
|
+
```
|
16
|
+
|
17
|
+
Or with bundler:
|
18
|
+
|
19
|
+
```ruby
|
20
|
+
gem 'rspec_fixtures'
|
21
|
+
```
|
22
|
+
|
23
|
+
|
@@ -0,0 +1,78 @@
|
|
1
|
+
module RSpecFixtures
|
2
|
+
module Matchers
|
3
|
+
def match_fixture(expected)
|
4
|
+
MatchFixture.new expected
|
5
|
+
end
|
6
|
+
|
7
|
+
class MatchFixture
|
8
|
+
include Colors
|
9
|
+
|
10
|
+
attr_reader :fixture_name, :actual
|
11
|
+
|
12
|
+
def initialize(fixture_name=nil)
|
13
|
+
@fixture_name = fixture_name
|
14
|
+
end
|
15
|
+
|
16
|
+
def matches?(actual)
|
17
|
+
@actual = actual
|
18
|
+
if actual == expected or !interactive?
|
19
|
+
actual == expected
|
20
|
+
else
|
21
|
+
approve_fixture
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def expected
|
26
|
+
@expected ||= expected!
|
27
|
+
end
|
28
|
+
|
29
|
+
def failure_message
|
30
|
+
"expected #{actual}\nto match #{expected}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def diffable?
|
34
|
+
true
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def interactive?
|
40
|
+
RSpec.configuration.interactive_fixtures
|
41
|
+
end
|
42
|
+
|
43
|
+
def fixtures_dir
|
44
|
+
RSpec.configuration.fixtures_path
|
45
|
+
end
|
46
|
+
|
47
|
+
def fixture_file
|
48
|
+
"#{fixtures_dir}/#{fixture_name}"
|
49
|
+
end
|
50
|
+
|
51
|
+
def approve_fixture
|
52
|
+
puts "%{blue}--- Approval Needed ---%{reset}\n" % colors
|
53
|
+
if expected.empty?
|
54
|
+
puts actual
|
55
|
+
else
|
56
|
+
puts "--- New (Actual) ------%{reset}\n#{actual}" % colors
|
57
|
+
puts "--- Old (Fixture) -----%{reset}\n#{expected}" % colors
|
58
|
+
end
|
59
|
+
print "%{blue}--- Approve? (y/N): --> %{reset}" % colors
|
60
|
+
|
61
|
+
if $stdin.getch == "y"
|
62
|
+
puts "%{green}Approved%{reset}" % colors
|
63
|
+
File.write fixture_file, actual
|
64
|
+
true
|
65
|
+
else
|
66
|
+
puts "%{red}Not Approved%{reset}" % colors
|
67
|
+
actual == expected
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
def expected!
|
72
|
+
Dir.mkdir fixtures_dir unless Dir.exist? fixtures_dir
|
73
|
+
File.write fixture_file, nil unless File.exist? fixture_file
|
74
|
+
File.read fixture_file
|
75
|
+
end
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
metadata
ADDED
@@ -0,0 +1,133 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rspec_fixtures
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Danny Ben Shitrit
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-12-02 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rspec
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.7'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.7'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: runfile
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.9'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.9'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: runfile-tasks
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.4'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.4'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: byebug
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '9.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '9.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: simplecov
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0.14'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.14'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: yard
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0.8'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0.8'
|
97
|
+
description: Automatic interactive fixtures for rspec
|
98
|
+
email: db@dannyben.com
|
99
|
+
executables: []
|
100
|
+
extensions: []
|
101
|
+
extra_rdoc_files: []
|
102
|
+
files:
|
103
|
+
- README.md
|
104
|
+
- lib/rspec_fixtures.rb
|
105
|
+
- lib/rspec_fixtures/colors.rb
|
106
|
+
- lib/rspec_fixtures/matchers/match_fixture.rb
|
107
|
+
- lib/rspec_fixtures/rspec_config.rb
|
108
|
+
- lib/rspec_fixtures/version.rb
|
109
|
+
homepage: https://github.com/DannyBen/rspec_fixtures
|
110
|
+
licenses:
|
111
|
+
- MIT
|
112
|
+
metadata: {}
|
113
|
+
post_install_message:
|
114
|
+
rdoc_options: []
|
115
|
+
require_paths:
|
116
|
+
- lib
|
117
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - ">="
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: 2.0.0
|
122
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - ">="
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '0'
|
127
|
+
requirements: []
|
128
|
+
rubyforge_project:
|
129
|
+
rubygems_version: 2.6.13
|
130
|
+
signing_key:
|
131
|
+
specification_version: 4
|
132
|
+
summary: Interactive RSpec Fixtures
|
133
|
+
test_files: []
|