screen-recorder 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f46c2cd0518ebc956772cc5586b95974e0f51cede0d456ff0934bb2aaa9cef92
4
- data.tar.gz: a8f5113b23a9a3521a282e9385f7c8502e01991594ee065eb6cf5a55fd6403f3
3
+ metadata.gz: 4d582b8454520bac8dd7e3dd11b8f81bb8c76d42c9612bad0d246573583ead4e
4
+ data.tar.gz: bc2780669046dc0c21c87574cead28a3a4cbae13fc36e30fe110671c162b2b94
5
5
  SHA512:
6
- metadata.gz: '059777ec5a7b09f8c1bf97727c57f07cf4172918a445aa1015544b92cb4bf8454ea6d5c79daaf8aab0667aad132ec6fcb466ce52cc365f05cb9f598fd8266445'
7
- data.tar.gz: 0ecbe285d1a4d6f9fd6f579c9233614d6e8e1f0130ab31d9f40ba2f348e2dac8ba3d1cc82f9fc0f0340f2f1215fec9e89f89996688dce76ab26bc7c7efc42034
6
+ metadata.gz: 608c366a5ed1bd079ea48f939dcd79fd775830340ecd20453f89442f2b9dda6581d8051dfc24507606d9f9a037e9293f799e1df114cd722d3aaba82a2241de65
7
+ data.tar.gz: 6b6a5b9aeadf5385a6d28e2ed2c55070b5203e1214057f70200476178179f3236ee916d7844434f3320088816d7ff6a650536866c7ae3508ddf2e86a7fc7bf30
data/.gitignore CHANGED
@@ -1,100 +1,100 @@
1
- Gemfile.lock # Part of best practice
2
-
3
- # Created by https://www.gitignore.io/api/rubymine+all
4
-
5
- ### RubyMine+all ###
6
- # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
7
- # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
8
-
9
- /.bundle/
10
- /.yardoc
11
- /_yardoc/
12
- /coverage/
13
- /doc/
14
- /pkg/
15
- /spec/reports/
16
- /tmp/
17
- /webdrivers_bin
18
- *.log
19
- *.mkv
20
- *.mp4
21
- *.avi
22
- *.gif
23
-
24
- Gemfile.lock
25
-
26
- # rspec failure tracking
27
- .rspec_status
28
-
29
- # Generated files
30
- .idea/**/contentModel.xml
31
-
32
- # Sensitive or high-churn files
33
- .idea/**/dataSources/
34
- .idea/**/dataSources.ids
35
- .idea/**/dataSources.local.xml
36
- .idea/**/sqlDataSources.xml
37
- .idea/**/dynamic.xml
38
- .idea/**/uiDesigner.xml
39
- .idea/**/dbnavigator.xml
40
-
41
- # Gradle
42
- .idea/**/gradle.xml
43
- .idea/**/libraries
44
-
45
- # Gradle and Maven with auto-import
46
- # When using Gradle or Maven with auto-import, you should exclude module files,
47
- # since they will be recreated, and may cause churn. Uncomment if using
48
- # auto-import.
49
- # .idea/modules.xml
50
- # .idea/*.iml
51
- # .idea/modules
52
-
53
- # CMake
54
- cmake-build-*/
55
-
56
- # Mongo Explorer plugin
57
- .idea/**/mongoSettings.xml
58
-
59
- # File-based project format
60
- *.iws
61
-
62
- # IntelliJ
63
- out/
64
-
65
- # mpeltonen/sbt-idea plugin
66
- .idea_modules/
67
-
68
- # JIRA plugin
69
- atlassian-ide-plugin.xml
70
-
71
- # Cursive Clojure plugin
72
- .idea/replstate.xml
73
-
74
- # Crashlytics plugin (for Android Studio and IntelliJ)
75
- com_crashlytics_export_strings.xml
76
- crashlytics.properties
77
- crashlytics-build.properties
78
- fabric.properties
79
-
80
- # Editor-based Rest Client
81
- .idea/httpRequests
82
-
83
- # Android studio 3.1+ serialized cache file
84
- .idea/caches/build_file_checksums.ser
85
-
86
- ### RubyMine+all Patch ###
87
- # Ignores the whole .idea folder and all .iml files
88
- # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
89
-
90
- .idea/
91
-
92
- # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
93
-
94
- *.iml
95
- modules.xml
96
- *.ipr
97
-
98
- .DS_Store # On mac
99
-
1
+ Gemfile.lock # Part of best practice
2
+
3
+ # Created by https://www.gitignore.io/api/rubymine+all
4
+
5
+ ### RubyMine+all ###
6
+ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
7
+ # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
8
+
9
+ /.bundle/
10
+ /.yardoc
11
+ /_yardoc/
12
+ /coverage/
13
+ /doc/
14
+ /pkg/
15
+ /spec/reports/
16
+ /tmp/
17
+ /webdrivers_bin
18
+ *.log
19
+ *.mkv
20
+ *.mp4
21
+ *.avi
22
+ *.gif
23
+
24
+ Gemfile.lock
25
+
26
+ # rspec failure tracking
27
+ .rspec_status
28
+
29
+ # Generated files
30
+ .idea/**/contentModel.xml
31
+
32
+ # Sensitive or high-churn files
33
+ .idea/**/dataSources/
34
+ .idea/**/dataSources.ids
35
+ .idea/**/dataSources.local.xml
36
+ .idea/**/sqlDataSources.xml
37
+ .idea/**/dynamic.xml
38
+ .idea/**/uiDesigner.xml
39
+ .idea/**/dbnavigator.xml
40
+
41
+ # Gradle
42
+ .idea/**/gradle.xml
43
+ .idea/**/libraries
44
+
45
+ # Gradle and Maven with auto-import
46
+ # When using Gradle or Maven with auto-import, you should exclude module files,
47
+ # since they will be recreated, and may cause churn. Uncomment if using
48
+ # auto-import.
49
+ # .idea/modules.xml
50
+ # .idea/*.iml
51
+ # .idea/modules
52
+
53
+ # CMake
54
+ cmake-build-*/
55
+
56
+ # Mongo Explorer plugin
57
+ .idea/**/mongoSettings.xml
58
+
59
+ # File-based project format
60
+ *.iws
61
+
62
+ # IntelliJ
63
+ out/
64
+
65
+ # mpeltonen/sbt-idea plugin
66
+ .idea_modules/
67
+
68
+ # JIRA plugin
69
+ atlassian-ide-plugin.xml
70
+
71
+ # Cursive Clojure plugin
72
+ .idea/replstate.xml
73
+
74
+ # Crashlytics plugin (for Android Studio and IntelliJ)
75
+ com_crashlytics_export_strings.xml
76
+ crashlytics.properties
77
+ crashlytics-build.properties
78
+ fabric.properties
79
+
80
+ # Editor-based Rest Client
81
+ .idea/httpRequests
82
+
83
+ # Android studio 3.1+ serialized cache file
84
+ .idea/caches/build_file_checksums.ser
85
+
86
+ ### RubyMine+all Patch ###
87
+ # Ignores the whole .idea folder and all .iml files
88
+ # See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
89
+
90
+ .idea/
91
+
92
+ # Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
93
+
94
+ *.iml
95
+ modules.xml
96
+ *.ipr
97
+
98
+ .DS_Store # On mac
99
+
100
100
  # End of https://www.gitignore.io/api/rubymine+all
