props 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -8,9 +8,11 @@
8
8
 
9
9
  ## Usage
10
10
 
11
+ ### Props
12
+
11
13
  Example:
12
14
 
13
- ```
15
+ ~~~
14
16
  class Config
15
17
 
16
18
  DEFAULTS = { 'libs' => [ 'kramdown' ],
@@ -59,7 +61,99 @@ class Config
59
61
  ...
60
62
 
61
63
  end # class Config
62
- ```
64
+ ~~~
65
+
66
+
67
+ ### Environment
68
+
69
+ Example:
70
+
71
+ ~~~
72
+ >> Env.home
73
+ # => '/home/gerald'
74
+ ~~~
75
+
76
+ Backstage the `Env.home` code looks something like:
77
+
78
+ ~~~
79
+ path = if( ENV['HOME'] || ENV['USERPROFILE'] )
80
+ ENV['HOME'] || ENV['USERPROFILE']
81
+ elsif( ENV['HOMEDRIVE'] && ENV['HOMEPATH'] )
82
+ "#{ENV['HOMEDRIVE']}#{ENV['HOMEPATH']}"
83
+ else
84
+ begin
85
+ File.expand_path('~')
86
+ rescue
87
+ if File::ALT_SEPARATOR
88
+ 'C:/'
89
+ else
90
+ '/'
91
+ end
92
+ end
93
+ end
94
+ ~~~
95
+
96
+
97
+ `Env.path` returns `ENV[ 'PATH' ]` - splits all path entries
98
+ w/ file separator (e.g. `;` or `:`) and returns string array
99
+
100
+ ~~~
101
+ >> Env.path
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
+ ~~~
130
+
131
+
132
+
133
+ ### DB - Config Database / Schema / Model
134
+
135
+
136
+ Example:
137
+
138
+ ~~~
139
+ require 'props/db' # include database support
140
+
141
+ ConfDb.create # build schema / tables (props)
142
+
143
+ Prop.create!( key: 'db.schema.version', '1.0.0' )
144
+
145
+ puts "Props:"
146
+ Prop.order( 'created_at asc' ).all.each do |prop|
147
+ puts " #{prop.key} / #{prop.value} | #{prop.created_at}"
148
+ end
149
+ ~~~
150
+
151
+ More examples:
152
+
153
+ ~~~
154
+ ConfDb.tables # dump stats to console
155
+ ConfDb.delete! # delete all records
156
+ ~~~
63
157
 
64
158
 
65
159
  ## Install
@@ -76,10 +170,14 @@ The [`slideshow`](http://slideshow-s9.github.io) gem (also known as Slide Show (
76
170
  that lets you create slide shows
77
171
  and author slides in plain text using a wiki-style markup language that's easy-to-write and easy-to-read.
78
172
 
173
+ The [`pluto`](http://feedreader.github.io) gem
174
+ that lets you auto-build web pages from web feeds.
175
+
79
176
  The [`markdown`](https://github.com/rubylibs/markdown) gem that lets you use your markdown library
80
177
  of choice.
81
178
 
82
179
 
180
+
83
181
  ## Alternatives
84
182
 
85
183
  ### Config / Settings
@@ -5,7 +5,37 @@ module ConfDb
5
5
 
6
6
 
7
7
  class Prop < ActiveRecord::Base
8
- ## some code here
8
+
9
+ ### todo/fix: move create_from_fixture! method to textutils ??? - why? why not?
10
+ ## yes - move to textutils! - fixture concept/notion is part of textutils
11
+
12
+ def self.create_from_fixture!( name, path )
13
+ key = "db.#{fixture_name_to_prop_key(name)}.version"
14
+
15
+ value = "txt.#{File.mtime(path).strftime('%Y.%m.%d')}"
16
+
17
+ Prop.create!( key: key, value: value )
18
+ end
19
+
20
+ ### todo:
21
+ ## add latest scope -> order props by creation date desc!!!!
22
+
23
+ ## add dump -> dump latest props to console via puts
24
+ ## check - dump already taken by activerecord??
25
+
26
+ private
27
+
28
+ # helper
29
+ # change at/2012_13/bl to at.2012/13.bl
30
+ # or quali_2012_13_europe_c to quali.2012/13.europe.c
31
+
32
+ def self.fixture_name_to_prop_key( name )
33
+ prop_key = name.gsub( '/', '.' )
34
+ prop_key = prop_key.gsub( /(\d{4})_(\d{2})/, '\1/\2' ) # 2012_13 => 2012/13
35
+ prop_key = prop_key.gsub( '_', '.' )
36
+ prop_key
37
+ end
38
+
9
39
  end # class Prop
10
40
 
11
41
  end # module Model
@@ -1,4 +1,4 @@
1
1
 
2
2
  module ConfUtils
3
- VERSION = '1.1.0'
3
+ VERSION = '1.1.1'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: props
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-08 00:00:00.000000000 Z
12
+ date: 2014-03-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
16
- requirement: &71776850 !ruby/object:Gem::Requirement
16
+ requirement: &69774410 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.10'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *71776850
24
+ version_requirements: *69774410
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: hoe
27
- requirement: &71916910 !ruby/object:Gem::Requirement
27
+ requirement: &69774110 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,7 +32,7 @@ dependencies:
32
32
  version: '3.3'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *71916910
35
+ version_requirements: *69774110
36
36
  description: props - Manage Settings Hierachies (Commandline, User, Home, Defaults,
37
37
  etc.)
38
38
  email: webslideshow@googlegroups.com