props
- Manage Settings Hierachies (Commandline, User, Home, Defaults, etc.)¶ ↑
-
home :: github.com/rubylibs/props
-
bugs :: github.com/rubylibs/props/issues
-
gem :: rubygems.org/gems/props
-
rdoc :: rubydoc.info/gems/props
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' ) # check for user settings (markdown.yml) in home folder 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 # check for user settings (markdown.yml) in working folder 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 # class Config
Environment¶ ↑
Example:
puts Env.home # => '/home/gerald'
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 # => ['/usr/local/sbin', # '/usr/local/bin', # '/usr/sbin', # ... # ]
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.
Questions? Comments?¶ ↑
Post them to the wwwmake forum. Thanks!