Sha256: 93b619b3fd11ef498ac831f0491679c32f58ec41d5f0b0e73bb948da62dcb80a

Contents?: true

Size: 886 Bytes

Versions: 6

Compression:

Stored size: 886 Bytes

Contents

require 'spec_helper'

describe Analyst::Entities::SingletonClass do

  let(:code) {<<-CODE
      module Arbys
        class FriendlyStaff
          class << self
            def greet_customers
              "Hello customers!"
            end
          end
        end
      end
    CODE
  }
  let(:parser) { Analyst.for_source(code) }
  let(:klass)  { parser.classes.first }
  let(:singleton) { klass.singleton_class_blocks.first }

  describe "#name" do
    it "returns its short name" do
      expect(singleton.name).to eq("FriendlyStaff!SINGLETON")
    end
  end

  describe "#full_name" do
    it "returns its fully qualified name" do
      expect(singleton.full_name).to eq("Arbys::FriendlyStaff!SINGLETON")
    end
  end

  describe "#smethods" do
    it "returns its singleton methods" do
      expect(singleton.smethods.first.name).to eq("greet_customers")
    end
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
analyst-1.2.4 spec/entities/singleton_class_spec.rb
analyst-1.2.3 spec/entities/singleton_class_spec.rb
analyst-1.2.2 spec/entities/singleton_class_spec.rb
analyst-1.2.1 spec/entities/singleton_class_spec.rb
analyst-1.2.0 spec/entities/singleton_class_spec.rb
analyst-1.0.1 spec/entities/singleton_class_spec.rb