weekends 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
 - data/README.md +1 -1
 - data/lib/errors/not_kind_of_time.rb +11 -0
 - data/lib/weekend.rb +9 -0
 - data/lib/weekends/nearest.rb +6 -0
 - data/lib/weekends/on_date.rb +5 -0
 - data/lib/weekends/version.rb +1 -1
 - data/weekends.gemspec +1 -1
 - metadata +4 -3
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: ea7a7f37a90fa0c1b94c2bc9cf0e2f73f7e4db19
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: f25ff9d65eeb94b8da2849bf55f59c634366ba25
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: f4d23a7c557c7f5c939a1483565da3dc95afa25211bc8463e7842e524d39943078d92aa82d12709631f6a7e0d7002ce8f0265c38fe459531db751be7319c8552
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 9345795273c896d00121c89e7998eaf0b4e2ee90bf8bb862a25c69adf76f9806db74de1a4407fdc10d65ac40475e2b7598aac0f18c052cf2d793979031d3dfed
         
     | 
    
        data/README.md
    CHANGED
    
    | 
         @@ -1,4 +1,4 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # Weekends [](https://travis-ci.org/GeorgeGorbanev/weekends)
         
     | 
| 
      
 1 
     | 
    
         
            +
            # Weekends [](https://travis-ci.org/GeorgeGorbanev/weekends) [](https://badge.fury.io/rb/weekends)
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            This gem import class `Weekend` that help to identify weekend dates.
         
     | 
| 
       4 
4 
     | 
    
         | 
    
        data/lib/weekend.rb
    CHANGED
    
    | 
         @@ -6,5 +6,14 @@ class Weekend 
     | 
|
| 
       6 
6 
     | 
    
         
             
              class << self
         
     | 
| 
       7 
7 
     | 
    
         
             
                include Weekends::Nearest
         
     | 
| 
       8 
8 
     | 
    
         
             
                include Weekends::OnDate
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                private
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                def time_coerced(date)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  return date if date.instance_of?(Time)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  raise NotKindOfTimeError unless date.respond_to?(:to_time)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
                  date.to_time
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
       9 
18 
     | 
    
         
             
              end
         
     | 
| 
       10 
19 
     | 
    
         
             
            end
         
     | 
    
        data/lib/weekends/nearest.rb
    CHANGED
    
    | 
         @@ -3,18 +3,24 @@ module Weekends 
     | 
|
| 
       3 
3 
     | 
    
         
             
                DAY = 86_400
         
     | 
| 
       4 
4 
     | 
    
         | 
| 
       5 
5 
     | 
    
         
             
                def nearest_saturday(date)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  date = time_coerced(date)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
       6 
8 
     | 
    
         
             
                  wday = date.wday
         
     | 
| 
       7 
9 
     | 
    
         
             
                  diff = wday == 6 ? 7 : 6 - wday
         
     | 
| 
       8 
10 
     | 
    
         
             
                  date + diff * DAY
         
     | 
| 
       9 
11 
     | 
    
         
             
                end
         
     | 
| 
       10 
12 
     | 
    
         | 
| 
       11 
13 
     | 
    
         
             
                def nearest_sunday(date)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  date = time_coerced(date)
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
       12 
16 
     | 
    
         
             
                  wday = date.wday
         
     | 
| 
       13 
17 
     | 
    
         
             
                  diff = wday == 7 ? 7 : 7 - wday
         
     | 
| 
       14 
18 
     | 
    
         
             
                  date + diff * DAY
         
     | 
| 
       15 
19 
     | 
    
         
             
                end
         
     | 
| 
       16 
20 
     | 
    
         | 
| 
       17 
21 
     | 
    
         
             
                def nearest_full_weekends(date)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  date = time_coerced(date)
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       18 
24 
     | 
    
         
             
                  if on_date?(date)
         
     | 
| 
       19 
25 
     | 
    
         
             
                    current_weekend_end = nearest_sunday(date)
         
     | 
| 
       20 
26 
     | 
    
         
             
                    next_saturday = nearest_saturday(current_weekend_end)
         
     | 
    
        data/lib/weekends/on_date.rb
    CHANGED
    
    
    
        data/lib/weekends/version.rb
    CHANGED
    
    
    
        data/weekends.gemspec
    CHANGED
    
    | 
         @@ -8,7 +8,7 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       8 
8 
     | 
    
         
             
              spec.authors       = ['GeorgeGorbanev']
         
     | 
| 
       9 
9 
     | 
    
         
             
              spec.email         = ['GeorgeGorbanev@gmail.com']
         
     | 
| 
       10 
10 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
              spec.summary       = 'Weekend class with methods like # 
     | 
| 
      
 11 
     | 
    
         
            +
              spec.summary       = 'Weekend class with methods like #nearest_weekend, #on_date? and #today?'
         
     | 
| 
       12 
12 
     | 
    
         
             
              spec.homepage      = 'https://github.com/GeorgeGorbanev/weekends'
         
     | 
| 
       13 
13 
     | 
    
         
             
              spec.license       = 'MIT'
         
     | 
| 
       14 
14 
     | 
    
         | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,14 +1,14 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: weekends
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.1
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - GeorgeGorbanev
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: exe
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2017-10- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2017-10-03 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: bundler
         
     | 
| 
         @@ -69,6 +69,7 @@ files: 
     | 
|
| 
       69 
69 
     | 
    
         
             
            - Rakefile
         
     | 
| 
       70 
70 
     | 
    
         
             
            - bin/console
         
     | 
| 
       71 
71 
     | 
    
         
             
            - bin/setup
         
     | 
| 
      
 72 
     | 
    
         
            +
            - lib/errors/not_kind_of_time.rb
         
     | 
| 
       72 
73 
     | 
    
         
             
            - lib/weekend.rb
         
     | 
| 
       73 
74 
     | 
    
         
             
            - lib/weekends/nearest.rb
         
     | 
| 
       74 
75 
     | 
    
         
             
            - lib/weekends/on_date.rb
         
     | 
| 
         @@ -97,5 +98,5 @@ rubyforge_project: 
     | 
|
| 
       97 
98 
     | 
    
         
             
            rubygems_version: 2.6.10
         
     | 
| 
       98 
99 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       99 
100 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       100 
     | 
    
         
            -
            summary: 'Weekend class with methods like # 
     | 
| 
      
 101 
     | 
    
         
            +
            summary: 'Weekend class with methods like #nearest_weekend, #on_date? and #today?'
         
     | 
| 
       101 
102 
     | 
    
         
             
            test_files: []
         
     |