Skip to content

Commit

Permalink
Consolidate config files
Browse files Browse the repository at this point in the history
Instead of two config files, use just one. Fixes #156
  • Loading branch information
jcoyne committed Aug 22, 2015
1 parent 708dcdc commit 0a240bb
Show file tree
Hide file tree
Showing 17 changed files with 84 additions and 61 deletions.
4 changes: 0 additions & 4 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,6 @@ AllCops:
- 'spec/internal/**/*'
- 'curation_concerns-models/app/models/concerns/curation_concerns/generic_file/export.rb'

Lint/UnusedBlockArgument:
Exclude:
- 'lib/generators/curation_concerns/templates/curation_concerns_config.rb'

Metrics/LineLength:
Enabled: false

Expand Down
2 changes: 1 addition & 1 deletion app/helpers/curation_concerns/ability_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module AbilityHelper
# Returns true if can create at least one type of work
def can_ever_create_works?
can = false
CurationConcerns.configuration.curation_concerns.each do |curation_concern_type|
CurationConcerns.config.curation_concerns.each do |curation_concern_type|
break if can
can = can?(:create, curation_concern_type)
end
Expand Down
2 changes: 1 addition & 1 deletion app/helpers/curation_concerns/url_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def track_generic_file_path(*args)

# generated new GenericWork models get registered as curation concerns and need a
# track_model_path to render Blacklight-related views
CurationConcerns.configuration.registered_curation_concern_types.each do |concern|
CurationConcerns.config.registered_curation_concern_types.each do |concern|
define_method("track_#{concern.underscore}_path") { |*args| main_app.track_solr_document_path(*args) }
end
end
Expand Down
6 changes: 3 additions & 3 deletions app/search_builders/curation_concerns/search_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ class CurationConcerns::SearchBuilder < Hydra::SearchBuilder

def only_generic_files_and_curation_concerns(solr_parameters)
solr_parameters[:fq] ||= []
types_to_include = CurationConcerns.configuration.registered_curation_concern_types.dup
types_to_include = CurationConcerns.config.registered_curation_concern_types.dup
types_to_include << 'Collection'
formatted_type_names = types_to_include.map { |class_name| "\"#{class_name}\"" }.join(' ')

solr_parameters[:fq] << "#{Solrizer.solr_name('has_model', :symbol)}:(#{formatted_type_names})"

# CurationConcerns.configuration.registered_curation_concern_types.each do |curation_concern_class_name|
# CurationConcerns.config.registered_curation_concern_types.each do |curation_concern_class_name|
# solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:(\"GenericFile\" \"Collection\")"
# end
end
Expand All @@ -36,7 +36,7 @@ def filter_models(solr_parameters)

def work_clauses
return [] if blacklight_params.key?(:f) && Array(blacklight_params[:f][:generic_type_sim]).include?('Collection')
CurationConcerns.configuration.registered_curation_concern_types.map(&:constantize).map do |klass|
CurationConcerns.config.registered_curation_concern_types.map(&:constantize).map do |klass|
ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: klass.to_class_uri)
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ def curation_concerns_permissions
# to submit content
def everyone_can_create_curation_concerns
return if current_user.new_record?
can :create, [CurationConcerns.configuration.curation_concerns]
can :create, [CurationConcerns.config.curation_concerns]
can :create, ::Collection
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ def all_curation_concern_classes
end

def registered_curation_concern_types
CurationConcerns.configuration.registered_curation_concern_types
CurationConcerns.config.registered_curation_concern_types
end

def possible_curation_concern_types
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def self.each_for_context(*args, &block)
def initialize(user, options = {})
@user = user
@concern_name_normalizer = options.fetch(:concern_name_normalizer, ClassifyConcern.method(:to_class))
@registered_curation_concern_names = options.fetch(:registered_curation_concern_names, CurationConcerns.configuration.registered_curation_concern_types)
@registered_curation_concern_names = options.fetch(:registered_curation_concern_names, CurationConcerns.config.registered_curation_concern_types)
end

def all
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
module CurationConcerns
class << self
attr_accessor :configuration
attr_accessor :config
end

def self.configure
self.configuration ||= Configuration.new
yield(configuration)
self.config ||= Configuration.new
yield(config)
end

