Class: StaticBlocks::Snippet

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/static_blocks/snippet.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.import(file) ⇒ Object



39
40
41
42
43
44
45
46
# File 'app/models/static_blocks/snippet.rb', line 39

def self.import(file)
  CSV.foreach(file.path, headers: true) do |row|
    snippet = find_by_title(row["title"]) || new
    snippet.attributes = row.to_hash.slice(*accessible_attributes)
    snippet.id = row['id']
    snippet.save!
  end
end

.import_translations(file) ⇒ Object



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'app/models/static_blocks/snippet.rb', line 48

def self.import_translations(file)
  CSV.foreach(file.path, headers: true) do |row|
    # find translation
    raw_sql = "SELECT * FROM static_blocks_snippet_translations WHERE id=#{row['id']}"
    translation = ActiveRecord::Base.connection.execute(raw_sql)
    if translation.present?
      # update existing translation
      raw_sql = "
      UPDATE static_blocks_snippet_translations
      SET static_blocks_snippet_id=%d, locale='%s', content='%s', created_at='%s', updated_at='%s'
      WHERE id=%d" % [row['static_blocks_snippet_id'], row['locale'], row['content'], row['created_at'], row['updated_at'], row['id']]
    else
      # create new translation
      raw_sql = "
      INSERT INTO static_blocks_snippet_translations
      ('id', 'static_blocks_snippet_id', 'locale', 'content', 'created_at', 'updated_at') VALUES
      ('%d', '%d', '%s', '%s', '%s', '%s')" % [row['id'], row['static_blocks_snippet_id'], row['locale'], row['content'], row['created_at'], row['updated_at']]
    end
    ActiveRecord::Base.connection.execute(raw_sql)
  end
end

.to_csv(options = {}) ⇒ Object



17
18
19
20
21
22
23
24
25
26
# File 'app/models/static_blocks/snippet.rb', line 17

def self.to_csv(options = {})
  snippets = self.connection.select_all('select * from static_blocks_snippets')
  snippets_column_names = snippets.first.keys
  CSV.generate(options) do |csv|
    csv << snippets_column_names
    snippets.each do |s|
      csv << s.values_at(*snippets_column_names)
    end
  end
end

.translations_to_csv(options = {}) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'app/models/static_blocks/snippet.rb', line 28

def self.translations_to_csv(options = {})
  translations = self.connection.select_all('select * from static_blocks_snippet_translations')
  translation_column_names = translations.first.keys
  CSV.generate(options) do |csv|
    csv << translation_column_names
    translations.each do |t|
      csv << t.values_at(*translation_column_names)
    end
  end
end

Instance Method Details

#clear_cacheObject



13
14
15
# File 'app/models/static_blocks/snippet.rb', line 13

def clear_cache
  Rails.cache.delete("snippet::"+I18n.locale.to_s+"::"+title)
end

#to_sObject



9
10
11
# File 'app/models/static_blocks/snippet.rb', line 9

def to_s
  content
end