Module: SimpleFeed
- Defined in:
- lib/simplefeed.rb,
lib/simplefeed/dsl.rb,
lib/simplefeed/feed.rb,
lib/simplefeed/event.rb,
lib/simplefeed/version.rb,
lib/simplefeed/key/type.rb,
lib/simplefeed/response.rb,
lib/simplefeed/providers.rb,
lib/simplefeed/key/template.rb,
lib/simplefeed/activity/base.rb,
lib/simplefeed/dsl/formatter.rb,
lib/simplefeed/providers/key.rb,
lib/simplefeed/dsl/activities.rb,
lib/simplefeed/providers/hash.rb,
lib/simplefeed/providers/proxy.rb,
lib/simplefeed/providers/redis.rb,
lib/simplefeed/providers/redis/stats.rb,
lib/simplefeed/providers/redis/driver.rb,
lib/simplefeed/providers/base/provider.rb,
lib/simplefeed/providers/hash/provider.rb,
lib/simplefeed/providers/hash/paginator.rb,
lib/simplefeed/providers/redis/provider.rb
Overview
Main namespace module for the SimpleFeed gem. It provides several shortcuts and entry points into the library, such as ability to define and fetch new feeds via define, and so on.
Defined Under Namespace
Modules: Activity, DSL, Key, Providers Classes: Event, Feed, Response
Constant Summary collapse
- VERSION =
'2.0.2'
Class Method Summary collapse
-
.class_attributes(klass) ⇒ Object
Returns list of class attributes based on the setter methods.
-
.define(name, **options, &block) ⇒ Feed
The feed with the given name, and defined via options and a block.
-
.get(name) ⇒ Feed
The pre-defined feed with the given name.
-
.method_missing(name, *args, &block) ⇒ Object
Forward all other method calls to the Provider.
-
.provider(provider_name, *args, **opts, &block) ⇒ Provider
A factory method that constructs an instance of a provider based on the provider name and arguments.
-
.registry ⇒ Hash<Symbol, Feed>
The registry of the defined feeds.
-
.symbolize!(hash) ⇒ Object
Shortcut method to symbolize hash keys, using Hashie::Extensions.
Class Method Details
.class_attributes(klass) ⇒ Object
Returns list of class attributes based on the setter methods. Not fool-proof, but works in this context.
64 65 66 |
# File 'lib/simplefeed.rb', line 64 def self.class_attributes(klass) klass.instance_methods.grep(%r{[^=!]=$}).map { |m| m.to_s.gsub(/=/, '').to_sym } end |
.define(name, **options, &block) ⇒ Feed
Returns the feed with the given name, and defined via options and a block.
28 29 30 31 32 33 34 35 36 |
# File 'lib/simplefeed.rb', line 28 def define(name, **, &block) name = name.to_sym unless name.is_a?(Symbol) feed = registry[name] ? registry[name] : SimpleFeed::Feed.new(name) feed.configure() do block.call(feed) if block end registry[name] = feed feed end |
.get(name) ⇒ Feed
Returns the pre-defined feed with the given name.
39 40 41 |
# File 'lib/simplefeed.rb', line 39 def get(name) registry[name.to_sym] end |
.method_missing(name, *args, &block) ⇒ Object
Forward all other method calls to the Provider
57 58 59 |
# File 'lib/simplefeed.rb', line 57 def method_missing(name, *args, &block) registry[name] || super end |
.provider(provider_name, *args, **opts, &block) ⇒ Provider
A factory method that constructs an instance of a provider based on the provider name and arguments.
50 51 52 53 54 |
# File 'lib/simplefeed.rb', line 50 def provider(provider_name, *args, **opts, &block) provider_class = SimpleFeed::Providers.registry[provider_name] raise ArgumentError, "No provider named #{provider_name} was found, #{SimpleFeed::Providers.registry.inspect}" unless provider_class provider_class.new(*args, **opts, &block) end |
.registry ⇒ Hash<Symbol, Feed>
Returns the registry of the defined feeds.
20 21 22 |
# File 'lib/simplefeed.rb', line 20 def registry @registry end |
.symbolize!(hash) ⇒ Object
Shortcut method to symbolize hash keys, using Hashie::Extensions
69 70 71 |
# File 'lib/simplefeed.rb', line 69 def self.symbolize!(hash) Hashie::Extensions::SymbolizeKeys.symbolize_keys!(hash) end |