Sha256: ef87bb230ba6c9cf0f7bfa02cd59df63996d8403210acde2f7a885de62462607
Contents?: true
Size: 1.02 KB
Versions: 1
Compression:
Stored size: 1.02 KB
Contents
# frozen_string_literal: true module Consent class DSL # :nodoc: attr_reader :subject def initialize(subject, defaults) @subject = subject @defaults = defaults end def with_defaults(new_defaults, &block) DSL.build(@subject, @defaults.merge(new_defaults), &block) end # rubocop:disable Lint/UnusedBlockArgument, Security/Eval def eval_view(key, label, collection_conditions) view key, label do |user| eval(collection_conditions) end end # rubocop:enable Lint/UnusedBlockArgument, Security/Eval def view(key, label, instance = nil, collection = nil, &block) collection ||= block @subject.views[key] = View.new(key, label, instance, collection) end def action(key, label, options = {}) @subject.actions << Action.new(@subject, key, label, @defaults.merge(options)) end def self.build(subject, defaults = {}, &block) DSL.new(subject, defaults).instance_eval(&block) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
consent-1.0.1 | lib/consent/dsl.rb |