props 1.1.2 → 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
  SHA1:
3
- metadata.gz: 9c63a383991a49afc70efa89d982e2855eb99cfc
4
- data.tar.gz: 716a1d2d01d3b8d2eb071883e2b2dbd1bbb64b3f
3
+ metadata.gz: b88d1e58bc4160d79848f192186a8cc375d4a82d
4
+ data.tar.gz: 9edc188d3a49723dd51167359a772a8e66768531
5
5
  SHA512:
6
- metadata.gz: 0565dc3e9df6e002ec7d92c4ae6f31421e150481123dc98acc0030cb19ab746cf529464d805090c06d38d27d64ddbc092e21f7e46494d3583b6a25d90638e524
7
- data.tar.gz: 6ea4e12bc301929f8664f9b0ef703764c86cd53a3e6e045a6b7b7562a0359313b2fb2886235062b777a188147afe87eb98c266cf7e12d402dec13350552f9260
6
+ metadata.gz: 1fa51b77c8226beab7f8ca48577f16eb8fdd4a3de1d2a956999471051a26c679eee5a1a387513e6d5f123ac47300368529b64c3dfab4ae25310ad60886d52053
7
+ data.tar.gz: 8843e8df31d1cd0ec492804a0d4572883cd2f6f9d85f95d99056dbf774ab4588e028b1ca03532ab8a2e35ea46e97fcc3e02d256c5cbe68c835df1385aebe5a80
@@ -1,11 +1,10 @@
1
- HISTORY.md
2
- Manifest.txt
3
- README.md
4
- Rakefile
5
- lib/props.rb
6
- lib/props/env.rb
7
- lib/props/ini.rb
8
- lib/props/props.rb
9
- lib/props/version.rb
10
- test/helper.rb
11
- test/test_ini.rb
1
+ HISTORY.md
2
+ Manifest.txt
3
+ README.md
4
+ Rakefile
5
+ lib/props.rb
6
+ lib/props/env.rb
7
+ lib/props/props.rb
8
+ lib/props/version.rb
9
+ test/helper.rb
10
+ test/test_version.rb
data/README.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  Example:
14
14
 
15
- ~~~
15
+ ``` ruby
16
16
  class Config
17
17
 
18
18
  DEFAULTS = { 'libs' => [ 'kramdown' ],
@@ -44,9 +44,9 @@ class Config
44
44
  puts "Loading settings from '#{props_home_file}'..."
45
45
  @props = @props_home = Props.load_file( props_home_file, @props )
46
46
  end
47
-
47
+
48
48
  # check for user settings (markdown.yml) in working folder
49
-
49
+
50
50
  props_work_file = File.join( '.', 'markdown.yml' )
51
51
  if File.exists?( props_work_file )
52
52
  puts "Loading settings from '#{props_work_file}'..."
@@ -59,23 +59,23 @@ class Config
59
59
  end
60
60
 
61
61
  ...
62
-
62
+
63
63
  end # class Config
64
- ~~~
64
+ ```
65
65
 
66
66
 
67
67
  ### Environment
68
68
 
69
69
  Example:
70
70
 
71
- ~~~
72
- >> Env.home
71
+ ``` ruby
72
+ puts Env.home
73
73
  # => '/home/gerald'
74
- ~~~
74
+ ```
75
75
 
76
76
  Backstage the `Env.home` code looks something like:
77
77
 
78
- ~~~
78
+ ``` ruby
79
79
  path = if( ENV['HOME'] || ENV['USERPROFILE'] )
80
80
  ENV['HOME'] || ENV['USERPROFILE']
81
81
  elsif( ENV['HOMEDRIVE'] && ENV['HOMEPATH'] )
@@ -91,42 +91,20 @@ path = if( ENV['HOME'] || ENV['USERPROFILE'] )
91
91
  end
92
92
  end
93
93
  end
94
- ~~~
94
+ ```
95
95
 
96
96
 
97
97
  `Env.path` returns `ENV[ 'PATH' ]` - splits all path entries
