Sha256: 7402f882856a5cbe6491b52f23f1149a8efa4d5a1bf2d42888cc218b0322dd9d
Contents?: true
Size: 1.37 KB
Versions: 1
Compression:
Stored size: 1.37 KB
Contents
require 'rails/generators' require 'rails_newsfeed/feed_table' module RailsNewsfeed class ModelGenerator < Rails::Generators::NamedBase class_option :type_of_id, type: :string, require: false def process case behavior when :invoke invoke when :revoke revoke end end private def invoke t = options.key?('type_of_id') ? options['type_of_id'] : 'bigint' RailsNewsfeed::Connection.exec_cql("DROP TABLE IF EXISTS #{file_name}") RailsNewsfeed::Connection.exec_cql("CREATE TABLE #{file_name} (id #{t}, activity_id uuid, activity_content text, activity_object text, activity_time timestamp, PRIMARY KEY ((id), activity_id)) WITH CLUSTERING ORDER BY (activity_id DESC)") RailsNewsfeed::Connection.exec_cql("INSERT INTO #{RailsNewsfeed::FeedTable.table_name} (table_class) VALUES ('#{class_name}')") create_file "app/models/#{file_name}.rb", <<-FILE class #{class_name} < RailsNewsfeed::NewsfeedModel type_of_id :#{t} end FILE end def revoke RailsNewsfeed::Connection.exec_cql("DROP TABLE IF EXISTS #{file_name}") RailsNewsfeed::Connection.exec_cql("DELETE FROM #{RailsNewsfeed::FeedTable.table_name} WHERE table_class='#{class_name}'") @behavior = :invoke remove_file "app/models/#{file_name}.rb" end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_newsfeed-0.0.4 | lib/generators/rails_newsfeed/model_generator.rb |