Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Theme < Base
- include ActiveModel::Validations
- attr_accessor :id, :name
- validate :uniqueness_of_theme_name, :on => :create
- def initialize(attrs = {})
- attrs.each do |name, value|
- send("#{name}=", value)
- end
- end
- def uniqueness_of_theme_name
- errors.add(:name, "name is already in use") unless Theme.find_by_name(name).nil?
- end
- def self.find_by_name(name)
- return store.find({ 'name' => "/^#{name}$/i" }).any?
- end
- def self.create(attributes = {})
- theme = Theme.new(attributes)
- theme.save
- return theme
- end
- def persisted?
- id && !id.nil?
- end
- def save()
- # only call validation during create context
- context = persisted? :update : :create
- false if invalid?(context)
- store.save(self)
- true
- end
- def self.create(attrs = {})
- theme = Theme.new(attrs)
- theme.save
- theme
- end
- end
- class Theme
- include ActiveModel::Validations
- include ActiveModel::Conversion
- extend ActiveModel::Naming
- attr_accessor :id, :name
- validates :name, uniqueness: true, on: :create
- def initialize(attributes = {})
- attributes.each do |name, value|
- send("#{name}=", value)
- end
- end
- def persisted?
- false
- end
- end
Add Comment
Please, Sign In to add comment