98
98
  w/ file separator (e.g. `;` or `:`) and returns string array
99
99
 
100
- ~~~
101
- >> Env.path
100
+ ``` ruby
101
+ puts Env.path
102
102
  # => ['/usr/local/sbin',
103
- '/usr/local/bin',
104
- '/usr/sbin',
105
- ...
106
- ]
107
- ~~~
108
-
109
-
110
- ### INI
111
-
112
- Example:
113
-
114
- ~~~
115
- config_path = './ruby.ini'
116
- ~~~
117
-
118
- Opt 1) `INI.load` - load from string. Example:
119
-
120
- ~~~
121
- text = File.read( config_path )
122
- config = INI.load( text )
123
- ~~~
124
-
125
- Opt 2) `INI.load_file` - load from file (shortcut). Example:
126
-
127
- ~~~
128
- config = INI.load_file( config_path )
129
- ~~~
103
+ # '/usr/local/bin',
104
+ # '/usr/sbin',
105
+ # ...
106
+ # ]
107
+ ```
130
108
 
131
109
 
132
110
 
@@ -144,7 +122,7 @@ The [`slideshow`](http://slideshow-s9.github.io) gem (also known as Slide Show (
144
122
  that lets you create slide shows
145
123
  and author slides in plain text using a wiki-style markup language that's easy-to-write and easy-to-read.
146
124
 
147
- The [`pluto`](http://feedreader.github.io) gem
125
+ The [`pluto`](http://feedreader.github.io) gem
148
126
  that lets you auto-build web pages from web feeds.
149
127
 
150
128
  The [`markdown`](https://github.com/rubylibs/markdown) gem that lets you use your markdown library
@@ -152,20 +130,14 @@ of choice.
152
130
 
153
131
 
154
132
 
155
- ## Alternatives
156
-
157
- ### Config / Settings
158
-
159
- * [`configtoolkit`](http://configtoolkit.rubyforge.org) gem
160
-
161
- ### Environment / Env
133
+ ## License
162
134
 
163
- * [`env`](https://github.com/postmodern/env) gem
135
+ ![](https://publicdomainworks.github.io/buttons/zero88x31.png)
164
136
 
165
- ### Ini
137
+ The `props` scripts are dedicated to the public domain.
138
+ Use it as you please with no restrictions whatsoever.
166
139
 
167
140
 
168
- ## License
141
+ ## Questions? Comments?
169
142
 
170
- The `props` scripts are dedicated to the public domain.
171
- Use it as you please with no restrictions whatsoever.
143
+ Post them to the [wwwmake forum](http://groups.google.com/group/wwwmake). Thanks!
data/Rakefile CHANGED
@@ -11,7 +11,7 @@ Hoe.spec 'props' do
11
11
  self.urls = ['https://github.com/rubylibs/props']
12
12
 
13
13
  self.author = 'Gerald Bauer'
14
- self.email = 'webslideshow@googlegroups.com'
14
+ self.email = 'wwwmake@googlegroups.com'
15
15
 
16
16
  # switch extension to .markdown for gihub formatting
17
17
  self.readme_file = 'README.md'
@@ -19,6 +19,10 @@ Hoe.spec 'props' do
19
19
 
20
20
  self.licenses = ['Public Domain']
21
21
 
22
+ self.extra_deps = [
23
+ ['iniparser', '>=0.1.0'],
24
+ ]
25
+
22
26
  self.spec_extras = {
23
27
  required_ruby_version: '>= 1.9.2'
24
28
  }
@@ -8,11 +8,14 @@ require 'fileutils'
8
8
  require 'erb'
9
9
 
10
10
 
11
+ # 3rd party
12
+ require 'iniparser' # (auto-)include INI.load for now (was part of props - now its own gem)
13
+
14
+
11
15
  # our own code
12
16
 
13
17
  require 'props/version' # version always goes first
14
18
  require 'props/env'
15
- require 'props/ini'
16
19
  require 'props/props'
17
20
 
18
21
 
@@ -23,16 +26,6 @@ Env = ConfUtils::Env
23
26
  Props = ConfUtils::Props
24
27
 
25
28
 
26
- module INI
27
-
28
- # returns a nested hash
29
- # (compatible structure - works like YAML.load_file)
30
-
31
- def self.load_file( path ) ConfUtils::IniFile.load_file( path ); end
32
- def self.load( text ) ConfUtils::IniFile.load( text ); end
33
-
34
- end # module INI
35
-
36
29
 
37
30
 
38
31
  puts ConfUtils.banner if $DEBUG || (defined?($RUBYLIBS_DEBUG) && $RUBYLIBS_DEBUG) # say hello
@@ -3,8 +3,8 @@
3
3
  module ConfUtils
4
4
 
5
5
  MAJOR = 1 ## todo: namespace inside version or something - why? why not??
6
- MINOR = 1
7
- PATCH = 2
6
+ MINOR = 2
7
+ PATCH = 0
8
8
  VERSION = [MAJOR,MINOR,PATCH].join('.')
9
9
 
10
10
  def self.version
@@ -21,4 +21,3 @@ module ConfUtils
21
21
  end
22
22
 
23
23
  end # module ConfUtils
24
-
@@ -0,0 +1,14 @@
1
+
2
+ require 'helper'
3
+
4
+
5
+ class TestVersion < MiniTest::Test
6
+
7
+ def test_version
8
+
9
+ puts ConfUtils::VERSION
10
+
11
+ assert true
12
+ end
13
+
14
+ end # class test_version
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: props
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gerald Bauer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-03 00:00:00.000000000 Z
11
+ date: 2017-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: iniparser
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.1.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.1.0
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rdoc
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -30,17 +44,17 @@ dependencies:
30
44
  requirements:
31
45
  - - "~>"
32
46
  - !ruby/object:Gem::Version
33
- version: '3.13'
47
+ version: '3.15'
34
48
  type: :development
35
49
  prerelease: false
36
50
  version_requirements: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - "~>"
39
53
  - !ruby/object:Gem::Version
40
- version: '3.13'
54
+ version: '3.15'
41
55
  description: props - Manage Settings Hierachies (Commandline, User, Home, Defaults,
42
56
  etc.)
43
- email: webslideshow@googlegroups.com
57
+ email: wwwmake@googlegroups.com
44
58
  executables: []
45
59
  extensions: []
46
60
  extra_rdoc_files:
@@ -48,18 +62,16 @@ extra_rdoc_files:
48
62
  - Manifest.txt
49
63
  - README.md
50
64
  files:
51
- - ".gemtest"
52
65
  - HISTORY.md
53
66
  - Manifest.txt
54
67
  - README.md
55
68
  - Rakefile
56
69
  - lib/props.rb
57
70
  - lib/props/env.rb
58
- - lib/props/ini.rb
59
71
  - lib/props/props.rb
60
72
  - lib/props/version.rb
61
73
  - test/helper.rb
62
- - test/test_ini.rb
74
+ - test/test_version.rb
63
75
  homepage: https://github.com/rubylibs/props
64
76
  licenses:
65
77
  - Public Domain
@@ -82,9 +94,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
94
  version: '0'
83
95
  requirements: []
84
96
  rubyforge_project:
85
- rubygems_version: 2.4.2
97
+ rubygems_version: 2.6.7
86
98
  signing_key:
87
99
  specification_version: 4
88
100
  summary: props - Manage Settings Hierachies (Commandline, User, Home, Defaults, etc.)
89
- test_files:
90
- - test/test_ini.rb
101
+ test_files: []
data/.gemtest DELETED
File without changes
@@ -1,84 +0,0 @@
1
-
2
- module ConfUtils
3
-
4
-
5
- class IniFile
6
-
7
- # returns a nested hash
8
- # (compatible structure - works like YAML.load_file)
9
-
10
- def self.load_file( path )
11
- text = File.open( path, 'r:bom|utf-8' ).read
12
- self.load( text )
13
- end
14
-
15
- def self.load( text )
16
- IniFile.new( text ).parse
17
- end
18
-
19
-
20
- def initialize( text )
21
- @text = text
22
- end
23
-
24
- def parse
25
- hash = top_hash = Hash.new
26
-
27
- text = @text
28
- text = text.gsub( "\t", ' ' ) # replace all tabs w/ spaces
29
-
30
- text.each_line do |line|
31
-
32
- ### skip comments
33
- # e.g. # this is a comment line
34
- # or ; this too
35
- # or -- haskell style
36
- # or % text style
37
-
38
- if line =~ /^\s*#/ || line =~ /^\s*;/ || line =~ /^\s*--/ || line =~ /^\s*%/
39
- ## logger.debug 'skipping comment line'
40
- next
41
- end
42
-
43
- ### skip blank lines
44
- if line =~ /^\s*$/
45
- ## logger.debug 'skipping blank line'
46
- next
47
- end
48
-
49
- # pass 1) remove possible trailing eol comment
50
- ## e.g -> New York # Sample EOL Comment Here (with or without commas,,,,)
51
- ## becomes -> New York
52
-
53
- line = line.sub( /\s+#.*$/, '' )
54
-
55
- # pass 2) remove leading and trailing whitespace
56
-
57
- line = line.strip
58
-
59
- ## check for new section e.g. [planet012-xxx_bc]
60
-
61
- ### todo: allow _ or - in strict section key? why? why not??
62
- ### allow _ or - in value key? why why not??
63
- if line =~ /^\s*\[\s*([a-z0-9_\-]+)\s*\]\s*$/ # strict section
64
- key = $1.to_s.dup
65
- hash = top_hash[ key ] = Hash.new
66
- elsif line =~ /^\s*\[\s*([^ \]]+)\s*\]\s*$/ # liberal section; allow everything in key
67
- key = $1.to_s.dup
68
- hash = top_hash[ key ] = Hash.new
69
- elsif line =~ /^\s*([a-z0-9_\-]+)\s*[:=](.*)$/
70
- key = $1.to_s.dup
71
- value = $2.to_s.strip.dup # check if it can be nil? if yes use blank string e.g. ''
72
- ### todo: strip quotes from value??? why? why not?
73
- hash[ key ] = value
74
- else
75
- puts "*** warn: skipping unknown line type in ini >#{line}<"
76
- end
77
- end # each lines
78
-
79
- top_hash
80
- end
81
-
82
- end # class IniReader
83
-
84
- end # module ConfUtils
@@ -1,45 +0,0 @@
1
-
2
- require 'helper'
3
-
4
-
5
- class TestIni < MiniTest::Test
6
-
7
- def test_load
8
-
9
- text = <<EOS
10
- # comment
11
- ; another comment
12
-
13
- key1 = hello
14
- key2 : hi!
15
-
16
- [section1]
17
- key3 = salut # end of line comment here
18
-
19
- [section2]
20
- key4: hola
21
- blank =
22
- blank2:
23
-
24
- [ http://example.com ]
25
- title = A rose is a rose is a rose, eh?
26
- title2: A rose is a rose is a rose, eh? # comment here
27
- ; another one here
28
- title3 = A rose is a rose is a rose, eh?
29
- EOS
30
-
31
- hash = INI.load( text )
32
- pp hash
33
-
34
- assert_equal 'hello', hash['key1']
35
- assert_equal 'hi!', hash['key2']
36
- assert_equal 'salut', hash['section1']['key3']
37
- assert_equal 'hola', hash['section2']['key4']
38
- assert_equal '', hash['section2']['blank']
39
- assert_equal '', hash['section2']['blank2']
40
- assert_equal 'A rose is a rose is a rose, eh?', hash['http://example.com']['title']
41
- assert_equal 'A rose is a rose is a rose, eh?', hash['http://example.com']['title2']
42
- assert_equal 'A rose is a rose is a rose, eh?', hash['http://example.com']['title3']
43
- end
44
-
45
- end