Sha256: 304895cfb6758c971caa5eafb2292a9e133db090a1c4cbccdeacd25427c04745

Contents?: true

Size: 1.47 KB

Versions: 43

Compression:

Stored size: 1.47 KB

Contents

def restrictive_option?
  Card::FollowOption.restrictive_options.include? codename
end

def description set_card
  set_card.follow_label
end

# follow option methods on the Card class
# FIXME: there's not a great reason to have these on the Card class
module ClassMethods
  # args:
  # position: <Fixnum> (starting at 1, default: add to end)
  def restrictive_follow_opts args
    add_option args, :restrictive
  end

  # args:
  # position: <Fixnum> (starting at 1, default: add to end)
  def follow_opts args
    add_option args, :main
  end

  def follow_test opts={}, &block
    Card::FollowOption.test[get_codename(opts)] = block
  end

  def follower_candidate_ids opts={}, &block
    Card::FollowOption.follower_candidate_ids[get_codename(opts)] = block
  end

  private

  def insert_option pos, item, type
    list = Card::FollowOption.codenames(type)
    list[pos] ? list.insert(pos, item) : (list[pos] = item)
    # If pos > codenames.size in a previous insert then we have a bunch
    # of preceding nils in the array.
    # Hence, we have to overwrite a nil value if we encounter one and
    # can't use insert.
  end

  def add_option opts, type, &_block
    codename = get_codename opts
    if opts[:position]
      insert_option opts[:position] - 1, codename, type
    else
      Card::FollowOption.codenames(type) << codename
    end
    Card::FollowOption.codenames(:all) << codename
  end

  def get_codename opts
    opts[:codename] || name.match(/::(\w+)$/)[1].underscore.to_sym
  end
end

Version data entries

43 entries across 43 versions & 2 rubygems

Version Path
card-mod-follow-0.18.1 set/abstract/follow_option.rb
card-mod-follow-0.18.0 set/abstract/follow_option.rb
card-mod-follow-0.17.0 set/abstract/follow_option.rb
card-mod-follow-0.16.0 set/abstract/follow_option.rb
card-mod-follow-0.15.6 set/abstract/follow_option.rb
card-mod-follow-0.15.5 set/abstract/follow_option.rb
card-mod-follow-0.15.4 set/abstract/follow_option.rb
card-mod-follow-0.15.3 set/abstract/follow_option.rb
card-mod-follow-0.15.2.pre1 set/abstract/follow_option.rb
card-mod-follow-0.15.1.1 set/abstract/follow_option.rb
card-mod-follow-0.15.1 set/abstract/follow_option.rb
card-mod-follow-0.15.0 set/abstract/follow_option.rb
card-mod-follow-0.14.2 set/abstract/follow_option.rb
card-mod-follow-0.14.1 set/abstract/follow_option.rb
card-mod-follow-0.14.0 set/abstract/follow_option.rb
card-mod-follow-0.13.4 set/abstract/follow_option.rb
card-mod-follow-0.13.3 set/abstract/follow_option.rb
card-mod-follow-0.13.2 set/abstract/follow_option.rb
card-mod-follow-0.13.1 set/abstract/follow_option.rb
card-mod-follow-0.13.0 set/abstract/follow_option.rb