ffprober 0.4.1 → 0.4.2
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/.ruby-version +1 -1
- data/.travis.yml +2 -2
- data/Changes.md +6 -0
- data/README.md +1 -1
- data/Rakefile +1 -0
- data/ffprober.gemspec +20 -18
- data/lib/ffprober/ffprobe_version.rb +1 -1
- data/lib/ffprober/parser.rb +7 -1
- data/lib/ffprober/subtitle_stream.rb +4 -0
- data/lib/ffprober/version.rb +1 -1
- data/lib/ffprober.rb +1 -0
- metadata +24 -50
- data/spec/assets/301 extracting a ruby gem.m4v +0 -0
- data/spec/assets/empty_file +0 -0
- data/spec/assets/sample video.json +0 -177
- data/spec/assets/sample video.m4v +0 -0
- data/spec/assets/version_outputs/linux-nightly +0 -3
- data/spec/assets/version_outputs/osx-1_0 +0 -11
- data/spec/assets/version_outputs/osx-1_2_0 +0 -11
- data/spec/assets/version_outputs/osx-2_0 +0 -12
- data/spec/assets/version_outputs/osx-2_0_1 +0 -12
- data/spec/assets/version_outputs/osx-2_1_2 +0 -11
- data/spec/assets/version_outputs/osx-2_1_4 +0 -11
- data/spec/assets/version_outputs/osx-2_2 +0 -11
- data/spec/assets/version_outputs/osx-2_2_2 +0 -16
- data/spec/assets/version_outputs/osx-2_3_2 +0 -12
- data/spec/assets/version_outputs/raspian-0_8_6 +0 -10
- data/spec/assets/version_outputs/ubuntu-0_10_6 +0 -11
- data/spec/assets/version_outputs/windows-nightly +0 -2
- data/spec/ffprober/ffprobe_version_spec.rb +0 -58
- data/spec/ffprober/parser_spec.rb +0 -93
- data/spec/ffprober_spec.rb +0 -23
- data/spec/spec_helper.rb +0 -63
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bd7fc350d7f9f66cbb25c6cb55a1e90bf24ce8ff
|
4
|
+
data.tar.gz: 7d2acb4d7951acdfc115c7122aa62748af67b70a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5150066eddd207d94b2ca21e3c30f7255863deabf923d2229015e786763adbedddfc32901c5ed135e14fd2cdb3a001a7cc2ccd06de7db5f3f672cf6911f9526d
|
7
|
+
data.tar.gz: 5f30d8e762965ca83827dd792a87741d76899abe9864a14154315b841dc5d0ea0b357fb5d95d79e88d28cdda225bc61735081d66067b842a6d3822f760f44dfb
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.1
|
1
|
+
2.2.1
|
data/.travis.yml
CHANGED
data/Changes.md
CHANGED
data/README.md
CHANGED
@@ -43,7 +43,7 @@ help me collecting various version outputs of fprobe/ffmpeg
|
|
43
43
|
|
44
44
|
## Supported Rubies
|
45
45
|
|
46
|
-
Ffprober is tested under
|
46
|
+
Ffprober is tested under 2.0, 2.1, JRuby (head) and Rubinius and ruby-head.
|
47
47
|
|
48
48
|
[](http://travis-ci.org/beanieboi/ffprober)
|
49
49
|
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
data/ffprober.gemspec
CHANGED
@@ -1,24 +1,26 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require "ffprober/version"
|
3
5
|
|
4
|
-
Gem::Specification.new do |
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
gem.homepage = "https://github.com/beanieboi/ffprober"
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "ffprober"
|
8
|
+
spec.version = Ffprober::VERSION
|
9
|
+
spec.authors = ["beanieboi"]
|
10
|
+
spec.email = ["beanie@benle.de"]
|
10
11
|
|
11
|
-
|
12
|
-
|
12
|
+
spec.description = %q{a Ruby wrapper for ffprobe}
|
13
|
+
spec.summary = %q{a Ruby wrapper for ffprobe (part of ffmpeg)}
|
14
|
+
spec.homepage = "https://github.com/beanieboi/ffprober"
|
15
|
+
spec.license = "MIT"
|
13
16
|
|
14
|
-
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
18
|
+
spec.bindir = "exe"
|
19
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
20
|
+
spec.require_paths = ["lib"]
|
15
21
|
|
16
|
-
|
22
|
+
spec.required_ruby_version = '~> 2.0'
|
17
23
|
|
18
|
-
|
19
|
-
|
20
|
-
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
21
|
-
gem.name = "ffprober"
|
22
|
-
gem.require_paths = ["lib"]
|
23
|
-
gem.version = Ffprober::VERSION
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
24
26
|
end
|
data/lib/ffprober/parser.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'shellwords'
|
2
|
+
|
1
3
|
module Ffprober
|
2
4
|
class Parser
|
3
5
|
def self.from_file(file_to_parse)
|
@@ -10,7 +12,7 @@ module Ffprober
|
|
10
12
|
fail ArgumentError.new("File not found #{file_to_parse}")
|
11
13
|
end
|
12
14
|
|
13
|
-
json_output = `#{Ffprober.path} #{options}
|
15
|
+
json_output = `#{Ffprober.path} #{options} #{Shellwords.escape(file_to_parse)}`
|
14
16
|
from_json(json_output)
|
15
17
|
end
|
16
18
|
|
@@ -37,6 +39,10 @@ module Ffprober
|
|
37
39
|
@audio_streams ||= stream_by_codec('audio').map { |stream| Ffprober::AudioStream.new(stream) }
|
38
40
|
end
|
39
41
|
|
42
|
+
def subtitle_streams
|
43
|
+
@subtitle_streams ||= stream_by_codec('subtitle').map { |stream| Ffprober::SubtitleStream.new(stream) }
|
44
|
+
end
|
45
|
+
|
40
46
|
def chapters
|
41
47
|
@chapters ||= @json[:chapters].map { |chapter| Ffprober::Chapter.new(chapter) }
|
42
48
|
end
|
data/lib/ffprober/version.rb
CHANGED
data/lib/ffprober.rb
CHANGED
@@ -5,6 +5,7 @@ require_relative 'ffprober/format'
|
|
5
5
|
require_relative 'ffprober/stream'
|
6
6
|
require_relative 'ffprober/audio_stream'
|
7
7
|
require_relative 'ffprober/video_stream'
|
8
|
+
require_relative 'ffprober/subtitle_stream'
|
8
9
|
require_relative 'ffprober/chapter'
|
9
10
|
require_relative 'ffprober/ffprobe_version'
|
10
11
|
require 'json'
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffprober
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- beanieboi
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '10.0'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '10.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: rspec
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -40,6 +54,7 @@ files:
|
|
40
54
|
- Gemfile
|
41
55
|
- LICENSE
|
42
56
|
- README.md
|
57
|
+
- Rakefile
|
43
58
|
- ffprober.gemspec
|
44
59
|
- lib/ffprober.rb
|
45
60
|
- lib/ffprober/audio_stream.rb
|
@@ -49,29 +64,9 @@ files:
|
|
49
64
|
- lib/ffprober/format.rb
|
50
65
|
- lib/ffprober/parser.rb
|
51
66
|
- lib/ffprober/stream.rb
|
67
|
+
- lib/ffprober/subtitle_stream.rb
|
52
68
|
- lib/ffprober/version.rb
|
53
69
|
- lib/ffprober/video_stream.rb
|
54
|
-
- spec/assets/301 extracting a ruby gem.m4v
|
55
|
-
- spec/assets/empty_file
|
56
|
-
- spec/assets/sample video.json
|
57
|
-
- spec/assets/sample video.m4v
|
58
|
-
- spec/assets/version_outputs/linux-nightly
|
59
|
-
- spec/assets/version_outputs/osx-1_0
|
60
|
-
- spec/assets/version_outputs/osx-1_2_0
|
61
|
-
- spec/assets/version_outputs/osx-2_0
|
62
|
-
- spec/assets/version_outputs/osx-2_0_1
|
63
|
-
- spec/assets/version_outputs/osx-2_1_2
|
64
|
-
- spec/assets/version_outputs/osx-2_1_4
|
65
|
-
- spec/assets/version_outputs/osx-2_2
|
66
|
-
- spec/assets/version_outputs/osx-2_2_2
|
67
|
-
- spec/assets/version_outputs/osx-2_3_2
|
68
|
-
- spec/assets/version_outputs/raspian-0_8_6
|
69
|
-
- spec/assets/version_outputs/ubuntu-0_10_6
|
70
|
-
- spec/assets/version_outputs/windows-nightly
|
71
|
-
- spec/ffprober/ffprobe_version_spec.rb
|
72
|
-
- spec/ffprober/parser_spec.rb
|
73
|
-
- spec/ffprober_spec.rb
|
74
|
-
- spec/spec_helper.rb
|
75
70
|
homepage: https://github.com/beanieboi/ffprober
|
76
71
|
licenses:
|
77
72
|
- MIT
|
@@ -82,39 +77,18 @@ require_paths:
|
|
82
77
|
- lib
|
83
78
|
required_ruby_version: !ruby/object:Gem::Requirement
|
84
79
|
requirements:
|
85
|
-
- - "
|
80
|
+
- - "~>"
|
86
81
|
- !ruby/object:Gem::Version
|
87
|
-
version:
|
82
|
+
version: '2.0'
|
88
83
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
84
|
requirements:
|
90
85
|
- - ">="
|
91
86
|
- !ruby/object:Gem::Version
|
92
87
|
version: '0'
|
93
88
|
requirements: []
|
94
|
-
rubyforge_project:
|
95
|
-
rubygems_version: 2.
|
89
|
+
rubyforge_project:
|
90
|
+
rubygems_version: 2.4.5
|
96
91
|
signing_key:
|
97
92
|
specification_version: 4
|
98
93
|
summary: a Ruby wrapper for ffprobe (part of ffmpeg)
|
99
|
-
test_files:
|
100
|
-
- spec/assets/301 extracting a ruby gem.m4v
|
101
|
-
- spec/assets/empty_file
|
102
|
-
- spec/assets/sample video.json
|
103
|
-
- spec/assets/sample video.m4v
|
104
|
-
- spec/assets/version_outputs/linux-nightly
|
105
|
-
- spec/assets/version_outputs/osx-1_0
|
106
|
-
- spec/assets/version_outputs/osx-1_2_0
|
107
|
-
- spec/assets/version_outputs/osx-2_0
|
108
|
-
- spec/assets/version_outputs/osx-2_0_1
|
109
|
-
- spec/assets/version_outputs/osx-2_1_2
|
110
|
-
- spec/assets/version_outputs/osx-2_1_4
|
111
|
-
- spec/assets/version_outputs/osx-2_2
|
112
|
-
- spec/assets/version_outputs/osx-2_2_2
|
113
|
-
- spec/assets/version_outputs/osx-2_3_2
|
114
|
-
- spec/assets/version_outputs/raspian-0_8_6
|
115
|
-
- spec/assets/version_outputs/ubuntu-0_10_6
|
116
|
-
- spec/assets/version_outputs/windows-nightly
|
117
|
-
- spec/ffprober/ffprobe_version_spec.rb
|
118
|
-
- spec/ffprober/parser_spec.rb
|
119
|
-
- spec/ffprober_spec.rb
|
120
|
-
- spec/spec_helper.rb
|
94
|
+
test_files: []
|
Binary file
|
data/spec/assets/empty_file
DELETED
File without changes
|
@@ -1,177 +0,0 @@
|
|
1
|
-
{
|
2
|
-
"streams": [
|
3
|
-
{
|
4
|
-
"index": 0,
|
5
|
-
"codec_name": "aac",
|
6
|
-
"codec_long_name": "AAC (Advanced Audio Coding)",
|
7
|
-
"codec_type": "audio",
|
8
|
-
"codec_time_base": "1/44100",
|
9
|
-
"codec_tag_string": "mp4a",
|
10
|
-
"codec_tag": "0x6134706d",
|
11
|
-
"sample_fmt": "fltp",
|
12
|
-
"sample_rate": "44100",
|
13
|
-
"channels": 2,
|
14
|
-
"channel_layout": "stereo",
|
15
|
-
"bits_per_sample": 0,
|
16
|
-
"r_frame_rate": "0/0",
|
17
|
-
"avg_frame_rate": "0/0",
|
18
|
-
"time_base": "1/44100",
|
19
|
-
"start_pts": 0,
|
20
|
-
"start_time": "0.000000",
|
21
|
-
"duration_ts": 7168,
|
22
|
-
"duration": "0.162540",
|
23
|
-
"bit_rate": "73582",
|
24
|
-
"nb_frames": "7",
|
25
|
-
"disposition": {
|
26
|
-
"default": 1,
|
27
|
-
"dub": 0,
|
28
|
-
"original": 0,
|
29
|
-
"comment": 0,
|
30
|
-
"lyrics": 0,
|
31
|
-
"karaoke": 0,
|
32
|
-
"forced": 0,
|
33
|
-
"hearing_impaired": 0,
|
34
|
-
"visual_impaired": 0,
|
35
|
-
"clean_effects": 0,
|
36
|
-
"attached_pic": 0
|
37
|
-
},
|
38
|
-
"tags": {
|
39
|
-
"creation_time": "2013-12-28 21:17:44",
|
40
|
-
"language": "und",
|
41
|
-
"handler_name": "Core Media Audio"
|
42
|
-
}
|
43
|
-
},
|
44
|
-
{
|
45
|
-
"index": 1,
|
46
|
-
"codec_name": "h264",
|
47
|
-
"codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
|
48
|
-
"profile": "Constrained Baseline",
|
49
|
-
"codec_type": "video",
|
50
|
-
"codec_time_base": "1/5000",
|
51
|
-
"codec_tag_string": "avc1",
|
52
|
-
"codec_tag": "0x31637661",
|
53
|
-
"width": 480,
|
54
|
-
"height": 272,
|
55
|
-
"has_b_frames": 0,
|
56
|
-
"sample_aspect_ratio": "0:1",
|
57
|
-
"display_aspect_ratio": "0:1",
|
58
|
-
"pix_fmt": "yuv420p",
|
59
|
-
"level": 21,
|
60
|
-
"r_frame_rate": "25/1",
|
61
|
-
"avg_frame_rate": "25/1",
|
62
|
-
"time_base": "1/2500",
|
63
|
-
"start_pts": 0,
|
64
|
-
"start_time": "0.000000",
|
65
|
-
"duration_ts": 300,
|
66
|
-
"duration": "0.120000",
|
67
|
-
"bit_rate": "79066",
|
68
|
-
"nb_frames": "3",
|
69
|
-
"disposition": {
|
70
|
-
"default": 1,
|
71
|
-
"dub": 0,
|
72
|
-
"original": 0,
|
73
|
-
"comment": 0,
|
74
|
-
"lyrics": 0,
|
75
|
-
"karaoke": 0,
|
76
|
-
"forced": 0,
|
77
|
-
"hearing_impaired": 0,
|
78
|
-
"visual_impaired": 0,
|
79
|
-
"clean_effects": 0,
|
80
|
-
"attached_pic": 0
|
81
|
-
},
|
82
|
-
"tags": {
|
83
|
-
"creation_time": "2013-12-28 21:17:44",
|
84
|
-
"language": "und",
|
85
|
-
"handler_name": "Core Media Video"
|
86
|
-
}
|
87
|
-
},
|
88
|
-
{
|
89
|
-
"index": 2,
|
90
|
-
"codec_name": "mov_text",
|
91
|
-
"codec_long_name": "3GPP Timed Text subtitle",
|
92
|
-
"codec_type": "subtitle",
|
93
|
-
"codec_time_base": "1/1000",
|
94
|
-
"codec_tag_string": "text",
|
95
|
-
"codec_tag": "0x74786574",
|
96
|
-
"r_frame_rate": "0/0",
|
97
|
-
"avg_frame_rate": "0/0",
|
98
|
-
"time_base": "1/1000",
|
99
|
-
"start_pts": 0,
|
100
|
-
"start_time": "0.000000",
|
101
|
-
"duration_ts": 98,
|
102
|
-
"duration": "0.098000",
|
103
|
-
"bit_rate": "5690",
|
104
|
-
"nb_frames": "3",
|
105
|
-
"disposition": {
|
106
|
-
"default": 0,
|
107
|
-
"dub": 0,
|
108
|
-
"original": 0,
|
109
|
-
"comment": 0,
|
110
|
-
"lyrics": 0,
|
111
|
-
"karaoke": 0,
|
112
|
-
"forced": 0,
|
113
|
-
"hearing_impaired": 0,
|
114
|
-
"visual_impaired": 0,
|
115
|
-
"clean_effects": 0,
|
116
|
-
"attached_pic": 0
|
117
|
-
},
|
118
|
-
"tags": {
|
119
|
-
"creation_time": "2013-12-28 21:28:08",
|
120
|
-
"language": "eng"
|
121
|
-
}
|
122
|
-
}
|
123
|
-
],
|
124
|
-
"chapters": [
|
125
|
-
{
|
126
|
-
"id": 0,
|
127
|
-
"time_base": "1/1000",
|
128
|
-
"start": 0,
|
129
|
-
"start_time": "0.000000",
|
130
|
-
"end": 10,
|
131
|
-
"end_time": "0.010000",
|
132
|
-
"tags": {
|
133
|
-
"title": "Chapter 1"
|
134
|
-
}
|
135
|
-
},
|
136
|
-
{
|
137
|
-
"id": 1,
|
138
|
-
"time_base": "1/1000",
|
139
|
-
"start": 10,
|
140
|
-
"start_time": "0.010000",
|
141
|
-
"end": 20,
|
142
|
-
"end_time": "0.020000",
|
143
|
-
"tags": {
|
144
|
-
"title": "Chapter 2"
|
145
|
-
}
|
146
|
-
},
|
147
|
-
{
|
148
|
-
"id": 2,
|
149
|
-
"time_base": "1/1000",
|
150
|
-
"start": 20,
|
151
|
-
"start_time": "0.020000",
|
152
|
-
"end": 97,
|
153
|
-
"end_time": "0.097000",
|
154
|
-
"tags": {
|
155
|
-
"title": "Chapter 3"
|
156
|
-
}
|
157
|
-
}
|
158
|
-
],
|
159
|
-
"format": {
|
160
|
-
"filename": "spec/assets/sample video.m4v",
|
161
|
-
"nb_streams": 3,
|
162
|
-
"nb_programs": 0,
|
163
|
-
"format_name": "mov,mp4,m4a,3gp,3g2,mj2",
|
164
|
-
"format_long_name": "QuickTime / MOV",
|
165
|
-
"start_time": "0.000000",
|
166
|
-
"duration": "0.097600",
|
167
|
-
"size": "4611",
|
168
|
-
"bit_rate": "377950",
|
169
|
-
"probe_score": 100,
|
170
|
-
"tags": {
|
171
|
-
"major_brand": "M4V ",
|
172
|
-
"minor_version": "1",
|
173
|
-
"compatible_brands": "M4V M4A mp42isom",
|
174
|
-
"creation_time": "2013-12-28 21:17:44"
|
175
|
-
}
|
176
|
-
}
|
177
|
-
}
|
Binary file
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ffprobe version 1.0
|
2
|
-
built on May 18 2013 15:54:36 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
|
3
|
-
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
|
4
|
-
libavutil 52. 18.100 / 52. 18.100
|
5
|
-
libavcodec 54. 92.100 / 54. 92.100
|
6
|
-
libavformat 54. 63.104 / 54. 63.104
|
7
|
-
libavdevice 54. 3.103 / 54. 3.103
|
8
|
-
libavfilter 3. 42.103 / 3. 42.103
|
9
|
-
libswscale 2. 2.100 / 2. 2.100
|
10
|
-
libswresample 0. 17.102 / 0. 17.102
|
11
|
-
libpostproc 52. 2.100 / 52. 2.100
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ffprobe version 1.2.0
|
2
|
-
built on May 18 2013 15:54:36 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
|
3
|
-
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
|
4
|
-
libavutil 52. 18.100 / 52. 18.100
|
5
|
-
libavcodec 54. 92.100 / 54. 92.100
|
6
|
-
libavformat 54. 63.104 / 54. 63.104
|
7
|
-
libavdevice 54. 3.103 / 54. 3.103
|
8
|
-
libavfilter 3. 42.103 / 3. 42.103
|
9
|
-
libswscale 2. 2.100 / 2. 2.100
|
10
|
-
libswresample 0. 17.102 / 0. 17.102
|
11
|
-
libpostproc 52. 2.100 / 52. 2.100
|
@@ -1,12 +0,0 @@
|
|
1
|
-
ffprobe version 2.0
|
2
|
-
built on Jul 12 2013 11:15:38 with gcc 4.2.1 (GCC) (Apple Inc. build 5666) (dot 3)
|
3
|
-
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.0 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=/usr/bin/gcc-4.2 --host-cflags='-Os -w -pipe -march=core2 -msse4.1 -mmacosx-version-min=10.6' --host-ldflags=-L/usr/local/lib --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc
|
4
|
-
libavutil 52. 38.100 / 52. 38.100
|
5
|
-
libavcodec 55. 18.102 / 55. 18.102
|
6
|
-
libavformat 55. 12.100 / 55. 12.100
|
7
|
-
libavdevice 55. 3.100 / 55. 3.100
|
8
|
-
libavfilter 3. 79.101 / 3. 79.101
|
9
|
-
libavresample 1. 1. 0 / 1. 1. 0
|
10
|
-
libswscale 2. 3.100 / 2. 3.100
|
11
|
-
libswresample 0. 17.102 / 0. 17.102
|
12
|
-
libpostproc 52. 3.100 / 52. 3.100
|
@@ -1,12 +0,0 @@
|
|
1
|
-
ffprobe version 2.0.1
|
2
|
-
built on Aug 15 2013 15:56:26 with gcc 4.2.1 (GCC) (Apple Inc. build 5666) (dot 3)
|
3
|
-
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.0.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc
|
4
|
-
libavutil 52. 38.100 / 52. 38.100
|
5
|
-
libavcodec 55. 18.102 / 55. 18.102
|
6
|
-
libavformat 55. 12.100 / 55. 12.100
|
7
|
-
libavdevice 55. 3.100 / 55. 3.100
|
8
|
-
libavfilter 3. 79.101 / 3. 79.101
|
9
|
-
libavresample 1. 1. 0 / 1. 1. 0
|
10
|
-
libswscale 2. 3.100 / 2. 3.100
|
11
|
-
libswresample 0. 17.102 / 0. 17.102
|
12
|
-
libpostproc 52. 3.100 / 52. 3.100
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ffprobe version 2.1.2-tessus
|
2
|
-
built on Jan 13 2014 18:27:44 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
|
3
|
-
configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
|
4
|
-
libavutil 52. 48.101 / 52. 48.101
|
5
|
-
libavcodec 55. 39.101 / 55. 39.101
|
6
|
-
libavformat 55. 19.104 / 55. 19.104
|
7
|
-
libavdevice 55. 5.100 / 55. 5.100
|
8
|
-
libavfilter 3. 90.100 / 3. 90.100
|
9
|
-
libswscale 2. 5.101 / 2. 5.101
|
10
|
-
libswresample 0. 17.104 / 0. 17.104
|
11
|
-
libpostproc 52. 3.100 / 52. 3.100
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ffprobe version 2.1.4-tessus
|
2
|
-
built on Feb 23 2014 19:51:22 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
|
3
|
-
configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
|
4
|
-
libavutil 52. 48.101 / 52. 48.101
|
5
|
-
libavcodec 55. 39.101 / 55. 39.101
|
6
|
-
libavformat 55. 19.104 / 55. 19.104
|
7
|
-
libavdevice 55. 5.100 / 55. 5.100
|
8
|
-
libavfilter 3. 90.100 / 3. 90.100
|
9
|
-
libswscale 2. 5.101 / 2. 5.101
|
10
|
-
libswresample 0. 17.104 / 0. 17.104
|
11
|
-
libpostproc 52. 3.100 / 52. 3.100
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ffprobe version 2.2-tessus
|
2
|
-
built on Mar 24 2014 22:25:11 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
|
3
|
-
configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
|
4
|
-
libavutil 52. 66.100 / 52. 66.100
|
5
|
-
libavcodec 55. 52.102 / 55. 52.102
|
6
|
-
libavformat 55. 33.100 / 55. 33.100
|
7
|
-
libavdevice 55. 10.100 / 55. 10.100
|
8
|
-
libavfilter 4. 2.100 / 4. 2.100
|
9
|
-
libswscale 2. 5.102 / 2. 5.102
|
10
|
-
libswresample 0. 18.100 / 0. 18.100
|
11
|
-
libpostproc 52. 3.100 / 52. 3.100
|
@@ -1,16 +0,0 @@
|
|
1
|
-
ffprobe version 2.2.2-tessus Copyright (c) 2007-2014 the FFmpeg developers
|
2
|
-
built on May 7 2014 23:17:42 with clang version 3.3 (tags/RELEASE_33/final)
|
3
|
-
configuration: --cc=/opt/local/bin/clang-mp-3.3 --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --disable-indev=qtkit --enable-runtime-cpudetect
|
4
|
-
libavutil 52. 66.100 / 52. 66.100
|
5
|
-
libavcodec 55. 52.102 / 55. 52.102
|
6
|
-
libavformat 55. 33.100 / 55. 33.100
|
7
|
-
libavdevice 55. 10.100 / 55. 10.100
|
8
|
-
libavfilter 4. 2.100 / 4. 2.100
|
9
|
-
libswscale 2. 5.102 / 2. 5.102
|
10
|
-
libswresample 0. 18.100 / 0. 18.100
|
11
|
-
libpostproc 52. 3.100 / 52. 3.100
|
12
|
-
Simple multimedia streams analyzer
|
13
|
-
usage: ffprobe [OPTIONS] [INPUT_FILE]
|
14
|
-
|
15
|
-
You have to specify one input file.
|
16
|
-
Use -h to get full help or, even better, run 'man ffprobe'.
|
@@ -1,12 +0,0 @@
|
|
1
|
-
ffprobe version 2.3.2 Copyright (c) 2007-2014 the FFmpeg developers
|
2
|
-
built on Aug 22 2014 12:11:42 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
|
3
|
-
configuration: --prefix=/usr/local/Cellar/ffmpeg/2.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
|
4
|
-
libavutil 52. 92.100 / 52. 92.100
|
5
|
-
libavcodec 55. 69.100 / 55. 69.100
|
6
|
-
libavformat 55. 48.100 / 55. 48.100
|
7
|
-
libavdevice 55. 13.102 / 55. 13.102
|
8
|
-
libavfilter 4. 11.100 / 4. 11.100
|
9
|
-
libavresample 1. 3. 0 / 1. 3. 0
|
10
|
-
libswscale 2. 6.100 / 2. 6.100
|
11
|
-
libswresample 0. 19.100 / 0. 19.100
|
12
|
-
libpostproc 52. 3.100 / 52. 3.100
|
@@ -1,10 +0,0 @@
|
|
1
|
-
avprobe version 0.8.6-6:0.8.6-1+rpi1, Copyright (c) 2007-2013 the Libav developers
|
2
|
-
built on Mar 31 2013 13:58:10 with gcc 4.6.3
|
3
|
-
avprobe 0.8.6-6:0.8.6-1+rpi1
|
4
|
-
libavutil 51. 22. 1 / 51. 22. 1
|
5
|
-
libavcodec 53. 35. 0 / 53. 35. 0
|
6
|
-
libavformat 53. 21. 1 / 53. 21. 1
|
7
|
-
libavdevice 53. 2. 0 / 53. 2. 0
|
8
|
-
libavfilter 2. 15. 0 / 2. 15. 0
|
9
|
-
libswscale 2. 1. 0 / 2. 1. 0
|
10
|
-
libpostproc 52. 0. 0 / 52. 0. 0
|
@@ -1,11 +0,0 @@
|
|
1
|
-
ffprobe version 0.10.6-6:0.10.6-0ubuntu0jon1
|
2
|
-
built on Nov 12 2012 12:53:40 with gcc 4.7.2
|
3
|
-
configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.10.6-0ubuntu0jon1' --libdir=/usr/lib/x86_64-linux-gnu --disable-stripping --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
|
4
|
-
libavutil 51. 35.100 / 51. 35.100
|
5
|
-
libavcodec 53. 61.100 / 53. 61.100
|
6
|
-
libavformat 53. 32.100 / 53. 32.100
|
7
|
-
libavdevice 53. 4.100 / 53. 4.100
|
8
|
-
libavfilter 2. 61.100 / 2. 61.100
|
9
|
-
libswscale 2. 1.100 / 2. 1.100
|
10
|
-
libswresample 0. 6.100 / 0. 6.100
|
11
|
-
libpostproc 52. 0.100 / 52. 0.100
|
@@ -1,58 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Ffprober::FfprobeVersion do
|
5
|
-
VERSION_CHECKS = [
|
6
|
-
{ version: '0.9.0', pass: true },
|
7
|
-
{ version: '1.0.0', pass: true },
|
8
|
-
{ version: '1.1.0', pass: true },
|
9
|
-
{ version: '2.9.0', pass: false },
|
10
|
-
{ version: '1.2.1', pass: true },
|
11
|
-
{ version: '2.0', pass: true },
|
12
|
-
{ version: '2.0.1', pass: true },
|
13
|
-
{ version: '2.0.2', pass: true },
|
14
|
-
{ version: '2.1.1', pass: true },
|
15
|
-
{ version: '2.1.2', pass: true },
|
16
|
-
{ version: '2.1.4', pass: true },
|
17
|
-
{ version: '2.2', pass: true },
|
18
|
-
{ version: '2.2.2', pass: true }
|
19
|
-
]
|
20
|
-
|
21
|
-
subject(:ffprobe_version) { Ffprober::FfprobeVersion.new }
|
22
|
-
|
23
|
-
context 'validates the ffprobe version' do
|
24
|
-
VERSION_CHECKS.each do |check|
|
25
|
-
it "detects version #{check[:version]}" do
|
26
|
-
allow(ffprobe_version).to receive(:version).and_return(Gem::Version.new(check[:version]))
|
27
|
-
expect(ffprobe_version.valid?).to be(check[:pass])
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
describe 'detects the version of ffprobe' do
|
33
|
-
Dir.new('spec/assets/version_outputs').each do |entry|
|
34
|
-
next if ['.', '..', '.DS_Store'].include?(entry)
|
35
|
-
os, expected_version = entry.split('-')
|
36
|
-
|
37
|
-
it "on #{os} from #{expected_version}" do
|
38
|
-
version_output = File.read('spec/assets/version_outputs/' + entry)
|
39
|
-
|
40
|
-
allow(ffprobe_version).to receive(:ffprobe_version_output).and_return(version_output)
|
41
|
-
|
42
|
-
if expected_version == 'nightly'
|
43
|
-
expect(ffprobe_version.nightly?).to eq(true)
|
44
|
-
expect(ffprobe_version.valid?).to eq(true)
|
45
|
-
else
|
46
|
-
expect(ffprobe_version.version).to eq(Gem::Version.new(expected_version.gsub('_', '.')))
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'should not be valid if no ffprobe could be found in PATH' do
|
52
|
-
allow(Ffprober).to receive(:path).and_return(nil)
|
53
|
-
expect(ffprobe_version.version.to_s).to eq('0.0.0')
|
54
|
-
expect(Ffprober::FfprobeVersion.valid?).to eq(false)
|
55
|
-
end
|
56
|
-
|
57
|
-
end
|
58
|
-
end
|
@@ -1,93 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
def shared_specs
|
5
|
-
describe 'format' do
|
6
|
-
it 'should determine the correct filename' do
|
7
|
-
expect(ffprobe.format.filename).to eq('spec/assets/sample video.m4v')
|
8
|
-
end
|
9
|
-
|
10
|
-
it 'should find the correct size' do
|
11
|
-
expect(ffprobe.format.size).to eq('4611')
|
12
|
-
end
|
13
|
-
|
14
|
-
it 'should find the correct bit_rate' do
|
15
|
-
expect(ffprobe.format.bit_rate).to eq('377950')
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
describe 'audio_streams' do
|
20
|
-
it 'should determine the correct number of audio streams' do
|
21
|
-
expect(ffprobe.audio_streams.count).to eq(1)
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'should determine the correct sample rate of the first audio stream' do
|
25
|
-
expect(ffprobe.audio_streams.first.sample_rate).to eq('44100')
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
describe 'video_streams' do
|
30
|
-
it 'should determine the correct width of the first video streams' do
|
31
|
-
expect(ffprobe.video_streams.first.width).to eq(480)
|
32
|
-
end
|
33
|
-
|
34
|
-
it 'should determine the correct width of the first video streams' do
|
35
|
-
expect(ffprobe.video_streams.first.height).to eq(272)
|
36
|
-
end
|
37
|
-
|
38
|
-
it 'should determine the correct number of video streams' do
|
39
|
-
expect(ffprobe.video_streams.count).to eq(1)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
describe 'chapters' do
|
44
|
-
it 'should contain the chapters' do
|
45
|
-
expect(ffprobe.chapters.count).to eq(3)
|
46
|
-
end
|
47
|
-
|
48
|
-
describe 'chapter' do
|
49
|
-
subject(:chapter) { ffprobe.chapters.first }
|
50
|
-
|
51
|
-
it 'should contain id' do expect(chapter.id).to eq(0) end
|
52
|
-
it 'should contain time_base' do expect(chapter.time_base).to eq('1/1000') end
|
53
|
-
it 'should contain start' do expect(chapter.start).to eq(0) end
|
54
|
-
it 'should contain start_time' do expect(chapter.start_time).to eq('0.000000') end
|
55
|
-
it 'should contain end' do expect(chapter.end).to eq(10) end
|
56
|
-
it 'should contain end_time' do expect(chapter.end_time).to eq('0.010000') end
|
57
|
-
it 'should contain tags' do expect(chapter.tags).to eq(title: 'Chapter 1') end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe Ffprober::Parser do
|
63
|
-
|
64
|
-
context 'from_file', if: Ffprober::FfprobeVersion.valid? do
|
65
|
-
let(:ffprobe) { Ffprober::Parser.from_file('spec/assets/sample video.m4v') }
|
66
|
-
|
67
|
-
shared_specs
|
68
|
-
end
|
69
|
-
|
70
|
-
context 'from_json' do
|
71
|
-
let(:ffprobe) { Ffprober::Parser.from_json(File.read('spec/assets/sample video.json')) }
|
72
|
-
|
73
|
-
shared_specs
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'from invalid file', if: Ffprober::FfprobeVersion.valid? do
|
77
|
-
let(:ffprobe) { Ffprober::Parser.from_file('spec/assets/empty_file') }
|
78
|
-
|
79
|
-
describe 'format' do
|
80
|
-
it 'should determine the correct filename' do
|
81
|
-
expect { ffprobe.format.filename }.to raise_error
|
82
|
-
end
|
83
|
-
|
84
|
-
it 'should find the correct size' do
|
85
|
-
expect { ffprobe.format.size }.to raise_error
|
86
|
-
end
|
87
|
-
|
88
|
-
it 'should find the correct bit_rate' do
|
89
|
-
expect { ffprobe.format.bit_rate }.to raise_error
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
data/spec/ffprober_spec.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
describe Ffprober do
|
5
|
-
|
6
|
-
describe 'if no ffprobe is found' do
|
7
|
-
it 'should raise a exception if there is no ffmpeg' do
|
8
|
-
allow(Ffprober).to receive(:path).and_return('nonexistant')
|
9
|
-
|
10
|
-
expect do
|
11
|
-
Ffprober::Parser.from_file('spec/assets/301-extracting_a_ruby_gem.m4v')
|
12
|
-
end.to raise_error
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'should raise a exception if there is no valid ffmpeg' do
|
16
|
-
allow(Ffprober::FfprobeVersion).to receive(:valid?).and_return(false)
|
17
|
-
|
18
|
-
expect do
|
19
|
-
Ffprober::Parser.from_file('spec/assets/301-extracting_a_ruby_gem.m4v')
|
20
|
-
end.to raise_error(ArgumentError)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
require 'codeclimate-test-reporter'
|
2
|
-
CodeClimate::TestReporter.start
|
3
|
-
require 'ffprober'
|
4
|
-
|
5
|
-
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
6
|
-
RSpec.configure do |config|
|
7
|
-
# These two settings work together to allow you to limit a spec run
|
8
|
-
# to individual examples or groups you care about by tagging them with
|
9
|
-
# `:focus` metadata. When nothing is tagged with `:focus`, all examples
|
10
|
-
# get run.
|
11
|
-
config.filter_run :focus
|
12
|
-
config.run_all_when_everything_filtered = true
|
13
|
-
|
14
|
-
# Many RSpec users commonly either run the entire suite or an individual
|
15
|
-
# file, and it's useful to allow more verbose output when running an
|
16
|
-
# individual spec file.
|
17
|
-
if config.files_to_run.one?
|
18
|
-
# Use the documentation formatter for detailed output,
|
19
|
-
# unless a formatter has already been configured
|
20
|
-
# (e.g. via a command-line flag).
|
21
|
-
config.default_formatter = 'doc'
|
22
|
-
end
|
23
|
-
|
24
|
-
# Print the 10 slowest examples and example groups at the
|
25
|
-
# end of the spec run, to help surface which specs are running
|
26
|
-
# particularly slow.
|
27
|
-
config.profile_examples = 10
|
28
|
-
|
29
|
-
# Run specs in random order to surface order dependencies. If you find an
|
30
|
-
# order dependency and want to debug it, you can fix the order by providing
|
31
|
-
# the seed, which is printed after each run.
|
32
|
-
# --seed 1234
|
33
|
-
config.order = :random
|
34
|
-
|
35
|
-
# Seed global randomization in this process using the `--seed` CLI option.
|
36
|
-
# Setting this allows you to use `--seed` to deterministically reproduce
|
37
|
-
# test failures related to randomization by passing the same `--seed` value
|
38
|
-
# as the one that triggered the failure.
|
39
|
-
Kernel.srand config.seed
|
40
|
-
|
41
|
-
# rspec-expectations config goes here. You can use an alternate
|
42
|
-
# assertion/expectation library such as wrong or the stdlib/minitest
|
43
|
-
# assertions if you prefer.
|
44
|
-
config.expect_with :rspec do |expectations|
|
45
|
-
# Enable only the newer, non-monkey-patching expect syntax.
|
46
|
-
# For more details, see:
|
47
|
-
# - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
|
48
|
-
expectations.syntax = :expect
|
49
|
-
end
|
50
|
-
|
51
|
-
# rspec-mocks config goes here. You can use an alternate test double
|
52
|
-
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
53
|
-
config.mock_with :rspec do |mocks|
|
54
|
-
# Enable only the newer, non-monkey-patching expect syntax.
|
55
|
-
# For more details, see:
|
56
|
-
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
|
57
|
-
mocks.syntax = :expect
|
58
|
-
|
59
|
-
# Prevents you from mocking or stubbing a method that does not exist on
|
60
|
-
# a real object. This is generally recommended.
|
61
|
-
mocks.verify_partial_doubles = true
|
62
|
-
end
|
63
|
-
end
|