Module: Railspress

Defined in:
lib/railspress.rb,
lib/railspress/engine.rb,
lib/railspress/entity.rb,
lib/railspress/version.rb,
app/models/railspress/tag.rb,
app/models/railspress/post.rb,
app/models/railspress/export.rb,
app/models/railspress/import.rb,
app/models/railspress/api_key.rb,
app/models/railspress/tagging.rb,
app/models/railspress/category.rb,
app/helpers/railspress/cms_helper.rb,
app/models/railspress/focal_point.rb,
app/helpers/railspress/admin_helper.rb,
app/jobs/railspress/application_job.rb,
app/models/railspress/content_group.rb,
app/jobs/railspress/export_posts_job.rb,
app/jobs/railspress/import_posts_job.rb,
app/models/railspress/content_element.rb,
app/models/concerns/railspress/taggable.rb,
app/models/railspress/application_record.rb,
app/helpers/railspress/application_helper.rb,
app/mailers/railspress/application_mailer.rb,
app/models/railspress/agent_bootstrap_key.rb,
app/models/railspress/post_export_processor.rb,
app/models/railspress/post_import_processor.rb,
app/models/concerns/railspress/soft_deletable.rb,
app/models/railspress/content_element_version.rb,
app/services/railspress/content_export_service.rb,
app/services/railspress/content_import_service.rb,
app/controllers/railspress/admin/base_controller.rb,
app/controllers/railspress/admin/tags_controller.rb,
app/controllers/railspress/admin/posts_controller.rb,
app/controllers/railspress/api/v1/base_controller.rb,
app/controllers/railspress/api/v1/tags_controller.rb,
app/controllers/railspress/application_controller.rb,
lib/generators/railspress/entity/entity_generator.rb,
app/controllers/railspress/api/v1/posts_controller.rb,
app/controllers/railspress/api/v1/prime_controller.rb,
app/controllers/railspress/admin/exports_controller.rb,
app/controllers/railspress/admin/imports_controller.rb,
lib/generators/railspress/install/install_generator.rb,
app/controllers/railspress/admin/api_keys_controller.rb,
app/controllers/railspress/admin/entities_controller.rb,
app/controllers/railspress/admin/dashboard_controller.rb,
app/controllers/railspress/admin/categories_controller.rb,
app/controllers/railspress/admin/prototypes_controller.rb,
app/controllers/railspress/api/v1/categories_controller.rb,
app/controllers/railspress/admin/focal_points_controller.rb,
app/controllers/railspress/admin/cms_transfers_controller.rb,
app/controllers/railspress/api/v1/post_imports_controller.rb,
app/controllers/railspress/admin/content_groups_controller.rb,
app/controllers/railspress/admin/content_elements_controller.rb,
app/controllers/railspress/api/v1/concerns/post_serialization.rb,
app/controllers/railspress/api/v1/post_header_images_controller.rb,
app/controllers/railspress/admin/agent_bootstrap_keys_controller.rb,
app/controllers/railspress/api/v1/agent_key_exchanges_controller.rb,
app/controllers/railspress/admin/content_element_versions_controller.rb,
app/controllers/railspress/api/v1/post_header_image_contexts_controller.rb,
app/controllers/railspress/api/v1/post_header_image_focal_points_controller.rb

Defined Under Namespace

Modules: Admin, AdminHelper, Api, ApplicationHelper, CMS, CmsHelper, Entity, Generators, HasFocalPoint, SoftDeletable, Taggable Classes: AgentBootstrapKey, ApiKey, ApplicationController, ApplicationJob, ApplicationMailer, ApplicationRecord, Category, Configuration, ConfigurationError, ContentElement, ContentElementVersion, ContentExportService, ContentGroup, ContentImportService, Engine, EntityConfig, Export, ExportPostsJob, FocalPoint, Import, ImportPostsJob, Post, PostExportProcessor, PostImportProcessor, Tag, Tagging

Constant Summary collapse

VERSION =
"1.3.1"

Class Method Summary collapse

Class Method Details

.admin_auth_concernObject



288
289
290
# File 'lib/railspress.rb', line 288

def admin_auth_concern
  configuration.admin_auth_concern
end

.api_enabled?Boolean

Returns:

  • (Boolean)


229
230
231
# File 'lib/railspress.rb', line 229

def api_enabled?
  configuration.api_enabled
end

.author_classObject



233
234
235
# File 'lib/railspress.rb', line 233

def author_class
  configuration.author_class_name.constantize
end

.author_display_for(author) ⇒ Object

Returns a safe display string for an author record. Falls back through common attribute names when the configured display method is missing on the model.



255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
# File 'lib/railspress.rb', line 255

