Sha256: d4f875ff71dea10a0223c8207690af775ad12591bedd2028b41948c933076e73

Contents?: true

Size: 539 Bytes

Versions: 7

Compression:

Stored size: 539 Bytes

Contents

module Transcriber
  class Resource
    class Association < Key
      attr_reader :many

      def initialize(name, options = {})
        super
        @many       = options.fetch(:many, false)
        @class_name = options.fetch(:class_name, default_class_name).to_s.camelize
      end

      def one?
        !many?
      end

      def many?
        @many
      end

      def default_class_name
        one? ? name : name.to_s.singularize
      end

      def resource_class
        @class_name.constantize
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
transcriber-0.0.8 lib/transcriber/resource/key/association.rb
transcriber-0.0.7 lib/transcriber/resource/key/association.rb
transcriber-0.0.6 lib/transcriber/resource/key/association.rb
transcriber-0.0.5 lib/transcriber/resource/key/association.rb
transcriber-0.0.4 lib/transcriber/resource/key/association.rb
transcriber-0.0.3 lib/transcriber/resource/key/association.rb
transcriber-0.0.2 lib/transcriber/resource/key/association.rb