ice 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.markdown +6 -2
  2. data/lib/ice.rb +12 -3
  3. data/lib/ice/base_cube.rb +28 -18
  4. metadata +2 -2
@@ -26,7 +26,9 @@ Ice allows you to write your templates in one of two formats.
26
26
  <% end %>
27
27
  </table>
28
28
 
29
- Eco-formatted files may also exist in your views directory, provided they have a .eco extension. Also, the templates may be compiled on demand with the method:
29
+ Eco-formatted files may also exist in your views directory, provided they have a .eco extension. An example of how this works is in [this blog post](http://ludicast.com/articles/3-ice-templates).
30
+
31
+ Also, the templates may be compiled on demand with the method:
30
32
 
31
33
  Ice::Handlers::Eco.convert_template(template_text, variables)
32
34
 
@@ -41,7 +43,9 @@ The CoffeeKup equivalent to the above Eco template is:
41
43
  td -> user.name
42
44
  td -> mailTo(user.email)
43
45
 
44
- Similarly, these CoffeeKup files may exist on your filesystem provided they have a .coffeekup extension. And you'd compile them on demand with:
46
+ Similarly, these CoffeeKup files may exist on your filesystem provided they have a .coffeekup extension. A demo of this is in [this screencast](http://vimeo.com/25907220/).
47
+
48
+ And you'd compile them on demand with:
45
49
 
46
50
  Ice::Handlers::CoffeeKup.convert_template(template_text, variables)
47
51
 
data/lib/ice.rb CHANGED
@@ -10,9 +10,18 @@ require 'rails'
10
10
  require 'ice/handlers/eco/handler'
11
11
  require 'ice/handlers/coffeekup/handler'
12
12
 
13
- IceJavascriptHelpers = []
13
+ IceJavascriptHelpers = []
14
14
  IceCoffeescriptHelpers = []
15
15
 
16
-
17
16
  ActionView::Template.register_template_handler :coffeekup, Ice::Handlers::Coffeekup
18
- ActionView::Template.register_template_handler :eco, Ice::Handlers::Eco
17
+ ActionView::Template.register_template_handler :eco, Ice::Handlers::Eco
18
+
19
+ require "action_controller"
20
+ Mime::Type.register "text/ice", :ice
21
+
22
+ ActionController::Renderers.add :ice do |object, options|
23
+ puts "oootototOOOOOOOOOO"
24
+ puts "rendering with #{object}"
25
+ puts "rendering to #{object.to_ice.to_json}"
26
+ self.send_data object.to_ice.to_json, :type => :ice
27
+ end
@@ -1,12 +1,22 @@
1
1
  module Ice
2
2
  class BaseCube
3
3
  extend Ice::CubeAssociation
4
+ attr_reader :source
4
5
 
5
- def self.revealing(* attributes)
6
- unless @attribute_names
7
- @attribute_names = []
8
- end
9
- @attribute_names.concat(attributes)
6
+ def to_ice
7
+ self
8
+ end
9
+
10
+ def id
11
+ @source.id
12
+ end
13
+
14
+ def self.attribute_names
15
+ @@attribute_names ||= []
16
+ end
17
+
18
+ def self.revealing(* attributes)
19
+ attribute_names.concat(attributes)
10
20
 
11
21
  attributes.each do |attr|
12
22
  define_method attr.to_sym do
@@ -15,31 +25,31 @@ module Ice
15
25
  end
16
26
  end
17
27
 
18
- attr_reader :source
19
-
20
- def to_ice
21
- self
22
- end
23
28
 
24
29
  def to_hash
25
- if @attribute_names
26
- hash = {:id => @source.id}
27
- @attribute_names && @attribute_names.each do |name|
28
- hash[name] = @source.send(name)
30
+ if self.class.attribute_names.count > 0
31
+ hash = {}
32
+ ([:id, :created_at, :updated_at] +
33
+ self.class.attribute_names).each do |method|
34
+ if @source.respond_to? method
35
+ hash[method] = source.send(method)
36
+ end
29
37
  end
30
38
  hash
31
39
  else
32
- @hash = @source.serializable_hash
40
+ @hash ||= @source.serializable_hash.to_ice
33
41
  end
34
42
  end
35
43
 
36
- def id
37
- @source.id
44
+ def to_json
45
+ to_hash.to_json
38
46
  end
39
47
 
48
+
40
49
  def initialize(source)
41
50
  @source = source
42
- unless @attribute_names
51
+
52
+ unless self.class.attribute_names.count > 0
43
53
  to_hash.each_key do |key|
44
54
  unless self.respond_to? key.to_sym
45
55
  self.class.send :define_method, key.to_sym do
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: ice
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.5.0
5
+ version: 0.5.1
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nate Kidwell
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-07-02 00:00:00 -04:00
13
+ date: 2011-07-03 00:00:00 -04:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency