Module: ActiveFedora::AttachedFiles::ClassMethods

Extended by:
Deprecation
Defined in:
lib/active_fedora/attached_files.rb

Instance Method Summary collapse

Instance Method Details

#ds_specsObject



161
162
163
# File 'lib/active_fedora/attached_files.rb', line 161

def ds_specs
  child_resource_reflections
end

#has_file_datastream(name, args) ⇒ Object #has_file_datastream(args) ⇒ Object

Overloads:

  • #has_file_datastream(name, args) ⇒ Object

    Declares a file datastream exists for objects of this type

    Parameters:

    • name (String)
    • args (Hash)

      @option args :type (ActiveFedora::File) The class the datastream should have @option args [Boolean] :autocreate Always create this datastream on new objects

  • #has_file_datastream(args) ⇒ Object

    Declares a file datastream exists for objects of this type

    Parameters:

    • args (Hash)

      @option args :name (“content”) The dsid of the datastream @option args :type (ActiveFedora::File) The class the datastream should have @option args [Boolean] :autocreate Always create this datastream on new objects



205
206
207
208
209
210
211
212
213
214
215
216
# File 'lib/active_fedora/attached_files.rb', line 205

def has_file_datastream(*args)
  if args.first.is_a? String
    name = args.first
    args = args[1] || {}
    args[:name] = name
  else
    args = args.first || {}
  end
  name = args.delete(:name)
  args[:class_name] = args.delete(:type).to_s
  contains(name, args)
end

#has_metadata(*args) { ... } ⇒ Object

This method is used to specify the details of a datastream. You can pass the name as the first argument and a hash of options as the second argument or you can pass the :name as a value in the args hash. Either way, name is required. Note that this method doesn’t actually execute the block, but stores it, to be executed by any the implementation of the datastream(specified as :type)

Parameters:

  • args (Hash)

Options Hash (*args):

  • :type (Class)

    The class that will represent this datastream, should extend “ActiveFedora::File”

  • :name (String)

    the handle to refer to this datastream as

  • :url (String)
  • :autocreate (Boolean)

    Always create this datastream on new objects

Yields:

  • block executed by some kinds of datastreams

Raises:

  • (ArgumentError)


178
179
180
181
182
183
184
185
186
187
188
189
190
# File 'lib/active_fedora/attached_files.rb', line 178

def (*args, &block)
  if args.first.is_a? String
    name = args.first
    args = args[1] || {}
    args[:name] = name
  else
    args = args.first || {}
  end
  name = args.delete(:name)
  raise ArgumentError, "You must provide a :type property for the datastream '#{name}'" unless args[:type]
  args[:class_name] = args.delete(:type).to_s
  contains(name, args, &block)
end