I got this error:
syntax error, unexpected kEND, expecting $end
What's the difference between kEND and $end ?
In english this is stating:
syntax error, unexpected end of file, expecting an end keyword
I agree it's a fairly non-intuitive message.
So the difference is:
kEND = end of file
$end = end keyword
kEND is the end of your file $end is the end tag so, something like
if somethingIsTrue
puts "its true!"
end
Usually when this happens, you forgot to close something with an end.
Related
In my Rails project, I have added factory_girl_rails gem and I am getting an error when I run Rspec to test my factory:
SyntaxError: /Users/khack/blister/spec/factories/user.rb:1:
syntax error, unexpected tIDENTIFIER, expecting keyword_end
passw...ester#example.com"
... ^
/Users/khack/blister/test/spec/factories/user.rb:1: syntax error, unexpected
tIDENTIFIER, expecting keyword_end
endassword "password"m"
... ^
The user factory:
FactoryGirl.define do
factory :user do
name "Aaron Sumner"
email "tester#example.com"
password "password"
end
end
I am missing something but I can't find it. Any guesses?
I solved my problem. It was non-breaking space that my code editor was adding. I did another factory in a different editor and it registered successfully.
rake db:migrate aborts because of a syntax error
rake aborted!
/Users/Fryed/rails/treebook/db/migrate/20121009215822_devise_create_users.rb:3: syntax error, unexpected '\n', expecting '|'
/Users/Fryed/rails/treebook/db/migrate/20121009215822_devise_create_users.rb:47: syntax error, unexpected keyword_end, expecting $end
But the corresponding lines look like this:
line 3 create_table(:users) do |t
and line 47 end
Why doesn't this work, and how can I fix it?
Many thanks in advance!
You're just missing a trailing |, line 3 should read:
create_table(:users) do |t|
\n means line break - so the error message basically said, "ruby saw a line break, but it was expecting another |"
I am using Rails 3.2.3 and acts_as_tree 1.1.0. I have been using acts_as_tree for a handful different projects with earlier versions of Rails 3 (such as 3.1.1.) with no problems but it won't work at all for this version. If it is because of 3.2.3 or something else that I use I have not been able to confirm though.
This is what I have tried, to no avail:
- Using acts_as_tree on several different controllers
- Only using acts_as_tree (with no order statement)
- Run bundle install and bundle update
- Double check that parent_id exist and is integer
First, when I tried this I got at first try:
undefined method `acts_as_tree'
reloading the page (and not doing anything else) caused:
undefined method `key?' for nil:NilClass
then restarting the server caused a failure to launch (the app would crash and not start) with the following error:
/Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:68:in `require': /Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: odd number list for Hash (SyntaxError)
foreign_key: "parent_id",
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: syntax error, unexpected ':', expecting '}'
foreign_key: "parent_id",
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:78: syntax error, unexpected ',', expecting kEND
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:79: Can't assign to nil
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:80: syntax error, unexpected ':', expecting '='
counter_cache: nil,
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:80: Can't assign to nil
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:81: syntax error, unexpected ':', expecting '='
dependent: :destroy
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:82: syntax error, unexpected '}', expecting kEND
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:86: syntax error, unexpected ':', expecting kEND
belongs_to :parent, class_name: name,
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:87: syntax error, unexpected ':', expecting '='
foreign_key: configuration[:foreign_key],
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:88: syntax error, unexpected ':', expecting '='
counter_cache: configuration[:counter_cache],
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:89: syntax error, unexpected ':', expecting '='
inverse_of: :children
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:91: syntax error, unexpected ':', expecting kEND
has_many :children, class_name: name,
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:92: syntax error, unexpected ':', expecting '='
foreign_key: configuration[:foreign_key],
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:93: syntax error, unexpected ':', expecting '='
order: configuration[:order],
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:94: syntax error, unexpected ':', expecting '='
dependent: configuration[:dependent],
^
/Library/Ruby/Gems/1.8/gems/acts_as_tree-1.1.0/lib/acts_as_tree.rb:95: syntax error, unexpected ':', expecting '='
inverse_of: :parent
^
from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:66:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:66:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler/runtime.rb:55:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.1.3/lib/bundler.rb:119:in `require'
from /Users/Christoffer/Documents/Webbprojekt/rails/Presenttips/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:53:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:53
from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:50:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.2.3/lib/rails/commands.rb:50
from script/rails:6:in `require'
from script/rails:6
which makes me guess there is a compability issue btw Rails 3.2.3 and acts_as_tree. I do not know how to verify this though.
What options do I have? I don't necessarily need to use Rails 3.2.3 but if I downgrade to 3.1.1. (which I tried) I encounter other problems that seem worse (the "file setup" does not seem to be the same).
So, what are my options? Have you experienced this as well? There IS something wrong with acts_as_tree, right?
Looks like there's an open from 2 years ago
opened this issue 2 years ago Does not work with Rails 2.3.8 https://github.com/rails/acts_as_tree/issues/1
Options
acts_as_tree_rails3 gem install acts_as_tree_rails3
or
nested_set https://github.com/skyeagle/nested_set
Edit:
You are right, the new location is https://github.com/amerine/acts_as_tree same author
with a comment
We no longer support Ruby 1.8 or versions if Rails/ActiveRecord older
than 3.0. If you're using a version of ActiveRecord older than 3.0
please use 0.1.1.
Moving forward we will do our best to support the latest versions of
ActiveRecord and Ruby
That's why they did not bother with those opened issues
macbook air bought yesterday. Installed homebrew, xcode, rails, git, cloned out my project fine. Running "rails s" or rake db:create, rake db:migrate etc. all return this same error. Have run bundle install. Seems really odd, perhaps requiring reinstall but what should I reinstall?
/Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require': /Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:31: odd number list for Hash (SyntaxError)
title: #meta_title,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:31: syntax error, unexpected ':', expecting '}'
title: #meta_title,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:32: syntax error, unexpected ':', expecting '='
keywords: #meta_keywords,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:33: syntax error, unexpected ':', expecting '='
description: #meta_description,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:34: syntax error, unexpected ':', expecting '='
author: #meta_author,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:35: syntax error, unexpected ':', expecting '='
email: #meta_email,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:36: syntax error, unexpected ':', expecting '='
copyright: #meta_copyright,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:37: syntax error, unexpected ':', expecting '='
generator: #meta_generator,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:38: syntax error, unexpected ':', expecting '='
rating: #meta_rating,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:39: syntax error, unexpected ':', expecting '='
language: #meta_language,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:40: syntax error, unexpected ':', expecting '='
distribution: #meta_distribution,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:41: syntax error, unexpected ':', expecting '='
robots: #robots,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:42: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"fb:app_id" => #meta_fb_app_id,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:43: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:title" => #meta_og_title,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:44: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:description" => #meta_og_description,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:45: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:url" => request.url,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:46: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:site_name" => #meta_og_site_name,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:47: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:type" => #meta_og_type,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:48: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:image" => #meta_og_image,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:49: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:locality" => #meta_og_locality,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:50: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:region" => #meta_og_region,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:51: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:country_name" => #meta_og_country_name,
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:52: syntax error, unexpected tASSOC, expecting tCOLON2 or '[' or '.'
:"og:phone_number" => #meta_og_phone_number
^
/Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers/metatag_helper.rb:58: syntax error, unexpected $end, expecting kEND
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:640:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:223:in `load_dependency'
from /Library/Ruby/Gems/1.8/gems/activesupport-3.1.0/lib/active_support/dependencies.rb:240:in `require'
from /Library/Ruby/Gems/1.8/gems/frontend-helpers-0.0.7/lib/frontend-helpers.rb:2
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
from /Users/davidganly/work/vvx/config/application.rb:13
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:52:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:52
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:49:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.1.0/lib/rails/commands.rb:49
from script/rails:6:in `require'
from script/rails:6
I didn't have ruby 1.9.2. -- Just hadn't noticed. Anyway, did the sensible thing and installed via rvm and now everything is up and running.
Had my previous answer deleted because I was asking what I'm supposed to do if I can't update to 1.9.x, since the accepted answer doesn't really solve the problem.
Btw I submitted a patch to frontend-helpers which is now merged into master :
https://github.com/christopherhein/frontend-helpers/commit/b2ce595d2dd183b643fbe4c3c22cd9defbc24ed7
So if you run into this issue just upgrade your Gemfile !
I have the apn_for_rails gem installed and configured correctly, the problem I'm running into is probably a syntax problem due to my newness to Ruby on Rails.
I have this in /models under the file push_notification.rb
class ApnDevice < ActiveRecord::Base
end
in routes.rb
match '/api/v2.0/RegisterIOSDevice', :to => Api::V_2_0::ApiNotifications
and then I have another file in /lib/api/v_2_0 called api_notifications.rb
require 'rubygems'
require 'sinatra/base'
require 'nokogiri'
require 'apn_on_rails'
module Api
module V_2_0
class ApiPushNotification < sinatra::Base
include ApplicationHelper
include Api::V_2_0::ApiResponse
include ApiUtil
def push_notification(params)
status = -1
error = nil
begin
if params[:device_token].blank?
return status_respnse(params,status,'device_token cant be blank')
end
existing_device_token = ApnDevice.find_by_token(params[:device_token])
if existing_device_token
return status_response(params,status,'Token already exists for device')
end
token = ApnDevice.create!(:token => params[:device_token])
rescue Exception => e
error = e.message
Rails.logger.info "#{e.class} : #{e.message}"
Rails.logger.info e.backtrace.join("\n")
rescue => e
error = e
Rails.logger.info "Caught exception: #{e}"
Rails.logger.info e.backtrace.join("\n")
end #end of rescue
status_response(params,status,error)
end
get '/api/v2.0/RegisterIOSDevice.:format' do
push_notification(params)
end
post '/api/v2.0/RegisterIosDevice.:format' do
push_notification(params)
end
end #end of class ApiPushNotification
end #end of module V_2_0
end #end of module Api
but it gives me this huge error when I run my server, I won't post the whole thing, but it says this basically
/lib/api/v_2_0/api_notifications.rb:7: invalid multibyte char (US-ASCII) (SyntaxError)
/lib/api/v_2_0/api_notifications.rb:7: syntax error, unexpected $end, expecting keyword_end
this is followed by a stack trace which I will not post but I can't seem to find the problem, any ideas?
Edit:
ok I added the utf-8 suggestion, now I'm getting a new error:
lib/api/v_2_0/api_notifications.rb:46: syntax error, unexpected keyword_end, expecting $end (SyntaxError)
I don't know what you are doing there, but why are you using Rails if you use Sinatra instead in lib?
To your error, add the following code at the first line:
# encoding: utf-8