data/.rspec CHANGED
@@ -1,3 +1,3 @@
1
- --format documentation
2
- --color
3
- --require spec_helper
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
data/.rubocop.yml CHANGED
@@ -38,7 +38,7 @@ Layout/AlignParameters:
38
38
  EnforcedStyle: with_first_parameter
39
39
  Layout/EndOfLine:
40
40
  Enabled: false
41
- Layout/IndentHash:
41
+ Layout/IndentFirstHashElement:
42
42
  Enabled: true
43
43
  Naming/FileName:
44
44
  Enabled: false
data/.travis.yml CHANGED
@@ -1,35 +1,49 @@
1
- ---
2
- os:
3
- - linux
4
- - osx
5
- dist: xenial
6
- language: ruby
7
- cache: bundler
8
-
9
- branches:
10
- only:
11
- - /.*/
12
-
13
- rvm:
14
- - 2.3.8
15
- - 2.4.5
16
- - 2.5.5
17
- - 2.6.2
18
-
19
- env:
20
- - DISPLAY=":0"
21
-
22
- addons:
23
- firefox: latest
24
- apt:
25
- packages:
26
- - ffmpeg
27
- homebrew:
28
- packages:
29
- - ffmpeg
30
-
31
- before_install:
32
- - gem update --system --no-document
33
-
34
- before_script:
35
- - nohup Xvfb :0 -screen 0 1024x768x24 &
1
+ ---
2
+ language: ruby
3
+ cache: bundler
4
+ branches:
5
+ only:
6
+ - /.*/
7
+ env:
8
+ global:
9
+ - DISPLAY=":0"
10
+ matrix:
11
+ include:
12
+ - rvm: 2.4.6
13
+ dist: xenial
14
+ env: RAKE_TASK=spec
15
+ - rvm: 2.4.6
16
+ dist: xenial
17
+ env: RAKE_TASK=rubocop
18
+ - rvm: 2.6.3
19
+ dist: xenial
20
+ env: RAKE_TASK=spec REPORT_COVERAGE=true
21
+ - rvm: 2.4.6
22
+ os: osx
23
+ env: RAKE_TASK=spec
24
+ - rvm: 2.6.3
25
+ os: osx
26
+ env: RAKE_TASK=spec
27
+ addons:
28
+ firefox: latest
29
+ chrome: stable
30
+ apt:
31
+ packages:
32
+ - ffmpeg
33
+ homebrew:
34
+ packages:
35
+ - ffmpeg
36
+ before_script:
37
+ - if [[ "$RAKE_TASK" == "spec" ]]; then
38
+ nohup Xvfb :0 -screen 0 1024x768x24 &
39
+ fi
40
+ - if [[ "$REPORT_COVERAGE" == "true" ]] && [[ "$TRAVIS_BRANCH" == "master" ]]; then
41
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter;
42
+ chmod +x ./cc-test-reporter;
43
+ ./cc-test-reporter before-build;
44
+ fi
45
+ script: bundle exec rake $RAKE_TASK
46
+ after_script:
47
+ - if [[ "$REPORT_COVERAGE" == "true" ]] && [[ "$TRAVIS_BRANCH" == "master" ]]; then
48
+ ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT;
49
+ fi
data/CHANGES.md CHANGED
@@ -1,79 +1,90 @@
1
- ### 1.1.0 (2019-04-14)
2
- * <b>Add support for macOS</b> ([#55](https://github.com/kapoorlakshya/screen-recorder/issues/55)). Please [raise an Issue](https://github.com/kapoorlakshya/screen-recorder/issues/new) if you run into problems.
3
- * Force kill `ffmpeg` if it takes more than 10s to quit ([#60](https://github.com/kapoorlakshya/screen-recorder/issues/60)).
4
- * Fix a bug where `ScreenRecorder.ffmpeg_binary=()` was not properly defined.
5
- * `ScreenRecorder::Titles#fetch` will now raise `NotImplementedError` when used in a
6
- Linux or a macOS environment. Only works on Windows.
7
- * Default `input` value on Linux is now `:0`.
8
-
9
- ### 1.0.0 (2019-03-15)
10
- * Released first major version.
11
- * Now uses `ScreenRecorder` as top level module. `FFMPEG` is not directly
12
- exposed anymore.
13
- * The recording modes are now available through `ScreenRecorder::Desktop`
14
- and `ScreenRecorder::Window` classes to make the usage (parameters) simpler.
15
- * Method parameters are now keywords instead of an `opts` Hash. This means
16
- at least Ruby 2.0.0 is required.
17
- * `framerate:` is now to be passed through the `advanced` Hash.
18
-
19
- ### 1.0.0.beta13 (2019-03-15)
20
- * Gem will now be renamed to `screen-recorder`. Please refer to Issue
21
- [#45](https://github.com/kapoorlakshya/screen-recorder/issues/45)
22
- for more information.
23
-
24
- ### 1.0.0.beta12 (2019-03-12)
25
- * Reverted post install message as `screen_recorder` is already taken.
26
-
27
- ### 1.0.0.beta11 (2019-03-12)
28
- * Recording FPS (`framerate`) is defaulted to 15.0.
29
- * Gem will soon be renamed to `screen_recorder`. Please refer to Issue
30
- [#45](https://github.com/kapoorlakshya/screen-recorder/issues/45)
31
- for more information.
32
-
33
- ### 1.0.0.beta10 (2019-02-05)
34
- * Fixed an edge case in Microsoft Windows specific implementation of
35
- `WindowTitles#fetch` where processes with mismatching names and window
36
- titles, such as process `"Calculator.exe"` with window title `"CicMarshalWnd"`,
37
- were omitted ([#35](https://github.com/kapoorlakshya/screen-recorder/issues/35)).
38
- This fix also prints a warning when this mismatch occurs.
39
- * Fixed bug in Linux specific `WindowTitles#fetch` implementation where
40
- the filter by application name logic was removed. This filter is required
41
- on Linux here because `wmctrl` returns all open window titles unlike
42
- Microsoft Windows where `taskmgr` allows us get window titles by process
43
- name.
44
- * On Linux, you are now required to provide the `input` as `"desktop"`
45
- or a display number, such as `":0.0"`. Run `echo $DISPLAY` to check your display number.
46
- * QOL improvements - Type checking of inputs, spec cleanup, added more
47
- tests, and fixed rubocop warnings.
48
-
49
- ### 1.0.0.beta9 (2019-01-22)
50
-
51
- * :warning: `FFMPEG::RecordingRegions` is now `FFMPEG::WindowTitles`, so the module name is true to the function it provides.
52
- * Added support for for a user given path via `FFMPEG#ffmpeg_binary=()`.
53
- * Removed Bundler version requirement from gemspec to support all versions.
54
- * Implement `#discard` (alias `#delete`) to discard the video file. Useful when your test passes and you want to get rid of the video file.
55
-
56
- ### 1.0.0.beta8 (2019-01-03)
57
-
58
- * Fix a bug where the gem was incorrectly configured to be required as `ffmpeg/screenrecorder` instead of `screen-recorder`.
59
- * `ScreenRecorder#start` now returns the IO process object in case the user has a use case for it.
60
- * `RecordingRegion#fetch` now logs a warning that `x11grab` for Linux does not supporting window recording.
61
- * :warning: Parameter `infile` is now `input` to make it more intuitive.
62
-
63
- ### 1.0.0.beta7 (2018-12-23)
64
-
65
- * Fix bug in RecorderOptions where an incorrect object was referenced to read the user provided options.
66
-
67
- ### 1.0.0.beta6 (2018-12-3)
68
-
69
- * Stopping the screenrecorder now prints the failure reason given by the ffmpeg binary when `#stop` fails (Issue #7).
70
- * Log file is now defaulted to `ffmpeg.log` instead of redirecting to nul.
71
- * `log_level` now defaults to `Logger::ERROR` instead of `Logger::INFO`.
72
-
73
- ### 1.0.0.beta5 (2018-11-26)
74
-
75
- * `Screenrecorder` class is now `ScreenRecorder`.
76
- * Add support for Linux.
77
- * Now an exception raised if the gem fails to find `ffmpeg`.
78
- * Fix a bug where a file named `nul` was created instead of directing the output to `NUL`.
1
+ ### 1.2.0 (2019-05-12)
2
+ * Separate input/output specific `ffmpeg` arguments through the `advanced`
3
+ Hash. See example [here](https://github.com/kapoorlakshya/screen-recorder#advanced-options).
4
+ * Check for errors after starting the `ffmpeg` process to make sure the
5
+ recording does not stop silently because of an error. Prints the error
6
+ from the log if the process exists unexpectedly.
7
+ * Now using [`childprocess`](https://github.com/enkessler/childprocess) gem
8
+ to manage the `ffmpeg` process. This requires the `ffi` gem to be
9
+ installed on Windows. See [childprocess#132](https://github.com/enkessler/childprocess/issues/150)
10
+ for more information.
11
+
12
+ ### 1.1.0 (2019-04-14)
13
+ * <b>Add support for macOS</b> ([#55](https://github.com/kapoorlakshya/screen-recorder/issues/55)). Please [raise an Issue](https://github.com/kapoorlakshya/screen-recorder/issues/new) if you run into problems.
14
+ * Force kill `ffmpeg` if it takes more than 10s to quit ([#60](https://github.com/kapoorlakshya/screen-recorder/issues/60)).
15
+ * Fix a bug where `ScreenRecorder.ffmpeg_binary=()` was not properly defined.
16
+ * `ScreenRecorder::Titles#fetch` will now raise `NotImplementedError` when used in a
17
+ Linux or a macOS environment. Only works on Windows.
18
+ * Default `input` value on Linux is now `:0`.
19
+
20
+ ### 1.0.0 (2019-03-15)
21
+ * Released first major version.
22
+ * Now uses `ScreenRecorder` as top level module. `FFMPEG` is not directly
23
+ exposed anymore.
24
+ * The recording modes are now available through `ScreenRecorder::Desktop`
25
+ and `ScreenRecorder::Window` classes to make the usage (parameters) simpler.
26
+ * Method parameters are now keywords instead of an `opts` Hash. This means
27
+ at least Ruby 2.0.0 is required.
28
+ * `framerate:` is now to be passed through the `advanced` Hash.
29
+
30
+ ### 1.0.0.beta13 (2019-03-15)
31
+ * Gem will now be renamed to `screen-recorder`. Please refer to Issue
32
+ [#45](https://github.com/kapoorlakshya/screen-recorder/issues/45)
33
+ for more information.
34
+
35
+ ### 1.0.0.beta12 (2019-03-12)
36
+ * Reverted post install message as `screen_recorder` is already taken.
37
+
38
+ ### 1.0.0.beta11 (2019-03-12)
39
+ * Recording FPS (`framerate`) is defaulted to 15.0.
40
+ * Gem will soon be renamed to `screen_recorder`. Please refer to Issue
41
+ [#45](https://github.com/kapoorlakshya/screen-recorder/issues/45)
42
+ for more information.
43
+
44
+ ### 1.0.0.beta10 (2019-02-05)
45
+ * Fixed an edge case in Microsoft Windows specific implementation of
46
+ `WindowTitles#fetch` where processes with mismatching names and window
47
+ titles, such as process `"Calculator.exe"` with window title `"CicMarshalWnd"`,
48
+ were omitted ([#35](https://github.com/kapoorlakshya/screen-recorder/issues/35)).
49
+ This fix also prints a warning when this mismatch occurs.
50
+ * Fixed bug in Linux specific `WindowTitles#fetch` implementation where
51
+ the filter by application name logic was removed. This filter is required
52
+ on Linux here because `wmctrl` returns all open window titles unlike
53
+ Microsoft Windows where `taskmgr` allows us get window titles by process
54
+ name.
55
+ * On Linux, you are now required to provide the `input` as `"desktop"`
56
+ or a display number, such as `":0.0"`. Run `echo $DISPLAY` to check your display number.
57
+ * QOL improvements - Type checking of inputs, spec cleanup, added more
58
+ tests, and fixed rubocop warnings.
59
+
60
+ ### 1.0.0.beta9 (2019-01-22)
61
+
62
+ * :warning: `FFMPEG::RecordingRegions` is now `FFMPEG::WindowTitles`, so the module name is true to the function it provides.
63
+ * Added support for for a user given path via `FFMPEG#ffmpeg_binary=()`.
64
+ * Removed Bundler version requirement from gemspec to support all versions.
65
+ * Implement `#discard` (alias `#delete`) to discard the video file. Useful when your test passes and you want to get rid of the video file.
66
+
67
+ ### 1.0.0.beta8 (2019-01-03)
68
+
69
+ * Fix a bug where the gem was incorrectly configured to be required as `ffmpeg/screenrecorder` instead of `screen-recorder`.
70
+ * `ScreenRecorder#start` now returns the IO process object in case the user has a use case for it.
71
+ * `RecordingRegion#fetch` now logs a warning that `x11grab` for Linux does not supporting window recording.
72
+ * :warning: Parameter `infile` is now `input` to make it more intuitive.
73
+
74
+ ### 1.0.0.beta7 (2018-12-23)
75
+
76
+ * Fix bug in RecorderOptions where an incorrect object was referenced to read the user provided options.
77
+
78
+ ### 1.0.0.beta6 (2018-12-3)
79
+
80
+ * Stopping the screenrecorder now prints the failure reason given by the ffmpeg binary when `#stop` fails (Issue #7).
81
+ * Log file is now defaulted to `ffmpeg.log` instead of redirecting to nul.
82
+ * `log_level` now defaults to `Logger::ERROR` instead of `Logger::INFO`.
83
+
84
+ ### 1.0.0.beta5 (2018-11-26)
85
+
86
+ * `Screenrecorder` class is now `ScreenRecorder`.
87
+ * Add support for Linux.
88
+ * Now an exception raised if the gem fails to find `ffmpeg`.
89
+ * Fix a bug where a file named `nul` was created instead of directing the output to `NUL`.
79
90
  * Fix a bug where `RecordingRegions#window_titles` was not returning anything because of missing return keyword.