Sha256: 28159873d4cf4cf6c35374526650a9f7e631eba88fd2838aee617321e08055f2

Contents?: true

Size: 681 Bytes

Versions: 1

Compression:

Stored size: 681 Bytes

Contents

require 'active_support/concern'

module SimplePages
  module Models
    module PageUrl
      extend ActiveSupport::Concern
      included do
        attr_accessible :url
        validates :url, format: { with: /[\w\d\-_]{3,}/ }, allow_blank: true
        acts_as_url :title, sync_url: true, only_when_blank: true
      end

      module ClassMethods
        def find_or_create_by_url(attrs)
          url = attrs.delete :url
          page = where(url: url).first
          if page.nil?
            page = create(attrs)
            page.url = url
            page.save
          end
          page
        end
      end

      def to_param
        url
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple-pages-rails-0.3.1 lib/simple_pages/models/page_url.rb