updated for version 7.1b
diff --git a/runtime/indent/eruby.vim b/runtime/indent/eruby.vim
index d621bfa..9a68e54 100644
--- a/runtime/indent/eruby.vim
+++ b/runtime/indent/eruby.vim
@@ -12,13 +12,27 @@
 
 runtime! indent/ruby.vim
 unlet! b:did_indent
+set indentexpr=
 
-runtime! indent/html.vim
+if exists("b:eruby_subtype")
+  exe "runtime! indent/".b:eruby_subtype.".vim"
+else
+  runtime! indent/html.vim
+endif
 unlet! b:did_indent
 
+if &l:indentexpr == ''
+  if &l:cindent
+    let &l:indentexpr = 'cindent(v:lnum)'
+  else
+    let &l:indentexpr = 'indent(prevnonblank(v:lnum-1))'
+  endif
+endif
+let b:eruby_subtype_indentexpr = &l:indentexpr
+
 let b:did_indent = 1
 
-setlocal indentexpr=GetErubyIndent(v:lnum)
+setlocal indentexpr=GetErubyIndent()
 setlocal indentkeys=o,O,*<Return>,<>>,{,},0),0],o,O,!^F,=end,=else,=elsif,=rescue,=ensure,=when
 
 " Only define the function once.
@@ -26,19 +40,19 @@
   finish
 endif
 
-function! GetErubyIndent(lnum)
+function! GetErubyIndent()
   let vcol = col('.')
-  call cursor(a:lnum,1)
+  call cursor(v:lnum,1)
   let inruby = searchpair('<%','','%>')
-  call cursor(a:lnum,vcol)
-  if inruby && getline(a:lnum) !~ '^<%'
+  call cursor(v:lnum,vcol)
+  if inruby && getline(v:lnum) !~ '^<%'
     let ind = GetRubyIndent()
   else
-    let ind = HtmlIndentGet(a:lnum)
+    exe "let ind = ".b:eruby_subtype_indentexpr
   endif
-  let lnum = prevnonblank(a:lnum-1)
+  let lnum = prevnonblank(v:lnum-1)
   let line = getline(lnum)
-  let cline = getline(a:lnum)
+  let cline = getline(v:lnum)
   if cline =~# '<%\s*\%(end\|else\|\%(ensure\|rescue\|elsif\|when\).\{-\}\)\s*\%(-\=%>\|$\)'
     let ind = ind - &sw
   endif