Module: Hydra::FileAssetsHelper

Included in:
FileAssetsController, GenericContentObjectsController
Defined in:
vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb

Instance Method Summary (collapse)

Instance Method Details

- (FileAsset) add_posted_blob_to_asset(asset = @file_asset)

Puts the contents of params[:Filedata] (posted blob) into a datastream within the given @asset

Parameters:

  • (FileAsset) the

    File Asset to add the blob to

Returns:



21
22
23
# File 'vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb', line 21

def add_posted_blob_to_asset(asset=@file_asset)
  asset.add_file_datastream(params[:Filedata], :label=>params[:Filename], :mimeType=>mime_type(params[:Filename]))
end

- (Constant) asset_class_from_params

This is pre-Hydra code that created an AudioAsset, VideoAsset or ImageAsset based on the current params in the controller.

Returns:

  • (Constant)

    the recommended Asset class



39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# File 'vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb', line 39

def asset_class_from_params
  if params.has_key?(:type)
    chosen_type = case params[:type]
    when "AudioAsset"
      AudioAsset
    when "VideoAsset"
      VideoAsset
    when "ImageAsset"
      ImageAsset
    else
      FileAsset
    end
  elsif params.has_key?(:Filename)
    chosen_type = choose_model_by_filename( params[:Filename] )
  else
    chosen_type = FileAsset
  end
  
  return chosen_type
end

- (Object) choose_model_by_filename(filename)



60
61
62
# File 'vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb', line 60

def choose_model_by_filename(filename)
  choose_model_by_filename_extension( File.extname(filename) )
end

- (Constant) choose_model_by_filename_extension(extension)

Rudimentary method to choose an Asset class based on a filename extension

Recognized extensions: AudioAsset => “.wav”, “.mp3”, “.aiff” VideoAsset => “.mov”, “.flv”, “.mp4” ImageAsset => “.jpeg”, “.jpg”, “.gif”, “.png“

Parameters:

Returns:

  • (Constant)

    the recommended Asset class. Default: FileAsset



73
74
75
76
77
78
79
80
81
82
83
84
# File 'vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb', line 73

def choose_model_by_filename_extension(extension)
  case extension
  when ".wav", ".mp3", ".aiff"
    AudioAsset
  when ".mov", ".flv", ".mp4"
    VideoAsset
  when ".jpeg", ".jpg", ".gif", ".png"
    ImageAsset
  else
   FileAsset
  end
end

- (FileAsset) create_and_save_file_asset_from_params

Creates a File Asset, adding the posted blob to the File Asset’s datastreams and saves the File Asset

Returns:



6
7
8
9
10
11
12
13
14
15
# File 'vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb', line 6

def create_and_save_file_asset_from_params
  if params.has_key?(:Filedata)
    @file_asset = create_asset_from_params
    add_posted_blob_to_asset
    @file_asset.save
    return @file_asset
  else
    render :text => "400 Bad Request", :status => 400
  end
end

- (FileAsset) create_asset_from_params

Creates a File Asset and sets its label from params[:Filename]

Returns:



28
29
30
31
32
33
# File 'vendor/plugins/hydra_repository/lib/hydra/file_assets_helper.rb', line 28

def create_asset_from_params    
  file_asset = FileAsset.new
  file_asset.label = params[:Filename]
  
  return file_asset
end