ruby_lunardate 0.0.2 → 0.0.3
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/lib/ruby_lunardate.rb +22 -4
- data/test/test_ruby_lunardate.rb +8 -0
- metadata +1 -1
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d318602ae19da19f9def05abac553fce2b683ec5
         | 
| 4 | 
            +
              data.tar.gz: cec1f854a1a758b80570de28afb76880caf1fd3d
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 79de1c3243893ffcef37729b39b601fff845e9ff1b491262dd91aec3c4c798a137d7d06fc1db04aa9f6d56790281088aad8519662e221e1f42624c1f29b185dd
         | 
| 7 | 
            +
              data.tar.gz: 2d79334973cde61e908c1783c9c607157139be534ddb31e8280d4bc9e53d7c9daffdb3df4d6028a8dad3e786cca439f061a50e81ad9350223b3954c9ebb61482
         | 
    
        data/lib/ruby_lunardate.rb
    CHANGED
    
    | @@ -167,6 +167,17 @@ LUNARDAYS_FOR_MONTHTYPE = { | |
| 167 167 | 
             
              6 => [60, 30, 30]
         | 
| 168 168 | 
             
            }
         | 
| 169 169 |  | 
| 170 | 
            +
            class Date
         | 
| 171 | 
            +
              def to_lunar
         | 
| 172 | 
            +
                days = LunarDate.get_dates(self)
         | 
| 173 | 
            +
                return LunarDate.from_days(days, self.class)
         | 
| 174 | 
            +
              end
         | 
| 175 | 
            +
             | 
| 176 | 
            +
              def to_lunar!
         | 
| 177 | 
            +
                self.self.to_lunar
         | 
| 178 | 
            +
              end
         | 
| 179 | 
            +
            end
         | 
| 180 | 
            +
             | 
| 170 181 | 
             
            class LunarDate
         | 
| 171 182 | 
             
              attr_accessor :year, :month, :day, :is_leap_month
         | 
| 172 183 |  | 
| @@ -196,11 +207,15 @@ class LunarDate | |
| 196 207 | 
             
                return CALENDAR_YEAR_INFO_MAP[@calendar_symbol]
         | 
| 197 208 | 
             
              end
         | 
| 198 209 |  | 
| 210 | 
            +
              def self.get_dates(solar_date)
         | 
| 211 | 
            +
              	return (solar_date - @start_date).to_i
         | 
| 212 | 
            +
              end
         | 
| 213 | 
            +
             | 
| 199 214 | 
             
              def self.to_lunar(year, month, day, locale = :ko)
         | 
| 200 215 | 
             
                solar_date = Date.new(year, month, day)
         | 
| 201 | 
            -
                days = (solar_date | 
| 216 | 
            +
                days = self.get_dates(solar_date)
         | 
| 202 217 | 
             
                # @calendar_symbol = locale
         | 
| 203 | 
            -
                return self.from_days(days)
         | 
| 218 | 
            +
                return self.from_days(days, self)
         | 
| 204 219 | 
             
              end
         | 
| 205 220 |  | 
| 206 221 | 
             
              def self.is_in_this_days(days, left_days)
         | 
| @@ -211,7 +226,7 @@ class LunarDate | |
| 211 226 | 
             
                return self.is_in_this_days(days, left_days) == false
         | 
| 212 227 | 
             
              end
         | 
| 213 228 |  | 
| 214 | 
            -
              def self.from_days(days)
         | 
| 229 | 
            +
              def self.from_days(days, type)
         | 
| 215 230 | 
             
                start_year = 1900
         | 
| 216 231 | 
             
                target_month = 0
         | 
| 217 232 | 
             
                is_leap_month = false
         | 
| @@ -244,6 +259,9 @@ class LunarDate | |
| 244 259 | 
             
                  start_year += 1
         | 
| 245 260 | 
             
                end
         | 
| 246 261 |  | 
| 247 | 
            -
                 | 
| 262 | 
            +
                target_date = type.new(start_year, target_month + 1, days + 1)
         | 
| 263 | 
            +
                target_date.is_leap_month = is_leap_month if type == self
         | 
| 264 | 
            +
             | 
| 265 | 
            +
                return target_date
         | 
| 248 266 | 
             
              end
         | 
| 249 267 | 
             
            end
         | 
    
        data/test/test_ruby_lunardate.rb
    CHANGED
    
    | @@ -76,4 +76,12 @@ class TestRubyLunarDate < Minitest::Test | |
| 76 76 | 
             
                assert_equal(date.day, 19)
         | 
| 77 77 | 
             
                assert_equal(date.is_leap_month, false)
         | 
| 78 78 | 
             
              end
         | 
| 79 | 
            +
             | 
| 80 | 
            +
              def test_to_lunar_from_Date_class_variable_20150908
         | 
| 81 | 
            +
              	date = Date.new(2015,9,8)
         | 
| 82 | 
            +
              	date = date.to_lunar
         | 
| 83 | 
            +
              	assert_equal(date.year, 2015)
         | 
| 84 | 
            +
                assert_equal(date.month, 7)
         | 
| 85 | 
            +
                assert_equal(date.day, 26)
         | 
| 86 | 
            +
              end
         | 
| 79 87 | 
             
            end
         |