Class: Supertag::Moneytag
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Supertag::Moneytag
- Defined in:
- lib/supertag/moneytag.rb
Constant Summary collapse
- MONEYTAG_REGEX =
TODO Beef up the regex (ie.:what if content is HTML) this is how Twitter does it: github.com/twitter/twitter-text-rb/blob/master/lib/twitter-text/regex.rb
/(?:\s|^)(\$(?!(?:\d+|\w+?_|_\w+?)(?:\s|$))([a-z0-9\-_]+))/i
Class Method Summary collapse
-
.clean_orphans ⇒ Object
From DB.
- .find_by_name(name) ⇒ Object
- .find_or_create_by_name(name, &block) ⇒ Object
Instance Method Summary collapse
- #moneytaggables ⇒ Object
- #moneytagged_ids_by_types ⇒ Object
- #moneytagged_ids_for_type(type) ⇒ Object
- #moneytagged_types ⇒ Object
- #name ⇒ Object
- #name=(val) ⇒ Object
- #to_s ⇒ Object
Class Method Details
.clean_orphans ⇒ Object
From DB
56 57 58 59 60 |
# File 'lib/supertag/moneytag.rb', line 56 def self.clean_orphans # From DB # TODO Make this method call a single SQL query orphans = self.all.select { |h| h.moneytaggables.size == 0 } orphans.map(&:destroy) end |
.find_by_name(name) ⇒ Object
14 15 16 |
# File 'lib/supertag/moneytag.rb', line 14 def self.find_by_name(name) Moneytag.where("lower(name) =?", name.downcase).first end |
.find_or_create_by_name(name, &block) ⇒ Object
18 19 20 |
# File 'lib/supertag/moneytag.rb', line 18 def self.find_or_create_by_name(name, &block) find_by_name(name) || create(name: name, &block) end |
Instance Method Details
#moneytaggables ⇒ Object
31 32 33 |
# File 'lib/supertag/moneytag.rb', line 31 def moneytaggables self.moneytaggings.includes(:moneytaggable).collect { |h| h.moneytaggable } end |
#moneytagged_ids_by_types ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/supertag/moneytag.rb', line 39 def moneytagged_ids_by_types moneytagged_ids ||= {} self.moneytaggings.each do |h| moneytagged_ids[h.moneytaggable_type] ||= Array.new moneytagged_ids[h.moneytaggable_type] << h.moneytaggable_id end moneytagged_ids end |
#moneytagged_ids_for_type(type) ⇒ Object
48 49 50 |
# File 'lib/supertag/moneytag.rb', line 48 def moneytagged_ids_for_type(type) moneytagged_ids_by_types[type] end |
#moneytagged_types ⇒ Object
35 36 37 |
# File 'lib/supertag/moneytag.rb', line 35 def moneytagged_types self.moneytaggings.pluck(:moneytaggable_type).uniq end |
#name ⇒ Object
27 28 29 |
# File 'lib/supertag/moneytag.rb', line 27 def name read_attribute(:name).downcase end |
#name=(val) ⇒ Object
23 24 25 |
# File 'lib/supertag/moneytag.rb', line 23 def name=(val) write_attribute(:name, val.downcase) end |
#to_s ⇒ Object
52 53 54 |
# File 'lib/supertag/moneytag.rb', line 52 def to_s name end |