class Configuration
Expand All @@ -28,7 +28,7 @@ def search_config
# Configure the application root url.
attr_writer :application_root_url
def application_root_url
@application_root_url || (fail 'Make sure to set your CurationConcerns.configuration.application_root_url')
@application_root_url || (fail 'Make sure to set your CurationConcerns.config.application_root_url')
end

# When was this last built/deployed
Expand All @@ -40,6 +40,64 @@ def build_identifier
@build_identifier ||= Time.now.strftime('%Y-%m-%d %H:%M:%S')
end

# Set some configuration defaults
attr_writer :persistent_hostpath
def persistent_hostpath
@persistent_hostpath ||= 'http://localhost/files/'
end

attr_writer :enable_ffmpeg
def enable_ffmpeg
return @enable_ffmpeg unless @enable_ffmpeg.nil?
@enable_ffmpeg = false
end

attr_writer :ffmpeg_path
def ffmpeg_path
@ffmpeg_path ||= 'ffmpeg'
end

attr_writer :fits_message_length
def fits_message_length
@fits_message_length ||= 5
end

attr_accessor :temp_file_base, :enable_local_ingest, :analytic_start_date,
:fits_to_desc_mapping, :max_days_between_audits, :cc_licenses,
:cc_licenses_reverse, :resource_types, :resource_types_to_schema,
:permission_levels, :owner_permission_levels, :analytics

attr_writer :enable_noids
def enable_noids
return @enable_noids unless @enable_noids.nil?
@enable_noids = true
end

attr_writer :noid_template
def noid_template
@noid_template ||= '.reeddeeddk'
end

attr_writer :minter_statefile
def minter_statefile
@minter_statefile ||= '/tmp/minter-state'
end

attr_writer :redis_namespace
def redis_namespace
@redis_namespace ||= 'curation_concerns'
end

attr_writer :fits_path
def fits_path
@fits_path ||= 'fits.sh'
end

attr_writer :queue
def queue
@queue ||= CurationConcerns::Resque::Queue
end

# Override characterization runner
attr_accessor :characterization_runner

Expand Down
11 changes: 3 additions & 8 deletions curation_concerns-models/lib/curation_concerns/models.rb
Original file line number Diff line number Diff line change
Expand Up @@ -15,18 +15,13 @@ module Models
autoload :Utils, 'curation_concerns/models/utils'
autoload :Permissions
autoload :Messages
eager_autoload do
autoload :Configuration
end

attr_writer :queue

def self.queue
@queue ||= config.queue.new('curation_concerns')
end

def self.config(&block)
@@config ||= CurationConcerns::Models::Engine::Configuration.new

yield @@config if block

@@config
end
end
17 changes: 0 additions & 17 deletions curation_concerns-models/lib/curation_concerns/models/engine.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,6 @@ def self.config(&block)
class Engine < ::Rails::Engine
require 'curation_concerns/models/resque'

# Set some configuration defaults
config.persistent_hostpath = 'http://localhost/files/'
config.enable_ffmpeg = false
config.ffmpeg_path = 'ffmpeg'
config.fits_message_length = 5
config.temp_file_base = nil
config.enable_noids = true
config.noid_template = '.reeddeeddk'
config.minter_statefile = '/tmp/minter-state'
config.redis_namespace = 'curation_concerns'
config.fits_path = 'fits.sh'
config.enable_local_ingest = nil
config.queue = CurationConcerns::Resque::Queue

# Defaulting analytic start date to whenever the file was uploaded by leaving it blank
config.analytic_start_date = nil

