Module: Federails
- Defined in:
- lib/federails.rb,
lib/federails/engine.rb,
lib/federails/version.rb,
lib/federails/utils/host.rb,
lib/federails/utils/actor.rb,
app/models/federails/actor.rb,
lib/federails/utils/object.rb,
lib/federails/configuration.rb,
app/models/federails/activity.rb,
app/models/federails/following.rb,
lib/federails/utils/json_request.rb,
app/jobs/federails/application_job.rb,
app/helpers/federails/server_helper.rb,
app/jobs/federails/notify_inbox_job.rb,
lib/federails/data_transformer/note.rb,
app/models/concerns/federails/has_uuid.rb,
app/models/federails/application_record.rb,
app/policies/federails/federails_policy.rb,
app/mailers/federails/application_mailer.rb,
lib/federails/maintenance/actors_updater.rb,
app/models/concerns/federails/data_entity.rb,
app/models/concerns/federails/actor_entity.rb,
app/policies/federails/client/actor_policy.rb,
app/policies/federails/server/actor_policy.rb,
app/controllers/federails/client_controller.rb,
app/controllers/federails/server_controller.rb,
app/policies/federails/client/activity_policy.rb,
app/policies/federails/server/activity_policy.rb,
app/policies/federails/client/following_policy.rb,
app/policies/federails/server/following_policy.rb,
app/policies/federails/server/publishable_policy.rb,
app/controllers/federails/client/actors_controller.rb,
app/controllers/federails/server/actors_controller.rb,
lib/generators/federails/install/install_generator.rb,
app/controllers/federails/server/nodeinfo_controller.rb,
app/controllers/federails/server/published_controller.rb,
app/models/concerns/federails/handles_delete_requests.rb,
app/controllers/federails/client/activities_controller.rb,
app/controllers/federails/client/followings_controller.rb,
app/controllers/federails/server/activities_controller.rb,
app/controllers/federails/server/followings_controller.rb,
app/controllers/federails/server/web_finger_controller.rb,
lib/generators/federails/copy_factories/copy_factories_generator.rb,
lib/generators/federails/copy_client_views/copy_client_views_generator.rb,
lib/generators/federails/copy_client_policies/copy_client_policies_generator.rb
Overview
This module includes classes and methods related to Ruby on Rails: engine configuration, models, controllers, etc.
Defined Under Namespace
Modules: ActorEntity, Client, Configuration, DataEntity, DataTransformer, HandlesDeleteRequests, HasUuid, Maintenance, Server, ServerHelper, Utils Classes: Activity, Actor, ApplicationJob, ApplicationMailer, ApplicationRecord, ClientController, CopyClientPoliciesGenerator, CopyClientViewsGenerator, CopyFactoriesGenerator, Engine, FederailsPolicy, Following, InstallGenerator, NotifyInboxJob, ServerController
Constant Summary collapse
- DEFAULT_DATA_FILTER_METHOD =
:handle_federated_object?
- VERSION =
'0.7.0'.freeze
- @@configuration =
Configuration
Class Method Summary collapse
-
.actor_entity(class_or_instance) ⇒ Hash
The configuration for the given actor entity.
-
.actor_entity?(class_or_instance) ⇒ Boolean
True if the given model is a possible actor.
-
.config_from(name) ⇒ Object
rubocop:disable Metrics/MethodLength.
- .configure {|@@configuration| ... } ⇒ Object
-
.data_entity?(class_or_instance) ⇒ Boolean
True if the given model is a possible data entity.
-
.data_entity_configuration(class_or_instance) ⇒ Hash
The configuration for the given data entity.
-
.data_entity_handled_on(route_path_segment) ⇒ Hash?
Finds configured data type from route path segment.
-
.data_entity_handler_for(hash) ⇒ Hash?
Finds the configured handler for a given ActivityPub object.
-
.data_entity_handlers_for(type) ⇒ Array
Finds configured data types from ActivityPub type.
Class Method Details
.actor_entity(class_or_instance) ⇒ Hash
Returns The configuration for the given actor entity.
55 56 57 58 59 60 |
# File 'lib/federails.rb', line 55 def actor_entity(class_or_instance) klass = class_or_instance_name(class_or_instance) raise "#{klass} is not a configured actor entity" unless Configuration.actor_types.key?(klass) Configuration.actor_types[klass] end |
.actor_entity?(class_or_instance) ⇒ Boolean
Returns True if the given model is a possible actor.
50 51 52 |
# File 'lib/federails.rb', line 50 def actor_entity?(class_or_instance) Configuration.actor_types.key? class_or_instance_name(class_or_instance) end |
.config_from(name) ⇒ Object
rubocop:disable Metrics/MethodLength
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/federails.rb', line 28 def config_from(name) # rubocop:disable Metrics/MethodLength config = Rails.application.config_for name [ :app_name, :app_version, :force_ssl, :site_host, :site_port, :enable_discovery, :open_registrations, :app_layout, :server_routes_path, :client_routes_path, :remote_follow_url_method, :base_client_controller, ].each { |key| Configuration.send :"#{key}=", config[key] if config.key?(key) } end |
.configure {|@@configuration| ... } ⇒ Object
24 25 26 |
# File 'lib/federails.rb', line 24 def configure yield @@configuration end |
.data_entity?(class_or_instance) ⇒ Boolean
Returns True if the given model is a possible data entity.
63 64 65 |
# File 'lib/federails.rb', line 63 def data_entity?(class_or_instance) Configuration.data_types.key? class_or_instance_name(class_or_instance) end |
.data_entity_configuration(class_or_instance) ⇒ Hash
Returns The configuration for the given data entity.
104 105 106 107 108 109 |
# File 'lib/federails.rb', line 104 def data_entity_configuration(class_or_instance) klass = class_or_instance_name(class_or_instance) raise "#{klass} is not a configured data entity" unless Configuration.data_types.key?(klass) Configuration.data_types[klass] end |
.data_entity_handled_on(route_path_segment) ⇒ Hash?
Finds configured data type from route path segment
98 99 100 101 |
# File 'lib/federails.rb', line 98 def data_entity_handled_on(route_path_segment) route_path_segment = route_path_segment.to_sym Federails::Configuration.data_types.find { |_, v| v[:route_path_segment] == route_path_segment }&.last end |
.data_entity_handler_for(hash) ⇒ Hash?
Finds the configured handler for a given ActivityPub object
83 84 85 86 87 88 89 |
# File 'lib/federails.rb', line 83 def data_entity_handler_for(hash) data_entity_handlers_for(hash['type']).find do |handler| return true if !handler[:filter_method] && !handler[:class].respond_to?(DEFAULT_DATA_FILTER_METHOD) handler[:class].send(handler[:filter_method] || DEFAULT_DATA_FILTER_METHOD, hash) end end |
.data_entity_handlers_for(type) ⇒ Array
Finds configured data types from ActivityPub type
74 75 76 |
# File 'lib/federails.rb', line 74 def data_entity_handlers_for(type) Federails::Configuration.data_types.select { |_, v| v[:handles] == type }.map(&:last) end |