Class: StaticBlocks::Snippet
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- StaticBlocks::Snippet
- Defined in:
- app/models/static_blocks/snippet.rb
Class Method Summary collapse
- .import(file) ⇒ Object
- .import_translations(file) ⇒ Object
- .to_csv(options = {}) ⇒ Object
- .translations_to_csv(options = {}) ⇒ Object
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( = {}) snippets = self.connection.select_all('select * from static_blocks_snippets') snippets_column_names = snippets.first.keys CSV.generate() 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( = {}) translations = self.connection.select_all('select * from static_blocks_snippet_translations') translation_column_names = translations.first.keys CSV.generate() do |csv| csv << translation_column_names translations.each do |t| csv << t.values_at(*translation_column_names) end end end |
Instance Method Details
#clear_cache ⇒ Object
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_s ⇒ Object
9 10 11 |
# File 'app/models/static_blocks/snippet.rb', line 9 def to_s content end |