sadie 0.0.34 → 0.0.35

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -10,4 +10,4 @@
10
10
  [0.0.15] actually committed changes to code this time...doh
11
11
  [0.0.16] bugfixes, updated tests
12
12
  [0.0.17] bugfixes, updated tests
13
-
13
+ [0.0.18] initializePrimers is no longer called by constructor...must now call manually before using get method
@@ -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
@@ -1,3 +1,3 @@
1
1
  class Sadie
2
- VERSION = "0.0.34"
2
+ VERSION = "0.0.35"
3
3
  end
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
- # For simplicity, it supports simple, ini-style data
16
- # initialization, but for efficient optimization of resource-intensive computations, it
17
- # supports on-demand, one-time evaluation of "primers" which may define, or prime,
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
- if key.eql? "sadie.primer_plugins_dirpath"
137
- addPrimerPluginsDirPath value
138
- else
135
+ # if key.eql? "sadie.primer_plugins_dirpath"
136
+ # addPrimerPluginsDirPath value
137
+ # else
139
138
  _set( key, value )
140
- end
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
- delay_set_primers_dirpath = nil
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
- if key.eql? "sadie.primers_dirpath"
153
- delay_set_primers_dirpath = value
154
- else
151
+ # if key.eql? "sadie.primers_dirpath"
152
+ # delay_set_primers_dirpath = value
153
+ # else
155
154
  set( key, value )
156
- end
155
+ # end
157
156
  end
158
157
 
159
- defined? delay_set_primers_dirpath \
160
- and set( "sadie.primers_dirpath", delay_set_primers_dirpath )
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
- if k.eql? "sadie.primer_plugins_dirpath"
347
- puts "adding primer plugins dirpath via setCheap"
348
- if v.respond_to? "each"
349
- v.each do |plugindir|
350
- addPrimerPluginsDirPath plugindir
351
- end
352
- else
353
- addPrimerPluginsDirPath v
354
- end
355
- v = @plugins_dir_paths
356
- end
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
- if k.eql?( "sadie.primers_dirpath" )
366
- initializePrimers
367
- end
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 'sadie.primer_plugins_dirpath not set'
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|
@@ -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" )
@@ -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.34
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-17 00:00:00.000000000Z
12
+ date: 2012-04-18 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dbi
16
- requirement: &19769680 !ruby/object:Gem::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: *19769680
24
+ version_requirements: *20670980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mysql
27
- requirement: &19769260 !ruby/object:Gem::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: *19769260
35
+ version_requirements: *20670560
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: dbd-mysql
38
- requirement: &19768840 !ruby/object:Gem::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: *19768840
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: