ismasan-ar_publish_control 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +6 -4
- data/ar_publish_control.gemspec +1 -1
- data/lib/ar_publish_control.rb +5 -1
- data/spec/ar_publish_control_spec.rb +9 -0
- metadata +1 -1
    
        data/README.rdoc
    CHANGED
    
    | @@ -37,11 +37,11 @@ Adds published, unpublished and published_only(boolean) named_scopes to your mod | |
| 37 37 | 
             
                   <%= f.check_box :is_published %>
         | 
| 38 38 | 
             
                 </p>
         | 
| 39 39 | 
             
                 <p>
         | 
| 40 | 
            -
                   <%= f.label : | 
| 40 | 
            +
                   <%= f.label :publish_at, "From" %>
         | 
| 41 41 | 
             
                   <%= f.date_select :publish_at %>
         | 
| 42 42 | 
             
                 </p>
         | 
| 43 43 | 
             
                 <p>
         | 
| 44 | 
            -
                   <%= f.label : | 
| 44 | 
            +
                   <%= f.label :unpublish_at, "To" %>
         | 
| 45 45 | 
             
                   <%= f.date_select :unpublish_at %>
         | 
| 46 46 | 
             
                 </p>
         | 
| 47 47 | 
             
                 ...
         | 
| @@ -54,6 +54,7 @@ Adds published, unpublished and published_only(boolean) named_scopes to your mod | |
| 54 54 |  | 
| 55 55 | 
             
               def show
         | 
| 56 56 | 
             
                 @post = Post.published.find(params[:id])
         | 
| 57 | 
            +
                 @post.published? # => true
         | 
| 57 58 | 
             
               end
         | 
| 58 59 |  | 
| 59 60 | 
             
               # You can nest scopes:
         | 
| @@ -65,10 +66,11 @@ Adds published, unpublished and published_only(boolean) named_scopes to your mod | |
| 65 66 | 
             
               @posts = Post.unpublished
         | 
| 66 67 |  | 
| 67 68 | 
             
               # All posts if logged_in?, only published otherwise
         | 
| 68 | 
            -
               @posts = Post.published_only?( logged_in? ).paginate(:page => params[:page])
         | 
| 69 | 
            +
               @posts = Post.published_only?( !logged_in? ).paginate(:page => params[:page])
         | 
| 69 70 |  | 
| 70 71 | 
             
               # Unpublish
         | 
| 71 72 | 
             
               @post.unpublish!
         | 
| 73 | 
            +
               @post.unpublished? # => true
         | 
| 72 74 |  | 
| 73 75 | 
             
               # You can access the ones marked as "published" but with a publish date in the future
         | 
| 74 76 | 
             
               @upcoming_post = Post.upcoming
         | 
| @@ -78,7 +80,7 @@ Adds published, unpublished and published_only(boolean) named_scopes to your mod | |
| 78 80 | 
             
               @expired_posts = Post.expired
         | 
| 79 81 | 
             
               @expired_posts.first.expired? # => true
         | 
| 80 82 |  | 
| 81 | 
            -
            All of these named_scopes can be  | 
| 83 | 
            +
            All of these named_scopes can be chained with other finder conditions and paginated with will_paginate
         | 
| 82 84 |  | 
| 83 85 | 
             
            == REQUIREMENTS:
         | 
| 84 86 |  | 
    
        data/ar_publish_control.gemspec
    CHANGED
    
    
    
        data/lib/ar_publish_control.rb
    CHANGED
    
    | @@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__)) unless | |
| 2 2 | 
             
              $:.include?(File.dirname(__FILE__)) || $:.include?(File.expand_path(File.dirname(__FILE__)))
         | 
| 3 3 |  | 
| 4 4 | 
             
            module ArPublishControl
         | 
| 5 | 
            -
              VERSION = '0.0. | 
| 5 | 
            +
              VERSION = '0.0.5'
         | 
| 6 6 | 
             
              # This is a gem version of http://github.com/avdgaag/acts_as_publishable ( a Rails plugin)
         | 
| 7 7 | 
             
              # Thanks to Avdaag for his awesome, super readable code which I ripped off for this gem.
         | 
| 8 8 | 
             
              #
         | 
| @@ -145,6 +145,10 @@ module ArPublishControl | |
| 145 145 |  | 
| 146 146 | 
             
                module InstanceMethods
         | 
| 147 147 |  | 
| 148 | 
            +
                  def publish_at
         | 
| 149 | 
            +
                    read_attribute(:publish_at) || Time.now
         | 
| 150 | 
            +
                  end
         | 
| 151 | 
            +
                  
         | 
| 148 152 | 
             
                  # Publish at is NOW if not set
         | 
| 149 153 | 
             
                  def init_publish_date
         | 
| 150 154 | 
             
                    write_attribute(:publish_at, Time.now) if publish_at.nil?
         | 
| @@ -160,3 +160,12 @@ describe Post, 'expired' do | |
| 160 160 | 
             
                Post.expired.size.should == 2
         | 
| 161 161 | 
             
              end
         | 
| 162 162 | 
             
            end
         | 
| 163 | 
            +
             | 
| 164 | 
            +
            describe "new record" do
         | 
| 165 | 
            +
              it "should default to Time.now" do
         | 
| 166 | 
            +
                d = Time.now
         | 
| 167 | 
            +
                Time.stub!(:now).and_return d
         | 
| 168 | 
            +
                a = Article.new
         | 
| 169 | 
            +
                a.publish_at.should == d
         | 
| 170 | 
            +
              end
         | 
| 171 | 
            +
            end
         |