onlyoffice_file_helper 0.2.0 → 0.3.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 +4 -4
- data/lib/onlyoffice_file_helper.rb +14 -0
- data/lib/onlyoffice_file_helper/create_methods.rb +3 -0
- data/lib/onlyoffice_file_helper/directory_methods.rb +10 -0
- data/lib/onlyoffice_file_helper/linux_helper.rb +13 -0
- data/lib/onlyoffice_file_helper/name.rb +6 -0
- data/lib/onlyoffice_file_helper/read_methods.rb +6 -0
- data/lib/onlyoffice_file_helper/ruby_helper.rb +11 -0
- data/lib/onlyoffice_file_helper/string_helper.rb +13 -1
- data/lib/onlyoffice_file_helper/version.rb +2 -1
- metadata +25 -5
- data/README.md +0 -39
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 960f7f59f836fb2dbbdb528ce155c265cb92e380557fa758465686612d4e7176
|
4
|
+
data.tar.gz: c0b2363e46bbf0ec44824caa4ba9a6085b0eab20597d9e021fe9f4f2447281ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5483180cd580bd34697f23787630bad8eb72e1b879cbde1af1e22473829c07d36dfe73d0bb5834c4897d9e95d808f12cff6daeb5cb0f42c819abc99152185f3e
|
7
|
+
data.tar.gz: be52527e07d845c960724fa3a2ddbac3a7e31465bd3d8be6792a91a30a3663a673193bd5d7aeeb64d51caab1d62427cca33bd49f3cdc426bf9ce6d14a9b18e76
|
@@ -10,8 +10,10 @@ require 'onlyoffice_file_helper/directory_methods'
|
|
10
10
|
require 'onlyoffice_file_helper/read_methods'
|
11
11
|
require 'onlyoffice_file_helper/version'
|
12
12
|
require 'onlyoffice_file_helper/linux_helper'
|
13
|
+
require 'onlyoffice_file_helper/ruby_helper'
|
13
14
|
require 'onlyoffice_file_helper/string_helper'
|
14
15
|
|
16
|
+
# Namespace of project
|
15
17
|
module OnlyofficeFileHelper
|
16
18
|
# Stuff for working with Files
|
17
19
|
class FileHelper
|
@@ -29,6 +31,10 @@ module OnlyofficeFileHelper
|
|
29
31
|
name.to_s
|
30
32
|
end
|
31
33
|
|
34
|
+
# Wait for downloading file
|
35
|
+
# @param path [String] path to waiting download
|
36
|
+
# @param timeout [Integer] timeout to wait
|
37
|
+
# @return [True, False] result
|
32
38
|
def wait_file_to_download(path, timeout = 300)
|
33
39
|
timer = 0
|
34
40
|
OnlyofficeLoggerHelper.log("Start waiting to download file: #{path}")
|
@@ -42,6 +48,10 @@ module OnlyofficeFileHelper
|
|
42
48
|
timer <= timeout
|
43
49
|
end
|
44
50
|
|
51
|
+
# Extract archive to folder
|
52
|
+
# @param path_to_archive [String] path of file
|
53
|
+
# @param path_to_extract [String] result path
|
54
|
+
# @return [Void]
|
45
55
|
def extract_to_folder(path_to_archive,
|
46
56
|
path_to_extract = path_to_archive.chomp(File.basename(path_to_archive)))
|
47
57
|
raise 'File not found: ' + path_to_archive.to_s unless wait_file_to_download(path_to_archive)
|
@@ -57,6 +67,10 @@ module OnlyofficeFileHelper
|
|
57
67
|
end
|
58
68
|
end
|
59
69
|
|
70
|
+
# Save string to file
|
71
|
+
# @param string [String] string to save
|
72
|
+
# @param file_name [String] file to save
|
73
|
+
# @return [Void]
|
60
74
|
def output_string_to_file(string, file_name)
|
61
75
|
File.open(file_name, 'a+') do |f1|
|
62
76
|
f1.write(string)
|
@@ -3,6 +3,9 @@
|
|
3
3
|
module OnlyofficeFileHelper
|
4
4
|
# Methods used to create something
|
5
5
|
module CreateMethods
|
6
|
+
# Gracefully create folder. Do not fail if already exists
|
7
|
+
# @param path [String] path to folder
|
8
|
+
# @return [Void]
|
6
9
|
def create_folder(path)
|
7
10
|
FileUtils.mkdir_p(path) unless File.directory?(path)
|
8
11
|
rescue Errno::EEXIST
|
@@ -3,10 +3,16 @@
|
|
3
3
|
module OnlyofficeFileHelper
|
4
4
|
# Methods used to work with directories
|
5
5
|
module DirectoryMethods
|
6
|
+
# Delete directory only if it exists
|
7
|
+
# @param path [String] directory to delete
|
8
|
+
# @return [Void]
|
6
9
|
def delete_directory(path)
|
7
10
|
FileUtils.rm_rf(path) if Dir.exist?(path)
|
8
11
|
end
|
9
12
|
|
13
|
+
# List of files in directory as array
|
14
|
+
# @param path [String] path to directory
|
15
|
+
# @return [Array<String>] list of all files
|
10
16
|
def directory_hash(path)
|
11
17
|
files = []
|
12
18
|
Dir.foreach(path).sort.each do |entry|
|
@@ -19,6 +25,10 @@ module OnlyofficeFileHelper
|
|
19
25
|
files
|
20
26
|
end
|
21
27
|
|
28
|
+
# List all files in directory
|
29
|
+
# @param directory [String] path to directory
|
30
|
+
# @param extension [String] filter extension
|
31
|
+
# @return [Array<String>] list of all files
|
22
32
|
def list_file_in_directory(directory, extension = nil)
|
23
33
|
paths = []
|
24
34
|
Find.find(directory) do |path|
|
@@ -8,27 +8,38 @@ module OnlyofficeFileHelper
|
|
8
8
|
class LinuxHelper
|
9
9
|
extend XdotoolHelper
|
10
10
|
|
11
|
+
# Download file by link using
|
12
|
+
# @param link [String] url to download
|
13
|
+
# @param full_name_file [String] path to save file
|
14
|
+
# @return [Void]
|
11
15
|
def self.download_file(link, full_name_file)
|
12
16
|
`wget -O #{full_name_file} #{link}`
|
13
17
|
end
|
14
18
|
|
19
|
+
# Kill All process with specified pattern name
|
20
|
+
# @param process [String] names of process
|
21
|
+
# @return [Void]
|
15
22
|
def self.kill_all(process)
|
16
23
|
OnlyofficeLoggerHelper.log("killall -9 #{process} 2>&1")
|
17
24
|
`killall -9 #{process} 2>&1`
|
18
25
|
end
|
19
26
|
|
27
|
+
# Just kill all known browsers
|
28
|
+
# @return [Void]
|
20
29
|
def self.kill_all_browsers
|
21
30
|
kill_all('firefox')
|
22
31
|
kill_all('chrome')
|
23
32
|
kill_all('opera')
|
24
33
|
end
|
25
34
|
|
35
|
+
# @return [String] current user name
|
26
36
|
def self.user_name
|
27
37
|
`id -u -n`
|
28
38
|
end
|
29
39
|
|
30
40
|
singleton_class.send(:alias_method, :get_user_name, :user_name)
|
31
41
|
|
42
|
+
# @return [String] current computer name
|
32
43
|
def self.computer_name
|
33
44
|
computer_name = Socket.gethostname
|
34
45
|
OnlyofficeLoggerHelper.log("`LinuxHelper.get_computer_name` # #{computer_name}")
|
@@ -37,6 +48,7 @@ module OnlyofficeFileHelper
|
|
37
48
|
|
38
49
|
singleton_class.send(:alias_method, :get_computer_name, :computer_name)
|
39
50
|
|
51
|
+
# @return [String] content of clipboard
|
40
52
|
def self.clipboard_content
|
41
53
|
`xclip -o`
|
42
54
|
end
|
@@ -50,6 +62,7 @@ module OnlyofficeFileHelper
|
|
50
62
|
`xdg-user-dir #{name.to_s.upcase}`.strip
|
51
63
|
end
|
52
64
|
|
65
|
+
# @return [String] external ip of system
|
53
66
|
def self.my_external_ip
|
54
67
|
`curl "http://myexternalip.com/raw"`.chomp
|
55
68
|
end
|
@@ -3,6 +3,9 @@
|
|
3
3
|
module OnlyofficeFileHelper
|
4
4
|
# Methods used to read something
|
5
5
|
module ReadMethods
|
6
|
+
# Read file content to string
|
7
|
+
# @param file_name [String] file to read
|
8
|
+
# @return [String] result of read
|
6
9
|
def read_file_to_string(file_name)
|
7
10
|
result_string = ''
|
8
11
|
raise 'File not found: ' + file_name.to_s unless File.exist?(file_name)
|
@@ -15,6 +18,9 @@ module OnlyofficeFileHelper
|
|
15
18
|
result_string
|
16
19
|
end
|
17
20
|
|
21
|
+
# Read file content to array, split by newline
|
22
|
+
# @param file_name [String] path to file
|
23
|
+
# @return [Array<String>] result of read
|
18
24
|
def read_array_from_file(file_name)
|
19
25
|
result_array = []
|
20
26
|
return [] unless File.exist?(file_name)
|
@@ -4,10 +4,16 @@ module OnlyofficeFileHelper
|
|
4
4
|
# Helper for Strings
|
5
5
|
class StringHelper
|
6
6
|
class << self
|
7
|
+
# Random string with specific length
|
8
|
+
# @param length_string [Integer] length of string
|
9
|
+
# @return [String] string with length
|
7
10
|
def generate_random_string(length_string = 32)
|
8
11
|
(0...length_string).map { (('a'..'z').to_a + ('A'..'Z').to_a)[rand(52)] }.join
|
9
12
|
end
|
10
13
|
|
14
|
+
# Generate random number with prefix
|
15
|
+
# @param value [String, Integer] prefix to generate
|
16
|
+
# @return [String] result of random number
|
11
17
|
def generate_random_number(value = nil)
|
12
18
|
"#{value}: #{Time.now.nsec}"
|
13
19
|
end
|
@@ -17,7 +23,10 @@ module OnlyofficeFileHelper
|
|
17
23
|
# @param [String] first_element 1'st element to compare
|
18
24
|
# @param [String] second_element 2'st element to compare
|
19
25
|
# @return [String] String with result of comparison
|
20
|
-
def get_result_string_of_comparison(compare_parameter,
|
26
|
+
def get_result_string_of_comparison(compare_parameter,
|
27
|
+
first_element,
|
28
|
+
second_element,
|
29
|
+
accuracy = 0.01)
|
21
30
|
if first_element.is_a?(Float) && second_element.is_a?(Float)
|
22
31
|
difference = (first_element - second_element).abs
|
23
32
|
difference >= accuracy ? "Difference between parameters in #{compare_parameter} is #{difference}" : ''
|
@@ -28,6 +37,9 @@ module OnlyofficeFileHelper
|
|
28
37
|
end
|
29
38
|
end
|
30
39
|
|
40
|
+
# Convert string to boolean value
|
41
|
+
# @param string [String] to convert
|
42
|
+
# @return [True, False]
|
31
43
|
def to_bool(string)
|
32
44
|
str = string.to_s
|
33
45
|
if str.casecmp('false').zero?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: onlyoffice_file_helper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ONLYOFFICE
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-04-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: onlyoffice_logger_helper
|
@@ -45,6 +45,20 @@ dependencies:
|
|
45
45
|
- - "<"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3'
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rake
|
50
|
+
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '13.0'
|
55
|
+
type: :development
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '13.0'
|
48
62
|
description: ONLYOFFICE Helper Gem for File operation. Used in QA
|
49
63
|
email:
|
50
64
|
- shockwavenn@gmail.com
|
@@ -52,19 +66,25 @@ executables: []
|
|
52
66
|
extensions: []
|
53
67
|
extra_rdoc_files: []
|
54
68
|
files:
|
55
|
-
- README.md
|
56
69
|
- lib/onlyoffice_file_helper.rb
|
57
70
|
- lib/onlyoffice_file_helper/create_methods.rb
|
58
71
|
- lib/onlyoffice_file_helper/directory_methods.rb
|
59
72
|
- lib/onlyoffice_file_helper/linux_helper.rb
|
60
73
|
- lib/onlyoffice_file_helper/linux_helper/xdotool_helper.rb
|
74
|
+
- lib/onlyoffice_file_helper/name.rb
|
61
75
|
- lib/onlyoffice_file_helper/read_methods.rb
|
76
|
+
- lib/onlyoffice_file_helper/ruby_helper.rb
|
62
77
|
- lib/onlyoffice_file_helper/string_helper.rb
|
63
78
|
- lib/onlyoffice_file_helper/version.rb
|
64
79
|
homepage: https://github.com/onlyoffice-testing-robot/onlyoffice_file_helper
|
65
80
|
licenses:
|
66
81
|
- AGPL-3.0
|
67
|
-
metadata:
|
82
|
+
metadata:
|
83
|
+
bug_tracker_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_file_helper/issues
|
84
|
+
changelog_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_file_helper/blob/master/CHANGELOG.md
|
85
|
+
documentation_uri: https://www.rubydoc.info/gems/onlyoffice_file_helper
|
86
|
+
homepage_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_file_helper
|
87
|
+
source_code_uri: https://github.com/onlyoffice-testing-robot/onlyoffice_file_helper
|
68
88
|
post_install_message:
|
69
89
|
rdoc_options: []
|
70
90
|
require_paths:
|
@@ -80,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
80
100
|
- !ruby/object:Gem::Version
|
81
101
|
version: '0'
|
82
102
|
requirements: []
|
83
|
-
rubygems_version: 3.
|
103
|
+
rubygems_version: 3.1.2
|
84
104
|
signing_key:
|
85
105
|
specification_version: 4
|
86
106
|
summary: ONLYOFFICE Helper Gem for File operation
|
data/README.md
DELETED
@@ -1,39 +0,0 @@
|
|
1
|
-
# OnlyofficeFileHelper
|
2
|
-
|
3
|
-
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/onlyoffice_file_helper`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
|
-
|
5
|
-
TODO: Delete this and the text above, and describe your gem
|
6
|
-
|
7
|
-
## Installation
|
8
|
-
|
9
|
-
Add this line to your application's Gemfile:
|
10
|
-
|
11
|
-
```ruby
|
12
|
-
gem 'onlyoffice_file_helper'
|
13
|
-
```
|
14
|
-
|
15
|
-
And then execute:
|
16
|
-
|
17
|
-
$ bundle
|
18
|
-
|
19
|
-
Or install it yourself as:
|
20
|
-
|
21
|
-
$ gem install onlyoffice_file_helper
|
22
|
-
|
23
|
-
## Usage
|
24
|
-
|
25
|
-
TODO: Write usage instructions here
|
26
|
-
|
27
|
-
## Development
|
28
|
-
|
29
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
-
|
31
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
-
|
33
|
-
## Contributing
|
34
|
-
|
35
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/onlyoffice_file_helper. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
36
|
-
|
37
|
-
## Code of Conduct
|
38
|
-
|
39
|
-
Everyone interacting in the OnlyofficeFileHelper project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/onlyoffice_file_helper/blob/master/CODE_OF_CONDUCT.md).
|