props
- Manage Settings Hierachies (Commandline, User, Home, Defaults, etc.)
Usage
Props
Example:
class Config
DEFAULTS = { 'libs' => [ 'kramdown' ],
'extnames' => [
'.markdown',
'.m',
'.mark',
'.mkdn',
'.md',
'.mdown',
'.markdn',
'.txt',
'.text' ],
'redcarpet' => {
'extensions' => [
'no_intra_emphasis',
'fenced_code_blocks',
'tables',
'strikethrough' ] }
}
def initialize
@props = @props_default = Props.new( DEFAULTS, 'DEFAULTS' )
props_home_file = File.join( Env.home, 'markdown.yml' )
if File.exists?( props_home_file )
puts "Loading settings from '#{props_home_file}'..."
@props = @props_home = Props.load_file( props_home_file, @props )
end
props_work_file = File.join( '.', 'markdown.yml' )
if File.exists?( props_work_file )
puts "Loading settings from '#{props_work_file}'..."
@props = @props_work = Props.load_file( props_work_file, @props )
end
end
def markdown_extnames
@props.fetch( 'extnames', nil )
end
...
end
Environment
Example:
puts Env.home
Backstage the Env.home
code looks something like:
path = if( ENV['HOME'] || ENV['USERPROFILE'] )
ENV['HOME'] || ENV['USERPROFILE']
elsif( ENV['HOMEDRIVE'] && ENV['HOMEPATH'] )
"#{ENV['HOMEDRIVE']}#{ENV['HOMEPATH']}"
else
begin
File.expand_path('~')
rescue
if File::ALT_SEPARATOR
'C:/'
else
'/'
end
end
end
Env.path
returns ENV[ 'PATH' ]
- splits all path entries
w/ file separator (e.g. ;
or :
) and returns string array
puts Env.path
Install
Just install the gem:
$ gem install props
Real World Usage
The slideshow
gem (also known as Slide Show (S9))
that lets you create slide shows
and author slides in plain text using a wiki-style markup language that's easy-to-write and easy-to-read.
The pluto
gem
that lets you auto-build web pages from web feeds.
The markdown
gem that lets you use your markdown library
of choice.
License
The props
scripts are dedicated to the public domain.
Use it as you please with no restrictions whatsoever.
Post them to the wwwmake forum. Thanks!