coffee-views 0.1.6 → 0.1.7

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/Gemfile CHANGED
@@ -1,3 +1,4 @@
1
1
  source :rubygems
2
2
 
3
- gemspec
3
+ gem 'slim'
4
+ gemspec
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.require_path = 'lib'
18
18
 
19
- s.add_dependency "rails", ">= 3.1.0"
19
+ s.add_dependency "rails", ">= 3.2.0"
20
20
  s.add_dependency "coffee-rails"
21
21
  s.add_development_dependency "sqlite3"
22
22
  s.add_development_dependency "rspec-rails", "~> 2.6"
@@ -1,3 +1,11 @@
1
1
  require 'coffee_views/rails'
2
2
  require 'coffee_views/slim'
3
- require 'coffee_views/version'
3
+ require 'coffee_views/version'
4
+
5
+ module CoffeeViews
6
+ # http://jfire.io/blog/2012/04/30/how-to-securely-bootstrap-json-in-a-rails-view/
7
+ def self.j s
8
+ result = s.to_s.gsub('/', '\/')
9
+ s.html_safe? ? result.html_safe : result
10
+ end
11
+ end
@@ -5,18 +5,19 @@ require 'coffee-script'
5
5
  module CoffeeViews
6
6
  module Rails
7
7
  class TemplateHandler
8
+
8
9
  def self.erb_handler
9
10
  @@erb_handler ||= ActionView::Template.registered_template_handler(:erb)
10
11
  end
11
12
 
12
13
  def self.preprocess source
13
- return "" unless source
14
+ return "".html_safe unless source
14
15
 
15
16
  source.gsub! /<%==(.*?)%>/, '`<%==\1%>`'
16
- source.gsub! /<%=([^=].*?)%>/, '`<%==(\1).to_json%>`'
17
+ source.gsub! /<%=([^=].*?)%>/, '`<%==CoffeeViews.j((\1).to_json.html_safe)%>`'
17
18
  source.gsub! /<%([^=].*?)%>/, '`<%\1%>`'
18
19
  source.gsub! /#\{==(.*?)\}/, '#{`<%==\1%>`}'
19
- source.gsub! /#\{=([^=].*?)\}/, '#{`<%==(\1).to_json%>`}'
20
+ source.gsub! /#\{=([^=].*?)\}/, '#{`<%==CoffeeViews.j((\1).to_json.html_safe)%>`}'
20
21
  source
21
22
  end
22
23
 
@@ -36,6 +37,7 @@ module CoffeeViews
36
37
  end
37
38
 
38
39
  ActiveSupport.on_load(:action_view) do
39
- ActionView::Template.register_template_handler :coffee, CoffeeViews::Rails::TemplateHandler
40
+ ActionView::Template.register_template_handler :coffee, CoffeeViews::Rails::TemplateHandler
40
41
  end
41
- end
42
+ end
43
+
@@ -1,3 +1,3 @@
1
1
  module CoffeeViews
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'slim'
2
2
 
3
3
  class EventsController < ApplicationController
4
- def index
5
-
4
+ respond_to :html, :js
5
+ def index
6
6
  end
7
7
  end
@@ -4,6 +4,7 @@ require 'rails/all'
4
4
 
5
5
  Bundler.require
6
6
  require 'slim'
7
+ require 'coffee_views'
7
8
 
8
9
  module Dummy
9
10
  class Application < Rails::Application
@@ -21,7 +21,7 @@ describe CoffeeViews::Rails::TemplateHandler do
21
21
 
22
22
  describe "<%= code %>" do
23
23
  it "should wrap with `` and call #to_json on code" do
24
- preprocess("<%=x%>").should == "`<%==(x).to_json%>`"
24
+ preprocess("<%=x%>").should == "`<%==CoffeeViews.j((x).to_json.html_safe)%>`"
25
25
  end
26
26
  end
27
27
 
@@ -39,7 +39,7 @@ describe CoffeeViews::Rails::TemplateHandler do
39
39
 
40
40
  describe '#{= code}' do
41
41
  it "should wrap with `<%== %>` and call #to_json on code" do
42
- preprocess('alert "#{=code}"').should == 'alert "#{`<%==(code).to_json%>`}"'
42
+ preprocess('alert "#{=code}"').should == 'alert "#{`<%==CoffeeViews.j((code).to_json.html_safe)%>`}"'
43
43
  end
44
44
  end
45
45
 
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "events/index.js" do
3
+ describe "events/index.js.coffee" do
4
4
  it "interpolates strings" do
5
5
  assign :first_name, "Yury"
6
6
  assign :last_name, "'Korolev'"
@@ -17,7 +17,7 @@ JAVASCRIPT
17
17
  end
18
18
  end
19
19
 
20
- describe "events/index.html" do
20
+ describe "events/index.html.slim" do
21
21
  it "adds embeded engine for slim" do
22
22
  assign :first_name, "Yury"
23
23
  assign :last_name, "'Korolev'"
@@ -37,7 +37,7 @@ JAVASCRIPT
37
37
  end
38
38
  end
39
39
 
40
- describe "events/show.js" do
40
+ describe "events/show.js.coffee" do
41
41
  it "converts to json" do
42
42
  assign :event, {name: "Birth day", date: Date.new(1983, 02, 15)}
43
43
 
metadata CHANGED
@@ -1,144 +1,144 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coffee-views
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
5
4
  prerelease:
5
+ version: 0.1.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Yury Korolev
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-09 00:00:00.000000000 Z
12
+ date: 2013-01-19 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: !ruby/object:Gem::Requirement
16
+ version_requirements: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 3.1.0
22
- type: :runtime
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
21
+ version: 3.2.0
22
+ requirement: !ruby/object:Gem::Requirement
25
23
  none: false
