class Writefully::Taxon

Attributes

existing[R]
incoming[R]
type[R]

Public Class Methods

new(incoming, existing, type) click to toggle source
# File lib/writefully/taxon.rb, line 5
def initialize(incoming, existing, type)
  @incoming = incoming
  @existing = existing
  @type     = type
end

Public Instance Methods

build_attributes(token) click to toggle source
# File lib/writefully/taxon.rb, line 27
def build_attributes token
  type_attribute
    .merge({ name: token, slug: token.parameterize })
end
get_difference() click to toggle source
# File lib/writefully/taxon.rb, line 19
def get_difference
  (parameterized(incoming) - parameterized(existing)).map { |t| t.titleize }
end
non_existing() click to toggle source
# File lib/writefully/taxon.rb, line 11
def non_existing
  get_difference.map { |token| Tag.new(build_attributes(token)) }
end
parameterized(items) click to toggle source
# File lib/writefully/taxon.rb, line 32
def parameterized items
  items.map { |t| t.parameterize }
end
selector() click to toggle source
# File lib/writefully/taxon.rb, line 15
def selector
  @selector ||= type.underscore.to_sym
end
type_attribute() click to toggle source
# File lib/writefully/taxon.rb, line 23
def type_attribute 
  selector == :'writefully/tag' ? { type: nil } : { type: selector.to_s.classify }
end