sadie 0.0.3 → 0.0.4

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.
Files changed (3) hide show
  1. data/lib/sadie/version.rb +1 -1
  2. data/lib/sadie.rb +43 -7
  3. metadata +3 -3
data/lib/sadie/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # this file sets the version of the Sadie gem
3
3
 
4
4
  class Sadie
5
- VERSION = "0.0.3"
5
+ VERSION = "0.0.4"
6
6
  end
data/lib/sadie.rb CHANGED
@@ -6,7 +6,7 @@ Bundler.require(:default)
6
6
  #require 'ini'
7
7
 
8
8
 
9
- # ==Description
9
+ # ==Description: Sadie
10
10
  # Sadie is a data framework intended to ease the pain of constructing, accessing, and
11
11
  # managing the resources required by large stores of inter-related data. It supports
12
12
  # sessions, lazy on-demand, one-time evaluation and file-based storage/retrieval
@@ -19,15 +19,19 @@ Bundler.require(:default)
19
19
 
20
20
  class Sadie
21
21
 
22
- # init sadie instance:
22
+
23
+ # ==method: constructor
23
24
  # options can include any kay, value pairs but the following key values bear mention:
24
25
  # REQUIRED
26
+ #
25
27
  # sadie.sessions_dirpath
26
28
  # or
27
29
  # sadie.session_id
28
30
  # or
29
31
  # sadie.session_filepath <- this is probably a bad call, use with caution
30
32
  #
33
+ # and
34
+ #
31
35
  # sadie.primers_dirpath
32
36
  def initialize( options )
33
37
 
@@ -73,10 +77,21 @@ class Sadie
73
77
 
74
78
  end
75
79
 
80
+ # ==method: Sadie::getSadieInstance
81
+ #
82
+ # returns a new Sadie instance. Options match those of Sadie's constructor method
76
83
  def self.getSadieInstance( options )
77
84
  Sadie.new(options)
78
85
  end
79
86
 
87
+ # ==method: Sadie::Prime
88
+ #
89
+ # called my the .res files to register the keys the .res will prime for
90
+ #
91
+ # accepts as an argument a hash and a block. The hash must include the key:
92
+ # 'provides' and it must define an array
93
+ # of keys that the calling resource (.res) file will have provided after the block is
94
+ # evaluated
80
95
  def self.Prime ( primer_definition )
81
96
 
82
97
  # validate params
@@ -103,7 +118,11 @@ class Sadie
103
118
  end
104
119
  end
105
120
  end
106
-
121
+
122
+ # ==method: get
123
+ #
124
+ # a standard getter which primes the unprimed and recalls "expensive" facts from files
125
+ # completely behind-the-scenes as directed by the resource (.res) files
107
126
  def get( k )
108
127
 
109
128
  # prime if not yet primed
@@ -118,6 +137,10 @@ class Sadie
118
137
  return _recallExpensive( k )
119
138
  end
120
139
 
140
+ # ==method: setCheap
141
+ #
142
+ # the expensive setter. key, value pairs stored via this method are not kept in memory
143
+ # but are stored to file and recalled as needed
121
144
  def setExpensive(k,v)
122
145
  expensive_filepath = _computeExpensiveFilepath( k )
123
146
  serialized_value = Marshal::dump( v )
@@ -128,11 +151,15 @@ class Sadie
128
151
  _primed( k, true )
129
152
  end
130
153
 
154
+ # ==method: set
131
155
  # alias for setCheap(k,v)
132
156
  def set( k, v )
133
157
  setCheap( k, v )
134
158
  end
135
159
 
160
+ # ==method: setCheap
161
+ #
162
+ # the cheap setter. key, value pairs stored via this method are kept in memory
136
163
  def setCheap(k,v)
137
164
 
138
165
  # set it, mark not expensive and primed
@@ -149,6 +176,9 @@ class Sadie
149
176
 
150
177
  end
151
178
 
179
+ # ==method: save
180
+ #
181
+ # serialize to session file
152
182
  def save
153
183
  session_filepath = File.expand_path( "session."+value, get( "sadie.sessions_dirpath" ) )
154
184
  serialized_value = Marshal::dump( [ @shortterm, @flag_primed, @flag_expensive ] )
@@ -157,7 +187,10 @@ class Sadie
157
187
  }
158
188
  end
159
189
 
160
- # return to saved state
190
+ # ==method: revert!
191
+ #
192
+ # return to last saved state
193
+ #
161
194
  def revert!
162
195
 
163
196
  @shortterm = {
@@ -168,6 +201,12 @@ class Sadie
168
201
  _initializeWithSessionId( get( "sadie.session_id" ) )
169
202
  end
170
203
 
204
+ private
205
+
206
+
207
+ # ==method: primed?
208
+ #
209
+ #
171
210
  def primed?( k )
172
211
  @flag_primed[:"#{k}"] \
173
212
  and return true
@@ -180,9 +219,6 @@ class Sadie
180
219
  return false
181
220
  end
182
221
 
183
- private
184
-
185
-
186
222
 
187
223
  def _prime ( k )
188
224
  primer_dirpath = _get("sadie.primers_dirpath")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sadie
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Fred McDavid