user_space 3.0.0 → 3.0.3

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.
Files changed (5) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +61 -0
  3. data/lib/user_space.rb +12 -13
  4. metadata +8 -12
  5. data/README.rdoc +0 -60
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d3ae8aaabb7afea9d1a3196eaf03f8966452af23
4
- data.tar.gz: ad86d87a76f09b750b816bd0ed2fa6b50a4b4fc2
2
+ SHA256:
3
+ metadata.gz: 1dfcc971479291e90e318bd01ba58aa13ebfd8879b8cea95e308b37530933393
4
+ data.tar.gz: c0bccd867a3a6aa2ab2a6af9280391e6e6c0393b1f9df9664dd9f0ac7f0ccdc0
5
5
  SHA512:
6
- metadata.gz: 2f32473a4e15619c124c18afbf4076934148e2d5bc1e28da76dcd46948ee6ad58e98bfa28bcf209d7c2d64ececf9302663ef1a5f12c65ce9684db7e3b68b68ca
7
- data.tar.gz: ffa7851b59e727ac38aedb942fcfd32685eef4317152048912382732853a144eb41c26517a1d8ccf0dd593ede3edb7f9dcf8488795e7ec8037db3333bd2118aa
6
+ metadata.gz: a22b5d23502cb1216d444510f1fe0474125a9d5b9ce3bfd87908516071f1efc59290ce367eda718bfb259bc5f1306796cb4e41f075f7b9b6b7623eee7a457fab
7
+ data.tar.gz: 210fad38ba6a7c41852176660b59ee0301eec0ad193cf04b9cc7273c8de0601942a6b2a9415990379ed59515e933c4cc576c4072a7a9aa52f28e290fa0180403
@@ -0,0 +1,61 @@
1
+ # UserSpace
2
+
3
+ * [VERSION 3.0.3](https://github.com/carlosjhr64/user_space/releases)
4
+ * [github](https://www.github.com/carlosjhr64/user_space)
5
+ * [rubygems](https://rubygems.org/gems/user_space)
6
+
7
+ ## DESCRIPTION:
8
+
9
+ Maintains the app's XDG features: app's cache, config, and data directories.
10
+
11
+ ## SYNOPSIS:
12
+
13
+ require 'json' # Using JSON parser for the config file.
14
+ require 'user_space'
15
+ # APP::CONFIG is your app's configuration.
16
+ # Perhaps like...
17
+ APP::CONFIG = {:tts=>'espeak', }
18
+ USERSPACE = UserSpace.new(JSON)
19
+ # Unless this version has been installed,
20
+ # we copy over our data and cache directories.
21
+ USERSPACE.install unless USERSPACE.version == APP::VERSION
22
+ if USERSPACE.config?
23
+ # Because JSON hashes by String, converting to Symbol.
24
+ # We pad up APP::CONFIG with user's preferences:
25
+ USERSPACE.config.each{|opt, value| APP::CONFIG[opt.to_sym] = value}
26
+ else
27
+ # We initialize user preferences with our initial APP::CONFIG
28
+ STDERR.puts "Writting '#{USERSPACE.config_file_name}'"
29
+ USERSPACE.config = APP::CONFIG
30
+ end
31
+ # To do the same thing, you can also say:
32
+ # USERSPACE.configures(APP::CONFIG)
33
+
34
+ ## INSTALL:
35
+
36
+ sudo gem install user_space
37
+
38
+ ## LICENSE:
39
+
40
+ (The MIT License)
41
+
42
+ Copyright (c) 2020 CarlosJHR64
43
+
44
+ Permission is hereby granted, free of charge, to any person obtaining
45
+ a copy of this software and associated documentation files (the
46
+ 'Software'), to deal in the Software without restriction, including
47
+ without limitation the rights to use, copy, modify, merge, publish,
48
+ distribute, sublicense, and/or sell copies of the Software, and to
49
+ permit persons to whom the Software is furnished to do so, subject to
50
+ the following conditions:
51
+
52
+ The above copyright notice and this permission notice shall be
53
+ included in all copies or substantial portions of the Software.
54
+
55
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
56
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
57
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
58
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
59
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
60
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
61
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -3,19 +3,8 @@ require 'xdg'
3
3
  # Requires:
4
4
  #`ruby`
5
5
 
6
- module FileUtils
7
- class << self
8
- def user_space_cpr(src, dest)
9
- fu_each_src_dest(src, dest) do |s, d|
10
- copy_entry(s, d)
11
- chmod('u+rwX,go-rwx', d)
12
- end
13
- end
14
- end
15
- end
16
-
17
6
  class UserSpace
18
- VERSION = '3.0.0'
7
+ VERSION = '3.0.3'
19
8
 
20
9
  def self.appdir
21
10
  appdir = File.dirname File.dirname caller_locations(1,1)[0].path
@@ -60,7 +49,17 @@ class UserSpace
60
49
  else
61
50
  Dir.mkdir(userdir, 0700)
62
51
  end
63
- FileUtils.user_space_cpr(Dir.glob("#{basedir}/*"), userdir) if File.directory? basedir
52
+ if File.directory? basedir
53
+ Dir.glob("#{basedir}/**/*").each do |src|
54
+ dest = src.sub(basedir, userdir)
55
+ if File.directory? src
56
+ Dir.mkdir dest unless File.exist? dest
57
+ else
58
+ FileUtils.cp src, dest
59
+ end
60
+ FileUtils.chmod('u+rwX,go-rwx', dest)
61
+ end
62
+ end
64
63
  end
65
64
  end
66
65
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: user_space
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.0
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - carlosjhr64
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-27 00:00:00.000000000 Z
11
+ date: 2020-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: xdg
@@ -26,23 +26,20 @@ dependencies:
26
26
  version: 2.2.3
27
27
  description: 'Maintains the app''s XDG features: app''s cache, config, and data directories.
28
28
 
29
- '
29
+ '
30
30
  email: carlosjhr64@gmail.com
31
31
  executables: []
32
32
  extensions: []
33
- extra_rdoc_files:
34
- - README.rdoc
33
+ extra_rdoc_files: []
35
34
  files:
36
- - README.rdoc
35
+ - README.md
37
36
  - lib/user_space.rb
38
37
  homepage: https://github.com/carlosjhr64/user_space
39
38
  licenses:
40
39
  - MIT
41
40
  metadata: {}
42
41
  post_install_message:
43
- rdoc_options:
44
- - "--main"
45
- - README.rdoc
42
+ rdoc_options: []
46
43
  require_paths:
47
44
  - lib
48
45
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -56,9 +53,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
56
53
  - !ruby/object:Gem::Version
57
54
  version: '0'
58
55
  requirements:
59
- - 'ruby: ruby 2.4.2p198 (2017-09-14 revision 59899) [x86_64-linux]'
60
- rubyforge_project:
61
- rubygems_version: 2.6.13
56
+ - 'ruby: ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-linux]'
57
+ rubygems_version: 3.1.2
62
58
  signing_key:
63
59
  specification_version: 4
64
60
  summary: 'Maintains the app''s XDG features: app''s cache, config, and data directories.'
@@ -1,60 +0,0 @@
1
- = user_space
2
-
3
- github :: https://www.github.com/carlosjhr64/user_space
4
- rubygems :: https://rubygems.org/gems/user_space
5
-
6
- == DESCRIPTION:
7
-
8
- Maintains the app's XDG features: app's cache, config, and data directories.
9
-
10
- == SYNOPSIS:
11
-
12
- require 'json' # Using JSON parser for the config file.
13
- require 'user_space'
14
- # APP::CONFIG is your app's configuration.
15
- # Perhaps like...
16
- APP::CONFIG = {:tts=>'espeak', }
17
- USERSPACE = UserSpace.new(JSON)
18
- # Unless this version has been installed,
19
- # we copy over our data and cache directories.
20
- USERSPACE.install unless USERSPACE.version == APP::VERSION
21
- if USERSPACE.config?
22
- # Because JSON hashes by String, converting to Symbol.
23
- # We pad up APP::CONFIG with user's preferences:
24
- USERSPACE.config.each{|opt, value| APP::CONFIG[opt.to_sym] = value}
25
- else
26
- # We initialize user preferences with our initial APP::CONFIG
27
- STDERR.puts "Writting '#{USERSPACE.config_file_name}'"
28
- USERSPACE.config = APP::CONFIG
29
- end
30
- # To do the same thing, you can also say:
31
- # USERSPACE.configures(APP::CONFIG)
32
-
33
- == INSTALL:
34
-
35
- sudo gem install user_space
36
-
37
- == LICENSE:
38
-
39
- (The MIT License)
40
-
41
- Copyright (c) 2017 CarlosJHR64
42
-
43
- Permission is hereby granted, free of charge, to any person obtaining
44
- a copy of this software and associated documentation files (the
45
- 'Software'), to deal in the Software without restriction, including
46
- without limitation the rights to use, copy, modify, merge, publish,
47
- distribute, sublicense, and/or sell copies of the Software, and to
48
- permit persons to whom the Software is furnished to do so, subject to
49
- the following conditions:
50
-
51
- The above copyright notice and this permission notice shall be
52
- included in all copies or substantial portions of the Software.
53
-
54
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
55
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
56
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
57
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
58
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
59
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
60
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.