diff --git a/grammars/html (ruby - erb).cson b/grammars/html (ruby - erb).cson
index e353422..64a8b9b 100644
--- a/grammars/html (ruby - erb).cson
+++ b/grammars/html (ruby - erb).cson
@@ -71,8 +71,8 @@
'beginCaptures':
'0':
'name': 'punctuation.section.embedded.begin.erb'
- 'contentName': 'source.ruby'
- 'end': '(-?%)>'
+ 'contentName': 'source.ruby.embedded.erb'
+ 'end': '-?%>'
'endCaptures':
'0':
'name': 'punctuation.section.embedded.end.erb'
@@ -97,8 +97,8 @@
'beginCaptures':
'0':
'name': 'punctuation.section.embedded.begin.erb'
- 'contentName': 'source.ruby'
- 'end': '(-?%)>'
+ 'contentName': 'source.ruby.embedded.erb'
+ 'end': '-?%>'
'endCaptures':
'0':
'name': 'punctuation.section.embedded.end.erb'
diff --git a/spec/erb-spec.coffee b/spec/erb-spec.coffee
new file mode 100644
index 0000000..83b987b
--- /dev/null
+++ b/spec/erb-spec.coffee
@@ -0,0 +1,26 @@
+describe "HTML (Ruby - ERB) grammar", ->
+ grammar = null
+
+ beforeEach ->
+ waitsForPromise ->
+ atom.packages.activatePackage("language-ruby")
+
+ runs ->
+ grammar = atom.grammars.grammarForScopeName("text.html.erb")
+
+ it "parses the grammar", ->
+ expect(grammar).toBeTruthy()
+ expect(grammar.scopeName).toBe "text.html.erb"
+
+ it "tokenizes embedded ruby", ->
+ {tokens} = grammar.tokenizeLine('<%= self %>')
+ expect(tokens[0]).toEqual value: '<%=', scopes: ['text.html.erb', 'meta.embedded.line.erb', 'punctuation.section.embedded.begin.erb']
+ expect(tokens[1]).toEqual value: ' ', scopes: ['text.html.erb', 'meta.embedded.line.erb', 'source.ruby.embedded.erb']
+ expect(tokens[2]).toEqual value: 'self', scopes: ['text.html.erb', 'meta.embedded.line.erb', 'source.ruby.embedded.erb', 'variable.language.self.ruby']
+ expect(tokens[3]).toEqual value: ' ', scopes: ['text.html.erb', 'meta.embedded.line.erb', 'source.ruby.embedded.erb']
+ expect(tokens[4]).toEqual value: '%>', scopes: ['text.html.erb', 'meta.embedded.line.erb', 'punctuation.section.embedded.end.erb']
+
+ lines = grammar.tokenizeLines('<%=\nself\n%>')
+ expect(lines[0][0]).toEqual value: '<%=', scopes: ['text.html.erb', 'meta.embedded.block.erb', 'punctuation.section.embedded.begin.erb']
+ expect(lines[1][0]).toEqual value: 'self', scopes: ['text.html.erb', 'meta.embedded.block.erb', 'source.ruby.embedded.erb', 'variable.language.self.ruby']
+ expect(lines[2][0]).toEqual value: '%>', scopes: ['text.html.erb', 'meta.embedded.block.erb', 'punctuation.section.embedded.end.erb']