screen-recorder 1.1.0 → 1.2.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 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.