spearwolf-microdata_fu 0.1.3 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -31,8 +31,12 @@ Then insert into your html layout the microdata_fu tag (<em>e.g.</em> <tt>app/vi
31
31
  microdata :bar, { :abc => 'ABC', :xyz => 123 }
32
32
  microdata :user, User.find(params[:id])
33
33
  end
34
- end
34
+ end
35
35
 
36
+ === Set microdata storage type
37
+
38
+ microdata :foo, 'foo', :flash => true # flash storage is default
39
+ microdata :bar, 'plah!', :session => true # use session storage
36
40
 
37
41
  === Read-out microdata from javascript
38
42
 
@@ -44,7 +48,7 @@ or use the optional callback function:
44
48
 
45
49
  mircodata_fu.read('bar', function(bar) {
46
50
  /* ...do whatever you want with bar here...
47
- if bar is undefined the code won't be executed */
51
+ if bar is undefined this callback won't be executed */
48
52
  });
49
53
 
50
54
 
@@ -1,7 +1,30 @@
1
1
  # MicrodataFu
2
2
  module MicrodataFu
3
3
 
4
- def microdata key, value
5
- (flash[:microdata] ||= {})[key.to_s] = value.respond_to?(:to_json) ? value.to_json : value.to_s.to_json
4
+ def microdata key, value, options = {}
5
+ value = value.respond_to?(:to_json) ? value.to_json : value.to_s.to_json
6
+ #if use_flash?(options)
7
+ #(flash[:microdata] ||= {})[key.to_s] = value
8
+ #elsif use_session?(options)
9
+ if use_session?(options)
10
+ (session[:microdata] ||= {})[key.to_s] = value
11
+ else
12
+ (flash[:microdata] ||= {})[key.to_s] = value
13
+ end
14
+ # TODO put value into custom store
6
15
  end
16
+
17
+ private
18
+
19
+ def use_flash? options
20
+ options[:flash] == true
21
+ end
22
+
23
+ def use_session? options
24
+ options[:session] == true
25
+ end
26
+
27
+ #def store
28
+ # TODO define custom store
29
+ #end
7
30
  end
@@ -1,7 +1,17 @@
1
1
  module MicrodataFuHelper
2
2
 
3
3
  def microdata_fu
4
- md = flash[:microdata].map {|k,v| "'#{escape_javascript(k)}':#{v}" }.join(",")
5
- javascript_tag "var microdata_fu = /* created by spearwolf <wolfger@spearwolf.de> */(function(){var _md_fu={#{md}};var md={get:function(k){return _md_fu[k];}};return{read:function(k,fn){var v=md.get(k);if(fn!=undefined&&v!=undefined){v=fn(v);}return v;}}})();"
4
+ md = microdata_values.map {|k,v| "'#{escape_javascript(k)}':#{v}" }.join(",")
5
+ javascript_tag "var microdata_fu = /* http://github.com/spearwolf/microdata_fu/tree/master */(function(){var _md_fu={#{md}};var md={get:function(k){return _md_fu[k];}};return{read:function(k,fn){var v=md.get(k);if(fn!=undefined&&v!=undefined){v=fn(v);}return v;}}})();"
6
6
  end
7
+
8
+ private
9
+
10
+ def microdata_values
11
+ returning({}) do |h|
12
+ h.merge!(session[:microdata]) unless session[:microdata].nil?
13
+ h.merge!(flash[:microdata]) unless flash[:microdata].nil?
14
+ # TODO merge values from custom store
15
+ end
16
+ end
7
17
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spearwolf-microdata_fu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wolfger Schramm
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-19 00:00:00 -08:00
12
+ date: 2009-04-12 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -31,7 +31,6 @@ has_rdoc: true
31
31
  homepage: http://github.com/spearwolf/microdata_fu
32
32
  post_install_message:
33
33
  rdoc_options:
34
- - --inline-source
35
34
  - --charset=UTF-8
36
35
  require_paths:
37
36
  - lib