2013-03-25 3 views
1

Я проверил этот код много раз, и я не могу найти причину этой синтаксической ошибки.Синтаксическая ошибка, неожиданный IDENTIFIER, ожидающий keyword_end

syntax error, unexpected tIDENTIFIER, expecting keyword_end 

Это код:

# coding: utf-8 
lib = File.expand_path('../lib', __FILE__) 
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 
require '00 hello/version' 

Gem::Specification.new do |spec| 
    spec.name   = "00 hello" 
    spec.version  = 00 hello_VERSION 
    spec.authors  = ["John Kirtley"] 
    spec.email   = ["[email protected]"] 
    spec.description = %q{TODO: Write a gem description} 
    spec.summary  = %q{TODO: Write a gem summary} 
    spec.homepage  = "" 
    spec.license  = "MIT" 

    spec.files   = `git ls-files`.split($/) 
    spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } 
    spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) 
    spec.require_paths = ["lib"] 

    spec.add_development_dependency "bundler", "~> 1.3" 
    spec.add_development_dependency "rake" 
end 

Это модифицированный код:

# coding: utf-8 
lib = File.expand_path('../lib', __FILE__) 
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib) 
require = 00hello_version 



Gem::Specification.new do |spec| 
    spec.name   = "00hello" 
    spec.version  = "00hello:VERSION" 
    spec.authors  = ["John Kirtley"] 
    spec.email   = ["[email protected]"] 
    spec.description = %q{TODO: Write a gem description} 
    spec.summary  = %q{TODO: Write a gem summary} 
    spec.homepage  = "" 
    spec.license  = "MIT" 

    spec.files   = `git ls-files`.split($/) 
    spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }) 
    spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) 
    spec.require_paths = ["lib"] 

    spec.add_development_dependency "bundler", "~> 1.3" 
    spec.add_development_dependency "rake" 
end 

Я изменил код немного, и теперь ошибка, я получаю:

There was a SyntaxError while loading hello.gemspec: 
/Users/John/$/hello.gemspec:4: syntax error, unexpected tIDENTIFIER, expecting end-of-input 
/Users/John/$/Rakefile:1:in `<top (required)>' 
/Users/John/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `eval' 
/Users/John/.rvm/gems/ruby-2.0.0-p0/bin/ruby_noexec_wrapper:14:in `<main>' 
(See full trace by running task with --trace) 
+0

Вам нужно перестроить это как вопрос. Спасибо, однако, за хорошее форматирование. –

ответ

1

Вы можете прокомментировать строки, пока не найдете их ....

Но 00 hello_Version выглядит изворотливым для меня.

+0

Я попытался изменить «_» на «/» и «:». Все равно получите ошибку. – user2206277

+0

Пространство причиняет вам горе, скорее всего. Можете ли вы переименовать свой модуль в 00hello? или 00_hello? – peterept

+0

устранены пробелы, теперь я получаю «exepecting end_of_input error» @peterept – user2206277

0

Вы должны указать ваш раздел spec.version.

spec.version = '00 hello_VERSION' 
+0

Это было указано ранее, я удалил их только для экспериментов. Все еще получал ошибку с ними. @muttonlamb – user2206277

+0

OK, в какой строке он держится на – muttonlamb

+0

понятия не имеет. Я прокомментировал каждую строку. Я все еще получаю синтаксическую ошибку «exepecting end_of_input» – user2206277

0

spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }

отсутствует конец скобка

Смежные вопросы