Sha256: 0201eb2e82535d56abe35b24c33175610e5160eb22e0bf6c9f1d10f364fb9a0e

Contents?: true

Size: 902 Bytes

Versions: 6

Compression:

Stored size: 902 Bytes

Contents

class User < ActiveRecord::Base
  serialize :preferences

  has_many :costumes do
    def with_preset
      condition = where(costumes: { preset: true }).where_values.reduce(:or)
      except(:where).where(condition)
    end
  end

  before_save do
    preferences.each do |key, value|
      case key
      when Preference::BOOLEAN_FIELD_REGEXP
        if !value.is_a?(TrueClass) && !value.is_a?(FalseClass)
          if %w(true 1).include?(value)
            preferences[key] = true
          else
            preferences[key] = false
          end
        end
      end
    end
  end

  # set default preferences from SMALRUBY_HOME/config/config.yml
  def set_default_preferences
    self.preferences = Preference.user_defaults
    h = Preference.to_h
    (Preference.whole_preference_names -
     Preference.admin_preference_names).each do |name|
      preferences[name] = h[name]
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
smalruby-editor-0.4.1-x86-mingw32 app/models/user.rb
smalruby-editor-0.4.2-x86-mingw32 app/models/user.rb
smalruby-editor-0.4.2 app/models/user.rb
smalruby-editor-0.4.1 app/models/user.rb
smalruby-editor-0.4.0-x86-mingw32 app/models/user.rb
smalruby-editor-0.4.0 app/models/user.rb