config.autoload_paths += %W(
#{config.root}/app/actors/concerns
#{config.root}/lib/curation_concerns
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CurationConcerns.config do |config|
CurationConcerns.configure do |config|
config.fits_to_desc_mapping = {
file_title: :title,
file_author: :creator
Expand Down
2 changes: 1 addition & 1 deletion lib/curation_concerns/rails/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ class Mapper
def curation_concerns_basic_routes
resources :downloads, only: :show
namespace :curation_concerns, path: :concern do
CurationConcerns.configuration.registered_curation_concern_types.map(&:tableize).each do |curation_concern_name|
CurationConcerns.config.registered_curation_concern_types.map(&:tableize).each do |curation_concern_name|
namespaced_resources curation_concern_name, except: [:index]
end
resources :permissions, only: [] do
Expand Down
4 changes: 0 additions & 4 deletions lib/generators/curation_concerns/install_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,5 @@ def assets
def add_helper
copy_file 'curation_concerns_helper.rb', 'app/helpers/curation_concerns_helper.rb'
end

def add_config_file
copy_file 'curation_concerns_config.rb', 'config/initializers/curation_concerns_config.rb'
end
end
end

This file was deleted.

13 changes: 5 additions & 8 deletions lib/generators/curation_concerns/work/work_generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -49,19 +49,16 @@ def create_actor
end

def register_work
inject_into_file 'config/initializers/curation_concerns_config.rb', after: "CurationConcerns.configure do |config|\n" do
data = ''
data << " # Injected via `rails g curation_concerns:work #{class_name}`\n"
data << " config.register_curation_concern :#{file_name}\n"
data
inject_into_file 'config/initializers/curation_concerns.rb', after: "CurationConcerns.configure do |config|\n" do
" # Injected via `rails g curation_concerns:work #{class_name}`\n" \
" config.register_curation_concern :#{file_name}\n"
end
end

def create_views
create_file "app/views/curation_concerns/#{plural_file_name}/_#{file_name}.html.erb" do
data = "<%# This is a search result view %>\n"
data << "<%= render 'catalog/document', document: #{file_name}, document_counter: #{file_name}_counter %>\n"
data
"<%# This is a search result view %>\n" \
"<%= render 'catalog/document', document: #{file_name}, document_counter: #{file_name}_counter %>\n"
end
end

Expand Down
2 changes: 1 addition & 1 deletion spec/features/work_generator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
load 'spec/internal/app/models/catapult.rb'
load 'spec/internal/app/controllers/curation_concerns/catapults_controller.rb'
load 'spec/internal/app/actors/curation_concerns/catapult_actor.rb'
load 'spec/internal/config/initializers/curation_concerns_config.rb'
load 'spec/internal/config/initializers/curation_concerns.rb'
load 'spec/internal/config/routes.rb'
load 'app/helpers/curation_concerns/url_helper.rb'
sign_in user
Expand Down
6 changes: 3 additions & 3 deletions spec/views/shared/_add_content.html.erb_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
allow(view).to receive(:current_user).and_return(FactoryGirl.create(:admin))
allow(view).to receive(:can?).and_return(true)
render partial: 'shared/add_content'
CurationConcerns.configuration.curation_concerns.each do |curation_concern_type|
CurationConcerns.config.curation_concerns.each do |curation_concern_type|
expect(rendered).to have_link("New #{curation_concern_type.human_readable_type}", href: new_polymorphic_path([:curation_concerns, curation_concern_type]))
end
expect(rendered).to have_link('Add a Collection', href: collections.new_collection_path)
Expand All @@ -18,7 +18,7 @@
allow(view).to receive(:can?).and_return(true)
allow(view).to receive(:can_ever_create_works?).and_return(false)
render partial: 'shared/add_content'
CurationConcerns.configuration.curation_concerns.each do |curation_concern_type|
CurationConcerns.config.curation_concerns.each do |curation_concern_type|
expect(rendered).not_to have_link("New #{curation_concern_type.human_readable_type}", href: new_polymorphic_path([:curation_concerns, curation_concern_type]))
end
expect(rendered).to have_link('Add a Collection', href: collections.new_collection_path)
Expand All @@ -32,7 +32,7 @@
render partial: 'shared/add_content'
expect(rendered).not_to have_text('Add')
expect(rendered).not_to have_text('Admin')
CurationConcerns.configuration.curation_concerns.each do |curation_concern_type|
CurationConcerns.config.curation_concerns.each do |curation_concern_type|
expect(rendered).not_to have_link("New #{curation_concern_type.human_readable_type}", href: new_polymorphic_path([:curation_concerns, curation_concern_type]))
end
expect(rendered).not_to have_link('Add a Collection', href: collections.new_collection_path)
Expand Down

0 comments on commit 0a240bb

Please sign in to comment.