Sha256: ccc3b5fd684a9a102d2d2a668b2f5ba055484c9f4ce588fce895bfa53fb6c013

Contents?: true

Size: 1.05 KB

Versions: 2

Compression:

Stored size: 1.05 KB

Contents

module EacLauncher
  module Ruby
    module Gem
      class Specification
        class << self
          def parse_version_file(file)
            s = ::File.read(file)
            m = /VERSION\s*=\s*[\'\"]([^\'\"]+)[\'\"]/.match(s)
            m ? m[1] : nil
          end
        end

        attr_reader :gemspec_file

        def initialize(gemspec_file)
          @gemspec_file = gemspec_file
        end

        def version
          v = self.class.parse_version_file(version_file)
          return v if v.present?
          raise "Version not found on file \"#{version_file}\""
        end

        def name
          ::File.basename(gemspec_file).gsub(/\.gemspec\z/, '')
        end

        def full_name
          "#{name}-#{version}"
        end

        private

        def gem_root
          ::File.dirname(gemspec_file)
        end

        def version_file
          f = ::File.join(gem_root, 'lib', name, 'version.rb')
          return f if ::File.exist?(f)
          raise "Version file \"#{f}\" does not exist"
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eac_launcher-0.1.3 lib/eac_launcher/ruby/gem/specification.rb
eac_launcher-0.1.4 lib/eac_launcher/ruby/gem/specification.rb