sadie 0.0.12 → 0.0.13

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/Rakefile CHANGED
@@ -1,15 +1,17 @@
1
1
  require "bundler/gem_tasks"
2
2
 
3
3
  require 'rake'
4
- require 'rake/rdoctask'
4
+ require 'rdoc/task'
5
5
 
6
6
  task :default => [:test]
7
7
 
8
+ # run sadie tests
8
9
  task :test do
9
10
  ruby "test/tc_sadie_toplevel.rb"
10
11
  ruby "test/tc_sadie_twodeep.rb"
11
12
  end
12
13
 
14
+ # increment version
13
15
  task :deploy => 'inc_version' do
14
16
  version = current_sadie_version
15
17
  sh "git push"
@@ -17,6 +19,7 @@ task :deploy => 'inc_version' do
17
19
  sh "gem push sadie-#{version}.gem"
18
20
  end
19
21
 
22
+ # increment version
20
23
  task :inc_version do
21
24
  version = current_sadie_version
22
25
  if (matches = version.match(/^(\d+\.\d+\.)(\d+)$/))
data/TODO CHANGED
@@ -18,4 +18,14 @@
18
18
  in the key itself, enough that the primer could use it and divine the
19
19
  desired result. So, where Sadie::prime takes an arg of containing
20
20
  a list of keys that this primer "provides", it will alternatively take an
21
- arg of "key-match" which will fire off the primer when the key matches.
21
+ arg of "key-match" which will fire off the primer when the key matches.
22
+
23
+ [sampleapps] make a few simple apps with primer directories
24
+
25
+ [primer_path] currently defined via a path to a single directory, the toplevel primer
26
+ directory idea should be made into a collection of directories as spec'ed
27
+ in a colon-separated list, and it should check the environment, if
28
+ otherwise undefined. would make it easy to have multiple primer
29
+ repositories.
30
+
31
+
@@ -5,6 +5,7 @@
5
5
  class Sadie
6
6
  DEFAULTS = {
7
7
  "sadie.primers_dirpath" => File.expand_path("primers","/var/sadie"),
8
- "sadie.sessions_dirpath" => File.expand_path("sessions","/var/sadie")
8
+ "sadie.sessions_dirpath" => File.expand_path("sessions","/var/sadie"),
9
+ "sadie.primer_plugins_dirpath" => "lib/sadie/primer_plugins"
9
10
  }
10
11
  end
data/lib/sadie/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  class Sadie
2
- VERSION = "0.0.12"
2
+ VERSION = "0.0.13"
3
3
  end
data/lib/sadie.rb CHANGED
@@ -69,7 +69,7 @@ class Sadie
69
69
 
70
70
  # ==method: Sadie::iniFileToHash
71
71
  #
72
- # utility class method. accepts a filepath. digests inin file and returns hash of hashes.
72
+ # utility class method. accepts a filepath. digests ini file and returns hash of hashes.
73
73
  #
74
74
  def self.iniFileToHash ( filepath )
75
75
  section = nil
@@ -130,7 +130,11 @@ class Sadie
130
130
 
131
131
  # internalize defaults to shortterm
132
132
  DEFAULTS.each do |key, value|
133
- _set( key, value )
133
+ if key.eql? "sadie.primer_plugins_dirpath"
134
+ addPrimerPluginsDirPath value
135
+ else
136
+ _set( key, value )
137
+ end
134
138
  end
135
139
 
136
140
  # internalize supplied defaults, postponing a set of sadie.primers_dirpath
@@ -165,7 +169,24 @@ class Sadie
165
169
 
166
170
  end
167
171
 
168
- def prime ( primer_definition, &block )
172
+ def addPrimerPluginsDirPath( path )
173
+
174
+ exppath = File.expand_path(path)
175
+
176
+ # add the path to the system load path
177
+ $LOAD_PATH.include?(exppath) \
178
+ or $LOAD_PATH.unshift(exppath)
179
+
180
+ # add the path to the pluginsdir array
181
+ defined? @plugins_dir_paths \
182
+ or @plugins_dir_paths = Array.new
183
+ @plugins_dir_paths.include?(exppath) \
184
+ or @plugins_dir_paths.unshift(exppath)
185
+ end
186
+
187
+
188
+
189
+ def prime( primer_definition, &block )
169
190
  # validate params
170
191
  defined? primer_definition \
171
192
  or raise "Prime called without parameters"
@@ -256,6 +277,13 @@ class Sadie
256
277
 
257
278
  end
258
279
 
280
+ # ==method: output
281
+ #
282
+ # an alias for get. intended for use with primers that produce an output beyond their return value
283
+ def output( k )
284
+ return get( k )
285
+ end
286
+
259
287
  # ==method: isset?
260
288
  #
261
289
  # returns true if sadie has a value for the key
@@ -479,16 +507,18 @@ class Sadie
479
507
  puts "Initializing primer plugins..."
480
508
 
481
509
  # load the plugins
482
- Dir.foreach( plugins_dirpath ) do |filename|
483
- next if ! filename.match( /\.plugin\.rb$/ )
484
-
485
- filepath = File.expand_path( filename, plugins_dirpath )
486
-
487
- puts "initializing primer plugin with file: #{filename}"
488
-
489
- setMidPluginInit( filepath )
490
- load( filepath )
491
- unsetMidPluginInit
510
+ @plugins_dir_paths.each do | dirpath |
511
+ Dir.foreach( dirpath ) do |filename|
512
+ next if ! filename.match( /\.plugin\.rb$/ )
513
+
514
+ filepath = File.expand_path( filename, dirpath )
515
+
516
+ puts "initializing primer plugin with file: #{filename}"
517
+
518
+ setMidPluginInit( filepath )
519
+ load( filename )
520
+ unsetMidPluginInit
521
+ end
492
522
  end
493
523
  puts "...finished initializing primer plugins"
494
524
  @@primer_plugins_initialized = true
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.12
4
+ version: 0.0.13
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-01-26 00:00:00.000000000Z
12
+ date: 2012-04-16 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: dbi
16
- requirement: &9930400 !ruby/object:Gem::Requirement
16
+ requirement: &21570800 !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: *9930400
24
+ version_requirements: *21570800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mysql
27
- requirement: &9929980 !ruby/object:Gem::Requirement
27
+ requirement: &21570380 !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: *9929980
35
+ version_requirements: *21570380
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: dbd-mysql
38
- requirement: &9929560 !ruby/object:Gem::Requirement
38
+ requirement: &21569960 !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: *9929560
46
+ version_requirements: *21569960
47
47
  description: Sadie is a data framework intended to ease the pain of managing related
48
48
  data.
49
49
  email: