Module: Kithe

Defined in:
lib/kithe.rb,
lib/kithe/engine.rb,
lib/kithe/version.rb,
app/jobs/kithe/job.rb,
lib/kithe/config_base.rb,
lib/kithe/sti_preload.rb,
app/indexing/kithe/indexer.rb,
app/indexing/kithe/indexable.rb,
app/indexing/kithe/solr_util.rb,
lib/kithe/indexable_settings.rb,
app/jobs/kithe/asset_delete_job.rb,
app/models/kithe/model_contains.rb,
app/jobs/kithe/asset_promote_job.rb,
app/uploaders/kithe/asset_uploader.rb,
app/models/kithe/mediainfo_analyzer.rb,
app/jobs/kithe/create_derivatives_job.rb,
app/indexing/kithe/indexer/obj_extract.rb,
app/models/kithe/timing_promotion_directive.rb,
app/indexing/kithe/indexable/thread_settings.rb,
app/indexing/kithe/indexable/record_index_updater.rb,
lib/kithe/blacklight_tools/search_service_bulk_load.rb,
app/derivative_transformers/kithe/ffmpeg_transformer.rb,
lib/kithe/blacklight_tools/bulk_loading_search_service.rb,
app/derivative_transformers/kithe/vips_cli_image_to_jpeg.rb

Defined Under Namespace

Modules: BlacklightTools, FormHelper, Indexable, SolrUtil, StiPreload Classes: Asset, AssetDeleteJob, AssetPromoteJob, AssetUploader, Collection, ConfigBase, CreateDerivativesJob, Engine, FfmpegTransformer, FormBuilder, IndexableSettings, Indexer, MediainfoAnalyzer, Model, ModelContains, Parameters, RepeatableInputGenerator, TimingPromotionDirective, VipsCliImageToJpeg, Work

Constant Summary collapse

STANDARD_PROGRESS_BAR_FORMAT =

for ruby-progressbar

"%a %t: |%B| %R/s %c/%u %p%% %e"
VERSION =

not sure why rubygems turned our alphas into 2.0.0.pre.alpha1, inserting “pre”. We need to do same thing with betas to get version orderings appropriate.

'2.0.3'
Job =

Just a superclass for all kithe jobs, to make it easier to do track them or put them all in a certain queue or whatever. Will inherit from local app ApplicationJob if it exists.

Class.new(app_superclass)

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.indexable_settingsObject



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/kithe.rb', line 73

def self.indexable_settings
  @indexable_settings ||= IndexableSettings.new(
    solr_url: "http://localhost:8983/solr/default",
    model_name_solr_field: "model_name_ssi",
    solr_id_value_attribute: "id",
    writer_class_name: "Traject::SolrJsonWriter",
    writer_settings: {
      # as default we tell the solrjsonwriter to use no threads,
      # no batching. softCommit on every update. Least surprising
      # default configuration.
      "solr_writer.thread_pool" => 0,
      "solr_writer.batch_size" => 1,
      "solr_writer.solr_update_args" => { softCommit: true },
      "solr_writer.http_timeout" => 3,
      "logger" => Rails.logger,

      # MAYBE? no skippable exceptions please
      # "solr_writer.skippable_exceptions" => []
    },
    disable_callbacks: false
  )
end

.use_mediainfoObject

Currently used by Kithe::AssetUploader, a bit of a hacky design, we should improve with better way to customize uploaders.



99
100
101
# File 'lib/kithe.rb', line 99

def use_mediainfo
  @use_mediainfo
end

Class Method Details

.railtie_namespaceObject

We don’t want an isolated engine, but we do want this, part of what isolated engines do. Will make generators use namespace scope, among other things.



28
29
30
# File 'lib/kithe.rb', line 28

def self.railtie_namespace
  Kithe::Engine
end

.table_name_prefixObject

ActiveRecord will automatically pick this up for all our models. We don’t want an isolated engine, but we do want this, part of what isolated engines do.



22
23
24
# File 'lib/kithe.rb', line 22

def self.table_name_prefix
  'kithe_'
end