Sha256: aba3c1958326594b2ff9ef12a57ffc5a5000a7e6b9e115612ffe62c5cac3b83c

Contents?: true

Size: 519 Bytes

Versions: 2

Compression:

Stored size: 519 Bytes

Contents

require "get_or_build/version"

module GetOrBuild
  module AssociationBuilder
    # f.object.location_or_build
    def method_missing(method, *args)
      if method =~ /(\w+)_or_build$/
        if result = send($1, *args)
          result
        else
          builder_method = "build_#{$1}"
          send(builder_method, *args) if respond_to?(builder_method)
        end
      else
        super
      end
    end
  end
end

ActiveRecord::Base.send :include, GetOrBuild::AssociationBuilder if defined?(ActiveRecord)

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
get_or_build-0.0.1 lib/get_or_build.rb
GetOrBuild-0.0.1 lib/get_or_build.rb