sadie 0.0.34 → 0.0.35
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.
- data/CHANGELOG +1 -1
- data/lib/sadie/defaults.rb +1 -7
- data/lib/sadie/primer_plugins/IniFile.plugin.rb +0 -43
- data/lib/sadie/version.rb +1 -1
- data/lib/sadie.rb +62 -51
- data/test/tc_sadie_toplevel.rb +1 -0
- data/test/tc_sadie_twodeep.rb +1 -0
- metadata +8 -8
data/CHANGELOG
CHANGED
data/lib/sadie/defaults.rb
CHANGED
@@ -6,15 +6,9 @@ require 'sadie/version'
|
|
6
6
|
class Sadie
|
7
7
|
|
8
8
|
#ppdp = File.join("lib/sadie/primer_plugins",File.join("gems/sadie-#{Sadie::VERSION}",ENV['GEM_HOME']))
|
9
|
-
ppdp = File.join(ENV['GEM_HOME'],"gems/sadie-#{Sadie::VERSION}","lib/sadie/primer_plugins")
|
10
|
-
puts "ppdf: #{ppdp}"
|
11
|
-
if ! File.exists? ppdp
|
12
|
-
ppdp = "lib/sadie/primer_plugins"
|
13
|
-
end
|
14
9
|
|
15
10
|
DEFAULTS = {
|
16
11
|
"sadie.primers_dirpath" => File.expand_path("primers","/var/sadie"),
|
17
|
-
"sadie.sessions_dirpath" => File.expand_path("sessions","/var/sadie")
|
18
|
-
"sadie.primer_plugins_dirpath" => ppdp
|
12
|
+
"sadie.sessions_dirpath" => File.expand_path("sessions","/var/sadie")
|
19
13
|
}
|
20
14
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'pp'
|
2
1
|
Sadie::registerPrimerPlugin( { "match" => /\.ini$/,
|
3
2
|
"accepts-block" => false,
|
4
3
|
"prime-on-init" => true } ) do |sadie, key_prefix, primer_file_filepath|
|
@@ -9,12 +8,8 @@ Sadie::registerPrimerPlugin( { "match" => /\.ini$/,
|
|
9
8
|
ini_file_root = ini_file_basename.gsub( /\.ini$/, "" )
|
10
9
|
|
11
10
|
if inihash = Sadie::iniFileToHash( primer_file_filepath )
|
12
|
-
# puts "got hash"
|
13
|
-
pp inihash
|
14
11
|
inihash.each do |section, section_hash|
|
15
|
-
# puts "got at least one section"
|
16
12
|
section_hash.each do |key, value|
|
17
|
-
# puts "got at least one key"
|
18
13
|
key_to_set = key_prefix + "." + ini_file_root + "." + section + "." + key
|
19
14
|
key_to_set = key_to_set.gsub(/^\./,"")
|
20
15
|
sadie.set( key_to_set, value )
|
@@ -23,42 +18,4 @@ Sadie::registerPrimerPlugin( { "match" => /\.ini$/,
|
|
23
18
|
end
|
24
19
|
end
|
25
20
|
|
26
|
-
# section = nil
|
27
|
-
# File.open( primer_file_filepath, "r" ).each do |f|
|
28
|
-
# f.each_line do |line|
|
29
|
-
# next if line.match(/^;/) # skip comments
|
30
|
-
# if matches = line.match(/\[([^\]]+)\]/)
|
31
|
-
# section = matches[1]
|
32
|
-
# elsif matches = line.match(/^\s*([^\s\=]+)\s*\=\s*([^\s]+)\s*$/)
|
33
|
-
# key = matches[1]
|
34
|
-
# value = matches[2]
|
35
|
-
# if qmatches = value.match(/[\'\"](.*)[\'\"]/)
|
36
|
-
# newvalue = qmatches[1]
|
37
|
-
# value = newvalue
|
38
|
-
# end
|
39
|
-
# if defined? section
|
40
|
-
# key_to_set = key_prefix + "." + ini_file_root + "." +section + "." + key
|
41
|
-
# sadie.set( key_to_set, value )
|
42
|
-
# end
|
43
|
-
# end
|
44
|
-
# end
|
45
|
-
# end
|
46
|
-
|
47
|
-
# require 'rubygems'
|
48
|
-
# require 'ini'
|
49
|
-
#
|
50
|
-
# ini_file_basename = File.basename primer_file_filepath
|
51
|
-
# ini_file_root = ini_file_basename.gsub( /\.ini$/, "" )
|
52
|
-
#
|
53
|
-
# inifile = Ini.new( primer_file_filepath )
|
54
|
-
# # puts "key_prefix: #{key_prefix}, primer_file_filepath: #{primer_file_filepath}"
|
55
|
-
# inifile.each do | section, key_from_ini_file, value |
|
56
|
-
#
|
57
|
-
# # compute key
|
58
|
-
# # key_prefix = sadie.getCurrentPrimerKeyPrefix
|
59
|
-
# key_to_set = key_prefix + "." + ini_file_root + "." +section + "." + key_from_ini_file
|
60
|
-
# key_to_set = key_to_set.gsub( /^\.+/, "" )
|
61
|
-
#
|
62
|
-
# sadie.set( key_to_set, value )
|
63
|
-
# end
|
64
21
|
end
|
data/lib/sadie/version.rb
CHANGED
data/lib/sadie.rb
CHANGED
@@ -12,10 +12,9 @@ require 'erb'
|
|
12
12
|
# sessions, lazy, on-demand, one-time evaluation and file-based storage/retrieval
|
13
13
|
# operations for resource-heavy data.
|
14
14
|
#
|
15
|
-
#
|
16
|
-
#
|
17
|
-
#
|
18
|
-
# multiple key, value pairs in a single run.
|
15
|
+
# New types of data primers can be added by calling addPrimerPluginsDirPath with a
|
16
|
+
# directory containing plugin definitions
|
17
|
+
#
|
19
18
|
|
20
19
|
def S( key )
|
21
20
|
instance = Sadie::getCurrentSadieInstance
|
@@ -133,31 +132,31 @@ class Sadie
|
|
133
132
|
|
134
133
|
# internalize defaults to shortterm
|
135
134
|
DEFAULTS.each do |key, value|
|
136
|
-
|
137
|
-
|
138
|
-
|
135
|
+
# if key.eql? "sadie.primer_plugins_dirpath"
|
136
|
+
# addPrimerPluginsDirPath value
|
137
|
+
# else
|
139
138
|
_set( key, value )
|
140
|
-
|
139
|
+
# end
|
141
140
|
end
|
142
141
|
|
143
142
|
# internalize supplied defaults, postponing a set of sadie.primers_dirpath
|
144
143
|
# until the end if one is supplied. The reason for this is that the setter
|
145
144
|
# attempts to read the plugins and if the primer plugin dirpath has not
|
146
145
|
# yet been set, then it'll choke if it processes the wrong one first
|
147
|
-
|
146
|
+
# delay_set_primers_dirpath = nil
|
148
147
|
|
149
148
|
# iterate over constructor args, but do primers_dirpath last since it
|
150
149
|
# causes a call to initializePrimers
|
151
150
|
options.each do |key, value|
|
152
|
-
|
153
|
-
|
154
|
-
|
151
|
+
# if key.eql? "sadie.primers_dirpath"
|
152
|
+
# delay_set_primers_dirpath = value
|
153
|
+
# else
|
155
154
|
set( key, value )
|
156
|
-
|
155
|
+
# end
|
157
156
|
end
|
158
157
|
|
159
|
-
|
160
|
-
|
158
|
+
# defined? delay_set_primers_dirpath \
|
159
|
+
# and set( "sadie.primers_dirpath", delay_set_primers_dirpath )
|
161
160
|
|
162
161
|
# if a path to a session is given, init using session file
|
163
162
|
if options.has_key?( "sadie.session_filepath" )
|
@@ -170,6 +169,16 @@ class Sadie
|
|
170
169
|
set( "sadie.session_id", _generateNewSessionId )
|
171
170
|
end
|
172
171
|
|
172
|
+
# add the default sadie plugins dir
|
173
|
+
plugins_dirpath = File.join(
|
174
|
+
ENV['GEM_HOME'],
|
175
|
+
"gems/sadie-#{Sadie::VERSION}",
|
176
|
+
"lib/sadie/primer_plugins"
|
177
|
+
)
|
178
|
+
if ! File.exists? plugins_dirpath # for dev
|
179
|
+
plugins_dirpath = "lib/sadie/primer_plugins"
|
180
|
+
end
|
181
|
+
addPrimerPluginsDirPath plugins_dirpath
|
173
182
|
|
174
183
|
end
|
175
184
|
|
@@ -186,6 +195,8 @@ class Sadie
|
|
186
195
|
or @plugins_dir_paths = Array.new
|
187
196
|
@plugins_dir_paths.include?(exppath) \
|
188
197
|
or @plugins_dir_paths.unshift(exppath)
|
198
|
+
|
199
|
+
@@primer_plugins_initialized = nil
|
189
200
|
end
|
190
201
|
|
191
202
|
|
@@ -343,17 +354,17 @@ class Sadie
|
|
343
354
|
|
344
355
|
# puts "setCheap( #{k}, #{v} )"
|
345
356
|
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
+
# if k.eql? "sadie.primer_plugins_dirpath"
|
358
|
+
# puts "adding primer plugins dirpath via setCheap"
|
359
|
+
# if v.respond_to? "each"
|
360
|
+
# v.each do |plugindir|
|
361
|
+
# addPrimerPluginsDirPath plugindir
|
362
|
+
# end
|
363
|
+
# else
|
364
|
+
# addPrimerPluginsDirPath v
|
365
|
+
# end
|
366
|
+
# v = @plugins_dir_paths
|
367
|
+
# end
|
357
368
|
|
358
369
|
|
359
370
|
|
@@ -362,9 +373,9 @@ class Sadie
|
|
362
373
|
_expensive( k, false )
|
363
374
|
|
364
375
|
# if we've reset the primers dirpath, init the primers
|
365
|
-
|
366
|
-
|
367
|
-
|
376
|
+
# if k.eql?( "sadie.primers_dirpath" )
|
377
|
+
# initializePrimers
|
378
|
+
# end
|
368
379
|
|
369
380
|
_primed( k, true )
|
370
381
|
|
@@ -433,6 +444,27 @@ class Sadie
|
|
433
444
|
_initializeWithSessionId( get( "sadie.session_id" ) )
|
434
445
|
end
|
435
446
|
|
447
|
+
def initializePrimers
|
448
|
+
|
449
|
+
Sadie::setCurrentSadieInstance( self )
|
450
|
+
|
451
|
+
# make sure primer plugins have been initialized
|
452
|
+
primerPluginsInitialized? \
|
453
|
+
or initializePrimerPlugins
|
454
|
+
|
455
|
+
|
456
|
+
primers_dirpath = get( "sadie.primers_dirpath" ) \
|
457
|
+
or raise "sadie.primers_dirpath not set"
|
458
|
+
|
459
|
+
return true if primersInitialized? primers_dirpath
|
460
|
+
|
461
|
+
puts "Initializing primers..."
|
462
|
+
initializePrimerDirectory( "", primers_dirpath )
|
463
|
+
puts "...finished initializing primers."
|
464
|
+
|
465
|
+
@@flag_primed[primers_dirpath] = true
|
466
|
+
end
|
467
|
+
|
436
468
|
|
437
469
|
|
438
470
|
private
|
@@ -520,7 +552,7 @@ class Sadie
|
|
520
552
|
def initializePrimerPlugins
|
521
553
|
|
522
554
|
defined? @plugins_dir_paths \
|
523
|
-
or raise '
|
555
|
+
or raise 'plugins_dir_paths not set'
|
524
556
|
|
525
557
|
puts "Initializing primer plugins..."
|
526
558
|
|
@@ -565,27 +597,6 @@ class Sadie
|
|
565
597
|
return @@flag_primed[toplevel_dirpath]
|
566
598
|
end
|
567
599
|
|
568
|
-
def initializePrimers
|
569
|
-
|
570
|
-
Sadie::setCurrentSadieInstance( self )
|
571
|
-
|
572
|
-
# make sure primer plugins have been initialized
|
573
|
-
primerPluginsInitialized? \
|
574
|
-
or initializePrimerPlugins
|
575
|
-
|
576
|
-
|
577
|
-
primers_dirpath = get( "sadie.primers_dirpath" ) \
|
578
|
-
or raise "sadie.primers_dirpath not set"
|
579
|
-
|
580
|
-
return true if primersInitialized? primers_dirpath
|
581
|
-
|
582
|
-
puts "Initializing primers..."
|
583
|
-
initializePrimerDirectory( "", primers_dirpath )
|
584
|
-
puts "...finished initializing primers."
|
585
|
-
|
586
|
-
@@flag_primed[primers_dirpath] = true
|
587
|
-
end
|
588
|
-
|
589
600
|
def initializePrimerDirectory( key_prefix, current_dirpath )
|
590
601
|
puts "initializing primer directory: #{current_dirpath}"
|
591
602
|
Dir.foreach( current_dirpath ) do |filename|
|
data/test/tc_sadie_toplevel.rb
CHANGED
@@ -14,6 +14,7 @@ class TestSadieToplevel < Test::Unit::TestCase
|
|
14
14
|
sadie = Sadie::getSadieInstance( { "sadie.primers_dirpath" => "test/test_primers",
|
15
15
|
"sadie.sessions_dirpath" => dir,
|
16
16
|
"sadie.primer_plugins_dirpath" => "lib/sadie/primer_plugins" } )
|
17
|
+
sadie.initializePrimers
|
17
18
|
|
18
19
|
# test top-level ini
|
19
20
|
assert_equal( sadie.get( "toplevel.somegroup.somekey" ), "someval" )
|
data/test/tc_sadie_twodeep.rb
CHANGED
@@ -10,6 +10,7 @@ class TestSadieTwoDeep < Test::Unit::TestCase
|
|
10
10
|
sadie = Sadie::getSadieInstance( { "sadie.primers_dirpath" => "test/test_primers",
|
11
11
|
"sadie.sessions_dirpath" => dir,
|
12
12
|
"sadie.primer_plugins_dirpath" => "lib/sadie/primer_plugins" } )
|
13
|
+
sadie.initializePrimers
|
13
14
|
|
14
15
|
# test two-deep ini
|
15
16
|
assert_equal( sadie.get( "two.deep.conf.section.thiskey" ), "thisval" )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sadie
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.35
|
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: 2012-04-
|
12
|
+
date: 2012-04-18 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: dbi
|
16
|
-
requirement: &
|
16
|
+
requirement: &20670980 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *20670980
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: mysql
|
27
|
-
requirement: &
|
27
|
+
requirement: &20670560 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *20670560
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: dbd-mysql
|
38
|
-
requirement: &
|
38
|
+
requirement: &20670140 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *20670140
|
47
47
|
description: Sadie is a data framework intended to ease the pain of managing related
|
48
48
|
data.
|
49
49
|
email:
|