ice 0.3.0 → 0.4.0

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.
@@ -0,0 +1,76 @@
1
+ module Ice
2
+ module EcoTemplate
3
+ class Context < Hash
4
+
5
+ def initialize(hash)
6
+ add_routes
7
+ add_links
8
+ add_nav_bar
9
+ hash.each_pair do |key, value|
10
+ self[key] = value.to_ice
11
+ end
12
+ end
13
+
14
+ private
15
+
16
+ def add_routes
17
+ Ice::BaseCube.subclasses.map(&:name).each do |cube_model_name|
18
+ model_name = cube_model_name.sub(/Cube/, "")
19
+ name = model_name[0].downcase + model_name[1..-1]
20
+
21
+ self["edit" + model_name + "Path"]= lambda do |object|
22
+ "/#{name.tableize}/#{object.id}/edit"
23
+ end
24
+
25
+ self["new" + model_name + "Path"]= lambda do
26
+ "/#{name.tableize}/new"
27
+ end
28
+
29
+ self[name + "Path"]= lambda do |object|
30
+ "/#{name.tableize}/#{object.id}"
31
+ end
32
+
33
+ self[name.pluralize + "Path"]= lambda do
34
+ "/#{name.tableize}"
35
+ end
36
+
37
+ end
38
+ end
39
+
40
+ def add_links
41
+ self["linkTo"] = lambda do |label, link|
42
+ if (!link)
43
+ link = label
44
+ end
45
+ %{<a href="#{link}">#{label}</a>}
46
+ end
47
+ end
48
+
49
+ def try_config(opts, var, config_class)
50
+ opts.first.try(var) ||
51
+ config_class.try(:[], var)
52
+ end
53
+
54
+ def try_nav_config(opts, sym)
55
+ try_config opts, sym, NavBarConfig
56
+ end
57
+
58
+ def add_nav_bar
59
+
60
+
61
+ self["navBar"] = lambda do |*opts, yield_func|
62
+ nav_prefix = try_nav_config(opts, :nav_prefix) || '<ul class="linkBar">'
63
+ nav_postfix = try_nav_config(opts, :nav_postfix) || '</ul>'
64
+ link_prefix = try_nav_config(opts, :link_prefix) || '<li>'
65
+ link_postfix = try_nav_config(opts, :link_postfix) || '</li>'
66
+ ctx = {}
67
+ ctx['linkTo'] = lambda do |label, link = nil|
68
+ "#{link_prefix}#{self["linkTo"].call label, link}#{link_postfix}"
69
+ end
70
+ body = yield_func.call(ctx)
71
+ %{#{nav_prefix}#{body}#{nav_postfix}}
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,30 @@
1
+ require "ice/eco_template/base"
2
+
3
+ module Ice
4
+ module EcoTemplate
5
+ class Handler < ActionView::Template::Handler
6
+
7
+ include ActionView::Template::Handlers::Compilable
8
+
9
+ self.default_format = :eco
10
+
11
+ def compile(template)
12
+ <<-ECO
13
+ template_source = <<-ECO_TEMPLATE
14
+ #{template.source}
15
+ ECO_TEMPLATE
16
+ variables = {}
17
+ variable_names = controller.instance_variable_names
18
+ variable_names -= %w[@template]
19
+ if controller.respond_to?(:protected_instance_variables)
20
+ variable_names -= controller.protected_instance_variables
21
+ end
22
+ variable_names.each do |name|
23
+ variables[name.sub(/^@/, "")] = controller.instance_variable_get(name)
24
+ end
25
+ Ice::EcoTemplate.convert_template(template_source, variables.merge(local_assigns))
26
+ ECO
27
+ end
28
+ end
29
+ end
30
+ end
data/lib/ice/railtie.rb CHANGED
@@ -1,17 +1,13 @@
1
+ require 'active_model/serialization'
2
+ require 'action_view'
3
+
1
4
  module Ice
2
5
  class Railtie < Rails::Railtie
3
6
  initializer "ice.configure_rails_initialization" do
4
-
7
+
5
8
  end
6
9
  end
7
- end
8
10
 
9
- ActiveRecord::Base.send(:include, Ice::Cubeable)
10
-
11
- require 'extras/ice_view'
11
+ end
12
12
 
13
- if defined? ActionView::Template and ActionView::Template.respond_to? :register_template_handler
14
- ActionView::Template
15
- else
16
- ActionView::Base
17
- end.register_template_handler(:ice, IceView)
13
+ ActiveModel::Serialization.send(:include, Ice::Cubeable)
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ice
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 3
8
- - 0
9
- version: 0.3.0
4
+ prerelease:
5
+ version: 0.4.0
10
6
  platform: ruby
11
7
  authors:
12
8
  - Nate Kidwell
@@ -14,23 +10,19 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2010-10-04 00:00:00 -05:00
13
+ date: 2010-10-04 00:00:00 -04:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
21
- name: rspec
17
+ name: eco
22
18
  prerelease: false
23
19
  requirement: &id001 !ruby/object:Gem::Requirement
24
20
  none: false
25
21
  requirements:
26
22
  - - ">="
27
23
  - !ruby/object:Gem::Version
28
- segments:
29
- - 1
30
- - 2
31
- - 9
32
- version: 1.2.9
33
- type: :development
24
+ version: 1.0.0
25
+ type: :runtime
34
26
  version_requirements: *id001
35
27
  - !ruby/object:Gem::Dependency
36
28
  name: therubyracer
@@ -38,75 +30,33 @@ dependencies:
38
30
  requirement: &id002 !ruby/object:Gem::Requirement
39
31
  none: false
40
32
  requirements:
41
- - - "="
33
+ - - ">="
42
34
  - !ruby/object:Gem::Version
43
- segments:
44
- - 0
45
- - 7
46
- - 5
47
- version: 0.7.5
35
+ version: 0.8.2
48
36
  type: :runtime
49
37
  version_requirements: *id002
50
- - !ruby/object:Gem::Dependency
51
- name: rails
52
- prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
56
- - - "="
57
- - !ruby/object:Gem::Version
58
- segments:
59
- - 3
60
- - 0
61
- - 0
62
- version: 3.0.0
63
- type: :runtime
64
- version_requirements: *id003
65
38
  description: User templates written in javascript
66
39
  email: nate@ludicast.com
67
40
  executables: []
68
41
 
69
42
  extensions: []
70
43
 
71
- extra_rdoc_files:
72
- - LICENSE
73
- - README.markdown
44
+ extra_rdoc_files: []
45
+
74
46
  files:
75
- - .gitignore
76
- - .specification
77
- - LICENSE
78
- - README.markdown
79
- - Rakefile
80
- - VERSION
81
- - ice.gemspec
82
- - ice_js/History.md
83
- - ice_js/Readme.md
84
- - ice_js/lib/form_tag_inputs.js
85
- - ice_js/lib/path_helper.js
86
- - ice_js/spec/commands/example_command.rb
87
- - ice_js/spec/dom.html
88
- - ice_js/spec/node.js
89
- - ice_js/spec/rhino.js
90
- - ice_js/spec/server.html
91
- - ice_js/spec/server.rb
92
- - ice_js/spec/support/js.jar
93
- - ice_js/spec/unit/spec.helper.js
94
- - ice_js/spec/unit/spec.js
95
- - init.rb
96
- - lib/extras/ice_view.rb
97
- - lib/ice.rb
98
- - lib/ice/base.rb
99
47
  - lib/ice/base_cube.rb
100
48
  - lib/ice/cube_association.rb
49
+ - lib/ice/cube_helpers.rb
101
50
  - lib/ice/cubeable.rb
51
+ - lib/ice/eco_template/base.rb
52
+ - lib/ice/eco_template/context.rb
53
+ - lib/ice/eco_template/handler.rb
102
54
  - lib/ice/railtie.rb
103
- - lib/parser.js
104
- - spec/base_cube_spec.rb
105
- - spec/cube_spec.rb
106
- - spec/ice_spec.rb
107
- - spec/spec.opts
108
- - spec/spec_helper.rb
109
- - togo
55
+ - lib/ice.rb
56
+ - MIT-LICENSE
57
+ - Rakefile
58
+ - Gemfile
59
+ - README.markdown
110
60
  has_rdoc: true
111
61
  homepage: http://github.com/ludicast/ice
112
62
  licenses: []
@@ -121,26 +71,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
121
71
  requirements:
122
72
  - - ">="
123
73
  - !ruby/object:Gem::Version
124
- segments:
125
- - 0
126
74
  version: "0"
127
75
  required_rubygems_version: !ruby/object:Gem::Requirement
128
76
  none: false
129
77
  requirements:
130
78
  - - ">="
131
79
  - !ruby/object:Gem::Version
132
- segments:
133
- - 0
134
80
  version: "0"
135
81
  requirements: []
136
82
 
137
83
  rubyforge_project:
138
- rubygems_version: 1.3.7
84
+ rubygems_version: 1.5.0
139
85
  signing_key:
140
86
  specification_version: 3
141
87
  summary: User templates written in javascript
142
- test_files:
143
- - spec/base_cube_spec.rb
144
- - spec/cube_spec.rb
145
- - spec/ice_spec.rb
146
- - spec/spec_helper.rb
88
+ test_files: []
89
+
data/.gitignore DELETED
@@ -1,23 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- .idea
22
-
23
- ## PROJECT::SPECIFIC
data/.specification DELETED
@@ -1,135 +0,0 @@
1
- --- !ruby/object:Gem::Specification
2
- name: ice
3
- version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 1
8
- - 3
9
- version: 0.1.3
10
- platform: ruby
11
- authors:
12
- - Nate Kidwell
13
- autorequire:
14
- bindir: bin
15
- cert_chain: []
16
-
17
- date: 2010-05-31 00:00:00 -04:00
18
- default_executable:
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 1
29
- - 2
30
- - 9
31
- version: 1.2.9
32
- type: :development
33
- version_requirements: *id001
34
- - !ruby/object:Gem::Dependency
35
- name: therubyracer
36
- prerelease: false
37
- requirement: &id002 !ruby/object:Gem::Requirement
38
- requirements:
39
- - - "="
40
- - !ruby/object:Gem::Version
41
- segments:
42
- - 0
43
- - 7
44
- - 0
45
- version: 0.7.0
46
- type: :runtime
47
- version_requirements: *id002
48
- - !ruby/object:Gem::Dependency
49
- name: activesupport
50
- prerelease: false
51
- requirement: &id003 !ruby/object:Gem::Requirement
52
- requirements:
53
- - - ">="
54
- - !ruby/object:Gem::Version
55
- segments:
56
- - 2
57
- - 2
58
- - 0
59
- version: 2.2.0
60
- type: :runtime
61
- version_requirements: *id003
62
- description: User templates written in javascript
63
- email: nate@ludicast.com
64
- executables: []
65
-
66
- extensions: []
67
-
68
- extra_rdoc_files:
69
- - LICENSE
70
- - README.markdown
71
- files:
72
- - .gitignore
73
- - LICENSE
74
- - README.markdown
75
- - Rakefile
76
- - VERSION
77
- - ice.gemspec
78
- - ice_js/History.md
79
- - ice_js/Readme.md
80
- - ice_js/lib/path_helper.js
81
- - ice_js/spec/commands/example_command.rb
82
- - ice_js/spec/dom.html
83
- - ice_js/spec/node.js
84
- - ice_js/spec/rhino.js
85
- - ice_js/spec/server.html
86
- - ice_js/spec/server.rb
87
- - ice_js/spec/unit/spec.helper.js
88
- - ice_js/spec/unit/spec.js
89
- - init.rb
90
- - lib/ice.rb
91
- - lib/ice/base_cube.rb
92
- - lib/ice/cube_association.rb
93
- - lib/ice/cubeable.rb
94
- - lib/parser.js
95
- - spec/base_cube_spec.rb
96
- - spec/cube_spec.rb
97
- - spec/ice_spec.rb
98
- - spec/spec.opts
99
- - spec/spec_helper.rb
100
- has_rdoc: true
101
- homepage: http://github.com/ludicast/ice
102
- licenses: []
103
-
104
- post_install_message:
105
- rdoc_options:
106
- - --charset=UTF-8
107
- require_paths:
108
- - lib
109
- required_ruby_version: !ruby/object:Gem::Requirement
110
- requirements:
111
- - - ">="
112
- - !ruby/object:Gem::Version
113
- segments:
114
- - 0
115
- version: "0"
116
- required_rubygems_version: !ruby/object:Gem::Requirement
117
- requirements:
118
- - - ">="
119
- - !ruby/object:Gem::Version
120
- segments:
121
- - 0
122
- version: "0"
123
- requirements: []
124
-
125
- rubyforge_project:
126
- rubygems_version: 1.3.6
127
- signing_key:
128
- specification_version: 3
129
- summary: User templates written in javascript
130
- test_files:
131
- - spec/base_cube_spec.rb
132
- - spec/cube_spec.rb
133
- - spec/ice_spec.rb
134
- - spec/spec_helper.rb
135
-