Sha256: 089e956d398127f101b34c0e803b40631f16656800c8d39aea5fb76c5aaf9760

Contents?: true

Size: 1.16 KB

Versions: 3

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'
require 'tailor/lexer/token'

describe Tailor::Lexer::Token do
  before do
    Tailor::Logger.stub(:log)
  end

  describe '#modifier_keyword?' do
    subject do
      options = { full_line_of_text: full_line_of_text }
      Tailor::Lexer::Token.new('if', options)
    end

    context 'the current line has a keyword that is also a modifier' do
      context 'the keyword is acting as a modifier' do
        let!(:full_line_of_text) { %q{puts "hi" if true == true} }

        it 'returns true' do
          subject.modifier_keyword?.should be_true
        end
      end

      context 'they keyword is NOT acting as a modifier' do
        let!(:full_line_of_text) { %q{if true == true; puts "hi"; end} }

        it 'returns false' do
          subject.modifier_keyword?.should be_false
        end
      end
    end

    context 'the current line does not have a keyword' do
      let!(:full_line_of_text) { %q{puts true} }

      subject do
        options = { full_line_of_text: full_line_of_text }
        Tailor::Lexer::Token.new('puts', options)
      end

      it 'returns false' do
        subject.modifier_keyword?.should be_false
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
tailor-1.4.0 spec/unit/tailor/lexer/token_spec.rb
tailor-1.3.1 spec/unit/tailor/lexer/token_spec.rb
tailor-1.3.0 spec/unit/tailor/lexer/token_spec.rb