Module: ActiveFedora::AttachedFiles::ClassMethods

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

Instance Method Summary collapse

Instance Method Details

#ds_specsObject


152
153
154
# File 'lib/active_fedora/attached_files.rb', line 152

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

  • #has_file_datastream(args) ⇒ Object

    Declares a file datastream exists for objects of this type


197
198
199
200
201
202
203
204
205
206
207
208
# File 'lib/active_fedora/attached_files.rb', line 197

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)

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)

169
170
171
172
173
174
175
176
177
178
179
180
181
# File 'lib/active_fedora/attached_files.rb', line 169

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