Sha256: 96d6505ce9f175650a8eaa1832854e7b3039b75a2a0f869983de8025083e54b5

Contents?: true

Size: 738 Bytes

Versions: 1

Compression:

Stored size: 738 Bytes

Contents

module Firefly
  class Url
    include DataMapper::Resource

    property :id,           Serial
    property :url,          String,     :index => true
    property :code,         String,     :index => true
    property :created_at,   DateTime
  
    # Encode a URL and return the encoded ID
    def self.encode(url)
    
      @result = self.first(:url => url)
    
      if @result.nil?
        @result = self.create(:url => url)
        @result.update(:code => Firefly::Base62.encode(@result.id.to_i))
      end
    
      return @result.code
    end
  
    # Decode a code to the original URL
    def self.decode(code)
      @result = Firefly::Url.first(:code => code)  
      return @result.nil? ? nil : @result.url
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
firefly-0.1.0 lib/firefly/url.rb