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 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: