Module: Railspress

Defined in:
lib/railspress.rb,
lib/railspress/cms.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.3"

Class Method Summary collapse

Class Method Details

.admin_auth_concernObject



290
291
292
# File 'lib/railspress.rb', line 290

def admin_auth_concern
  configuration.admin_auth_concern
end

.api_enabled?Boolean

Returns:

  • (Boolean)


231
232
233
# File 'lib/railspress.rb', line 231

def api_enabled?
  configuration.api_enabled
end

.author_classObject



235
236
237
# File 'lib/railspress.rb', line 235

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.



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

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



250
251
252
# File 'lib/railspress.rb', line 250

def author_display_method
  configuration.author_display_method
end

.authors_enabled?Boolean

Convenience accessors

Returns:

  • (Boolean)


211
212
213
# File 'lib/railspress.rb', line 211

def authors_enabled?
  configuration.authors_enabled
end

.available_authorsObject



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

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



320
321
322
# File 'lib/railspress.rb', line 320

def blog_path
  configuration.blog_path
end

.cms_enabled?Boolean

Returns:

  • (Boolean)


223
224
225
# File 'lib/railspress.rb', line 223

def cms_enabled?
  configuration.cms_enabled
end

.configurationObject



197
198
199
# File 'lib/railspress.rb', line 197

def configuration
  @configuration ||= Configuration.new
end

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

Yields:



201
202
203
204
# File 'lib/railspress.rb', line 201

def configure
  yield(configuration)
  configuration.validate!
end

.current_api_actor_methodObject



282
283
284
# File 'lib/railspress.rb', line 282

def current_api_actor_method
  configuration.current_api_actor_method
end

.current_api_actor_procObject



286
287
288
# File 'lib/railspress.rb', line 286

def current_api_actor_proc
  configuration.current_api_actor_proc
end

.current_author_methodObject



274
275
276
# File 'lib/railspress.rb', line 274

def current_author_method
  configuration.current_author_method
end

.current_author_procObject



278
279
280
# File 'lib/railspress.rb', line 278

def current_author_proc
  configuration.current_author_proc
end

.default_index_columnsObject



324
325
326
# File 'lib/railspress.rb', line 324

def default_index_columns
  configuration.default_index_columns
end

.entity_for(route_key) ⇒ Object



341
342
343
# File 'lib/railspress.rb', line 341

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

.entity_registered?(route_key) ⇒ Boolean

Returns:

  • (Boolean)


345
346
347
# File 'lib/railspress.rb', line 345

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

.focal_points_enabled?Boolean

Returns:

  • (Boolean)


219
220
221
# File 'lib/railspress.rb', line 219

def focal_points_enabled?
  configuration.focal_points_enabled
end

.image_contextsObject



227
228
229
# File 'lib/railspress.rb', line 227

def image_contexts
  configuration.image_contexts
end

.inline_editing_checkObject



332
333
334
# File 'lib/railspress.rb', line 332

def inline_editing_check
  configuration.inline_editing_check
end

.post_image_variantsObject



328
329
330
# File 'lib/railspress.rb', line 328

def post_image_variants
  configuration.post_image_variants
end

.post_images_enabled?Boolean

Returns:

  • (Boolean)


215
216
217
# File 'lib/railspress.rb', line 215

def post_images_enabled?
  configuration.post_images_enabled
end

.public_base_urlObject



312
313
314
# File 'lib/railspress.rb', line 312

def public_base_url
  configuration.public_base_url
end

.registered_entitiesObject

Entity registry convenience accessors



337
338
339
# File 'lib/railspress.rb', line 337

def registered_entities
  configuration.registered_entities
end

.reset_configuration!Object



206
207
208
# File 'lib/railspress.rb', line 206

def reset_configuration!
  @configuration = Configuration.new
end

.resolved_admin_auth_concernObject



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

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



316
317
318
# File 'lib/railspress.rb', line 316

def words_per_minute
  configuration.words_per_minute
end