Skip to content

paviliondev/discourse_subscription_client

Repository files navigation

Discourse Subscription Client Gem

This gem is only for use with Discourse plugins. It provides subscription client support to a Discourse plugin, primarily for use with the Discourse Subscription Server plugin.

Installation

Add this line to your plugin's plugin.rb file

gem "discourse_subscription_client", "0.1.0.pre11", require_name: "discourse_subscription_client"

Usage

The gem API is accessible through the DiscourseSubscriptionClient class. Supported methods are described below.

find_subscriptions

DiscourseSubscriptionClient.find_subscriptions(resource_name)

Arguments

resource_name

The name of a resource defined in the discourse-subscription-server plugin's subscription_server_subscriptions setting.

Returns

Returns a DiscourseSubscriptionClient::Subscriptions::Result object, containing the supplier, resource and any active subscriptions.

Example

result = DiscourseSubscriptionClient.find_subscriptions("discourse-custom-wizard")
result.supplier # <DiscourseSubscriptionSupplier name="Pavilion" ...>
result.resource # <DiscourseSubscriptionResource name="discourse-custom-wizard" ...>
result.subscriptions # [<DiscourseSubscriptionSubscription product_name="Business" ...>]

Development

Tests

The gem has to create a dummy Discourse environment when running specs, so there are a few testing quirks.

Discourse migrations go in db/migrate as normal. They are including in the rails migrations_paths in lib/discourse_subscription_client/engine.rb.

If you add new migrations, run test migrations as normal (from the root of the gem)

RAILS_ENV=test rake db:drop db:create db:migrate

If you're not adding new migrations you only need to load the schema. If you are running migrations you need to also load the schema (in addition to running the migrations)

RAILS_ENV=test bundle exec rake db:schema:load

License

The gem is available as open source under the terms of the GNU GPL v2 License.