Sha256: 974304ac4815652b71e63c8148fc334fe3eb39a5376815f3040a1e77d869e880
Contents?: true
Size: 947 Bytes
Versions: 2
Compression:
Stored size: 947 Bytes
Contents
require "whitelist_scope/version" module WhitelistScope attr_reader :whitelist def whitelist_scope(name, body) @whitelist ||= [] name = name.to_sym if respond_to?(name) raise ArgumentError, "Could not create scope, There is an existing method with this name." end scope name, body @whitelist << name end def call_whitelisted_scope(*scope_names) existing_scope = nil scope_names.flatten.each do |scope_name| existing_scope = call_scope_by_name(existing_scope, scope_name) end existing_scope end private def call_scope_by_name(existing_scope, scope_name) scope_name = scope_name.to_sym unless scope_name.nil? if @whitelist.include? scope_name if existing_scope existing_scope.send(scope_name) else send(scope_name) end else raise NoMethodError, "The scope you provided, '#{scope_name}', does not exist." end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
whitelist_scope-0.1.4 | lib/whitelist_scope.rb |
whitelist_scope-0.1.3 | lib/whitelist_scope.rb |