def author_display_for(author)
  return nil unless author

  configured_method = author_display_method
  if configured_method.present? && author.respond_to?(configured_method)
    value = author.public_send(configured_method)
    return value if value.present?
  end

  fallback_method = [ :name, :full_name, :display_name, :email, :email_address ]
    .find { |method| author.respond_to?(method) && author.public_send(method).present? }

  return author.public_send(fallback_method) if fallback_method

  "Author ##{author.id || "unknown"}"
end

.author_display_methodObject



248
249
250
# File 'lib/railspress.rb', line 248

def author_display_method
  configuration.author_display_method
end

.authors_enabled?Boolean

Convenience accessors

Returns:

  • (Boolean)


209
210
211
# File 'lib/railspress.rb', line 209

def authors_enabled?
  configuration.authors_enabled
end

.available_authorsObject



237
238
239
240
241
242
243
244
245
246
# File 'lib/railspress.rb', line 237

def available_authors
  scope = configuration.author_scope
  klass = author_class

  case scope
  when Symbol then klass.public_send(scope)
  when Proc   then scope.call(klass)
  else             klass.all
  end
end

.blog_pathObject



318
319
320
# File 'lib/railspress.rb', line 318

def blog_path
  configuration.blog_path
end

.cms_enabled?Boolean

Returns:

  • (Boolean)


221
222
223
# File 'lib/railspress.rb', line 221

def cms_enabled?
  configuration.cms_enabled
end

.configurationObject



195
196
197
# File 'lib/railspress.rb', line 195

def configuration
  @configuration ||= Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



199
200
201
202
# File 'lib/railspress.rb', line 199

def configure
  yield(configuration)
  configuration.validate!
end

.current_api_actor_methodObject



280
281
282
# File 'lib/railspress.rb', line 280

def current_api_actor_method
  configuration.current_api_actor_method
end

.current_api_actor_procObject



284
285
286
# File 'lib/railspress.rb', line 284

def current_api_actor_proc
  configuration.current_api_actor_proc
end

.current_author_methodObject



272
273
274
# File 'lib/railspress.rb', line 272

def current_author_method
  configuration.current_author_method
end

.current_author_procObject



276
277
278
# File 'lib/railspress.rb', line 276

def current_author_proc
  configuration.current_author_proc
end

.default_index_columnsObject



322
323
324
# File 'lib/railspress.rb', line 322

def default_index_columns
  configuration.default_index_columns
end

.entity_for(route_key) ⇒ Object



339
340
341
# File 'lib/railspress.rb', line 339

def entity_for(route_key)
  configuration.entity_for(route_key)
end

.entity_registered?(route_key) ⇒ Boolean

Returns:

  • (Boolean)


343
344
345
# File 'lib/railspress.rb', line 343

def entity_registered?(route_key)
  configuration.entity_registered?(route_key)
end

.focal_points_enabled?Boolean

Returns:

  • (Boolean)


217
218
219
# File 'lib/railspress.rb', line 217

def focal_points_enabled?
  configuration.focal_points_enabled
end

.image_contextsObject



225
226
227
# File 'lib/railspress.rb', line 225

def image_contexts
  configuration.image_contexts
end

.inline_editing_checkObject



330
331
332
# File 'lib/railspress.rb', line 330

def inline_editing_check
  configuration.inline_editing_check
end

.post_image_variantsObject



326
327
328
# File 'lib/railspress.rb', line 326

def post_image_variants
  configuration.post_image_variants
end

.post_images_enabled?Boolean

Returns:

  • (Boolean)


213
214
215
# File 'lib/railspress.rb', line 213

def post_images_enabled?
  configuration.post_images_enabled
end

.public_base_urlObject



310
311
312
# File 'lib/railspress.rb', line 310

def public_base_url
  configuration.public_base_url
end

.registered_entitiesObject

Entity registry convenience accessors



335
336
337
# File 'lib/railspress.rb', line 335

def registered_entities
  configuration.registered_entities
end

.reset_configuration!Object



204
205
206
# File 'lib/railspress.rb', line 204

def reset_configuration!
  @configuration = Configuration.new
end

.resolved_admin_auth_concernObject



292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
# File 'lib/railspress.rb', line 292

def resolved_admin_auth_concern
  concern = admin_auth_concern
  return nil if concern.blank?

  module_value = case concern
  when Module then concern
  when String, Symbol
    concern_name = concern.to_s
    concern_name.safe_constantize || concern_name.camelize.safe_constantize
  end

  unless module_value.is_a?(Module)
    raise ConfigurationError, "admin_auth_concern must resolve to a Module. Got: #{concern.inspect}"
  end

  module_value
end

.words_per_minuteObject



314
315
316
# File 'lib/railspress.rb', line 314

def words_per_minute
  configuration.words_per_minute
end