Skip to content

Instantly share code, notes, and snippets.

@chrisbranson
Forked from jopotts/default_values.rb
Created March 28, 2014 18:09
Show Gist options
  • Save chrisbranson/9839239 to your computer and use it in GitHub Desktop.
Save chrisbranson/9839239 to your computer and use it in GitHub Desktop.

Revisions

  1. @jopotts jopotts revised this gist Jan 30, 2014. 2 changed files with 12 additions and 9 deletions.
    7 changes: 6 additions & 1 deletion default_values.rb
    Original file line number Diff line number Diff line change
    @@ -1,7 +1,12 @@
    module DefaultValues

    def has_default_values
    def has_default_values(default_values = {})

    cattr_accessor :default_values
    self.default_values = default_values

    after_initialize :assign_default_values

    include InstanceMethods
    end

    14 changes: 6 additions & 8 deletions some_model.rb
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,11 @@
    # Example usage
    class SomeModel < ActiveRecord::Base

    has_default_values

    private

    def default_values
    { title: "Default",
    flag_yn: false }
    end
    has_default_values(
    title: "Default",
    flag_yn: false
    )

    ..

    end
  2. @jopotts jopotts created this gist Nov 4, 2013.
    19 changes: 19 additions & 0 deletions default_values.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,19 @@
    module DefaultValues

    def has_default_values
    after_initialize :assign_default_values
    include InstanceMethods
    end

    module InstanceMethods
    private

    def assign_default_values
    return unless new_record?
    default_values.each do |key, value|
    self[key] = value if self[key].nil?
    end
    end
    end

    end
    2 changes: 2 additions & 0 deletions extend_active_record.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,2 @@
    # In config/initializers
    ActiveRecord::Base.extend DefaultValues
    13 changes: 13 additions & 0 deletions some_model.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    # Example usage
    class SomeModel < ActiveRecord::Base

    has_default_values

    private

    def default_values
    { title: "Default",
    flag_yn: false }
    end

    end