Sha256: a8460be68ebb1940bba2176b596ff8b3f1471a14e7cf82b774e0d357511421c1

Contents?: true

Size: 865 Bytes

Versions: 2

Compression:

Stored size: 865 Bytes

Contents

module Gem
  module Release
    class Context
      class Gemspec < Struct.new(:name)
        attr_reader :filename

        def initialize(*)
          super
          @filename = name && "#{name}.gemspec" || filenames.first
        end

        def gem_name
          gemspec.name if gemspec
        end

        def version
          gemspec.version.to_s if gemspec
        end

        def gem_filename
          gemspec.file_name if gemspec
        end

        def exists?
          filename && File.exists?(filename)
        end

        private

          def gemspec
            return @gemspec if instance_variable_defined?(:@gemspec)
            @gemspec = exists? ? ::Gem::Specification.load(filename) : nil
          end

          def filenames
            Dir['*.gemspec'].map { |path| File.basename(path) }
          end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gem-release-2.0.0.dev.2 lib/gem/release/context/gemspec.rb
gem-release-2.0.0.dev.1 lib/gem/release/context/gemspec.rb