26
24
  requirements:
27
25
  - - ! '>='
28
26
  - !ruby/object:Gem::Version
29
- version: 3.1.0
27
+ version: 3.2.0
28
+ prerelease: false
29
+ type: :runtime
30
30
  - !ruby/object:Gem::Dependency
31
31
  name: coffee-rails
32
- requirement: !ruby/object:Gem::Requirement
32
+ version_requirements: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
35
35
  - - ! '>='
36
36
  - !ruby/object:Gem::Version
37
37
  version: '0'
38
- type: :runtime
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
38
+ requirement: !ruby/object:Gem::Requirement
41
39
  none: false
42
40
  requirements:
43
41
  - - ! '>='
44
42
  - !ruby/object:Gem::Version
45
43
  version: '0'
44
+ prerelease: false
45
+ type: :runtime
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: sqlite3
48
- requirement: !ruby/object:Gem::Requirement
48
+ version_requirements: !ruby/object:Gem::Requirement
49
49
  none: false
50
50
  requirements:
51
51
  - - ! '>='
52
52
  - !ruby/object:Gem::Version
53
53
  version: '0'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
54
+ requirement: !ruby/object:Gem::Requirement
57
55
  none: false
58
56
  requirements:
59
57
  - - ! '>='
60
58
  - !ruby/object:Gem::Version
61
59
  version: '0'
60
+ prerelease: false
61
+ type: :development
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rspec-rails
64
- requirement: !ruby/object:Gem::Requirement
64
+ version_requirements: !ruby/object:Gem::Requirement
65
65
  none: false
66
66
  requirements:
67
67
  - - ~>
68
68
  - !ruby/object:Gem::Version
69
69
  version: '2.6'
70
- type: :development
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
70
+ requirement: !ruby/object:Gem::Requirement
73
71
  none: false
74
72
  requirements:
75
73
  - - ~>
76
74
  - !ruby/object:Gem::Version
77
75
  version: '2.6'
76
+ prerelease: false
77
+ type: :development
78
78
  - !ruby/object:Gem::Dependency
79
79
  name: sass-rails
80
- requirement: !ruby/object:Gem::Requirement
80
+ version_requirements: !ruby/object:Gem::Requirement
81
81
  none: false
82
82
  requirements:
83
83
  - - ! '>='
84
84
  - !ruby/object:Gem::Version
85
85
  version: '0'
86
- type: :development
87
- prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
86
+ requirement: !ruby/object:Gem::Requirement
89
87
  none: false
90
88
  requirements:
91
89
  - - ! '>='
92
90
  - !ruby/object:Gem::Version
93
91
  version: '0'
92
+ prerelease: false
93
+ type: :development
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: coffee-rails
96
- requirement: !ruby/object:Gem::Requirement
96
+ version_requirements: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
99
  - - ! '>='
100
100
  - !ruby/object:Gem::Version
101
101
  version: '0'
102
- type: :development
103
- prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
102
+ requirement: !ruby/object:Gem::Requirement
105
103
  none: false
106
104
  requirements:
107
105
  - - ! '>='
108
106
  - !ruby/object:Gem::Version
109
107
  version: '0'
108
+ prerelease: false
109
+ type: :development
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: uglifier
112
- requirement: !ruby/object:Gem::Requirement
112
+ version_requirements: !ruby/object:Gem::Requirement
113
113
  none: false
114
114
  requirements:
115
115
  - - ! '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
118
+ requirement: !ruby/object:Gem::Requirement
121
119
  none: false
122
120
  requirements:
123
121
  - - ! '>='
124
122
  - !ruby/object:Gem::Version
125
123
  version: '0'
124
+ prerelease: false
125
+ type: :development
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: slim
128
- requirement: !ruby/object:Gem::Requirement
128
+ version_requirements: !ruby/object:Gem::Requirement
129
129
  none: false
130
130
  requirements:
131
131
  - - ! '>='
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0'
134
- type: :development
135
- prerelease: false
136
- version_requirements: !ruby/object:Gem::Requirement
134
+ requirement: !ruby/object:Gem::Requirement
137
135
  none: false
138
136
  requirements:
139
137
  - - ! '>='
140
138
  - !ruby/object:Gem::Version
141
139
  version: '0'
140
+ prerelease: false
141
+ type: :development
142
142
  description: Allows you to create .js.coffee views
143
143
  email: yury.korolev@gmail.com
144
144
  executables: []
@@ -150,6 +150,7 @@ files:
150
150
  - Gemfile
151
151
  - LICENSE
152
152
  - README.md
153
+ - Rakefile
153
154
  - coffee-views.gemspec
154
155
  - lib/coffee-views.rb
155
156
  - lib/coffee_views.rb
@@ -207,12 +208,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
207
208
  - - ! '>='
208
209
  - !ruby/object:Gem::Version
209
210
  version: '0'
211
+ hash: -4004482261167388747
212
+ segments:
213
+ - 0
210
214
  required_rubygems_version: !ruby/object:Gem::Requirement
211
215
  none: false
212
216
  requirements:
213
217
  - - ! '>='
214
218
  - !ruby/object:Gem::Version
215
219
  version: '0'
220
+ hash: -4004482261167388747
221
+ segments:
222
+ - 0
216
223
  requirements: []
217
224
  rubyforge_project:
218
225
  rubygems_version: 1.8.24
@@ -220,4 +227,3 @@ signing_key:
220
227
  specification_version: 3
221
228
  summary: CoffeeScript views in rails 3
222
229
  test_files: []
223
- has_rdoc: