solaar 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,4 +1,7 @@
1
1
  source "http://rubygems.org"
2
2
  gemspec
3
3
 
4
- gem 'simplecov', :require => false, :group => :test
4
+ group :test do
5
+ gem 'simplecov', :require => false
6
+ gem 'shoulda'
7
+ end
data/HISTORY.md CHANGED
@@ -1,7 +1,13 @@
1
1
  Changes
2
2
  ================
3
3
 
4
- 0.1.0
4
+ 0.1.1 - February 26, 2012
5
+ -----
6
+
7
+ - Bump the version 0.1.1 adding test file
8
+
9
+
10
+ 0.1.0 - February 24, 2012
5
11
  -----
6
12
 
7
13
  - Initial release
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  Solaar
2
- ===========
2
+ ==========
3
3
 
4
- A Ruby gem to calculate the 24 solaar terms ("ki" in Japanese) until 2099.
4
+ A Ruby gem to calculate the 24 solar terms ("ki" in Japanese) until 2099.
5
5
 
6
6
  Installation
7
7
  -------------
@@ -49,20 +49,15 @@ Usage
49
49
  => [{:date=>"2015-03-06", :ja=>"啓蟄", :en=>"Awakening of insects"},
50
50
  {:date=>"2015-03-21", :ja=>"春分", :en=>"Vernal equinox"}]
51
51
 
52
- pp solaar.calc(year: 2100, term: "春分")
52
+ pp solaar.calc(year: 2012, term: "春分")
53
53
  => [{:date=>"2012-03-20", :ja=>"春分", :en=>"Vernal equinox"}]
54
54
 
55
55
  pp solaar.calc(year: 2100)
56
56
  => "Unable to calculate with the given year"
57
57
 
58
58
 
59
- TODO
60
- ---------
61
-
62
- * Write test
63
-
64
59
  Author
65
- ==========
60
+ ---------
66
61
 
67
62
  azukiwasher, http://twitter.com/azukiwasher, azukiwasher AT higanworks.com
68
63
 
@@ -2,5 +2,5 @@ $:.unshift File.dirname(__FILE__)
2
2
  require 'solaar/terms'
3
3
 
4
4
  module Solaar
5
- VERSION = Version = "0.1.0"
5
+ VERSION = Version = "0.1.1"
6
6
  end
@@ -24,9 +24,9 @@ module Solaar
24
24
  {m: 10, day: 24.2487, adj: 0.242328, ja: '霜降', en: 'Frost descent'},
25
25
  {m: 11, day: 8.2396, adj: 0.242469, ja: '立冬', en: 'Start of winter'},
26
26
  {m: 11, day: 23.1189, adj: 0.242592, ja: '小雪', en: 'Minor snow'},
27
- {m: 12, day: 7.9152, adj: 0.242689, ja: '大雪', en: 'Major snow'},
27
+ {m: 12, day: 7.9152, adj: 0.242689, ja: '大雪', en: 'Major snow'},
28
28
  {m: 12, day: 22.6587, adj: 0.242752, ja: '冬至', en: 'Winter solstice'}
29
- ]
29
+ ]
30
30
 
31
31
  class Terms
32
32
 
@@ -37,11 +37,10 @@ module Solaar
37
37
  def calc(*args)
38
38
  opts = args.last.is_a?(Hash) ? args.pop : {}
39
39
  opts.merge!(year: self.year) if !opts.key?(:year)
40
- return "Unable to calculate with the given year" if opts[:year].to_i > 2099
40
+ return "Unable to calculate with given year" if opts[:year].to_i > 2099
41
41
 
42
42
  if opts.key?(:month)
43
- m = opts[:month].to_i
44
- s = m*2-2
43
+ s = opts[:month].to_i*2-2
45
44
  self.solaarterms(opts, [s, s+1])
46
45
  else
47
46
  self.solaarterms(opts, nil)
@@ -63,7 +62,7 @@ module Solaar
63
62
 
64
63
  def formula(opts={})
65
64
  y = @year = opts[:year]
66
- opts.key?(:month) ? month = opts[:month].to_i : month = opts[:m]
65
+ month = opts.key?(:month) ? opts[:month].to_i : opts[:m]
67
66
 
68
67
  y = month <= 2 ? y - 1 : y
69
68
  day = opts[:day] + opts[:adj] * (y - 1900) - ((y - 1900) / 4)
@@ -10,6 +10,7 @@ rescue Bundler::BundlerError => e
10
10
  end
11
11
 
12
12
  require 'test/unit'
13
+ require 'shoulda'
13
14
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
15
  $LOAD_PATH.unshift(File.dirname(__FILE__))
15
16
 
@@ -1,8 +1,60 @@
1
+ # -*- encoding: UTF-8 -*-
1
2
  require 'helper'
2
3
 
3
4
  class TestSolaar < Test::Unit::TestCase
4
5
 
5
- def test_solar_terms_with_given_year
6
- true
6
+ context "a solaar" do
7
+ setup do
8
+ @solaar = Solaar::Terms.new
9
+ end
10
+
11
+ should "not calculate with give year" do
12
+ assert_equal "Unable to calculate with given year", @solaar.calc(year: 2100)
13
+ end
14
+
15
+ should "calculate a date with a year and a month" do
16
+ assert_equal "2012-03-05", @solaar.calc(year: 2012, month: 3).first[:date]
17
+ assert_equal "啓蟄", @solaar.calc(year: 2012, month: 3).first[:ja]
18
+ assert_equal "Awakening of insects", @solaar.calc(year: 2012, month: 3).first[:en]
19
+ assert_equal "2012-03-20", @solaar.calc(year: 2012, month: 3).last[:date]
20
+ assert_equal "春分", @solaar.calc(year: 2012, month: 3).last[:ja]
21
+ assert_equal "Vernal equinox", @solaar.calc(year: 2012, month: 3).last[:en]
22
+ end
23
+
24
+ should "calculate all dates for the given year" do
25
+ assert_equal 24, @solaar.calc(year: 2015).size
26
+ assert_equal "2015-01-06", @solaar.calc(year: 2015).first[:date]
27
+ assert_equal "小寒", @solaar.calc(year: 2015).first[:ja]
28
+ assert_equal "Minor cold", @solaar.calc(year: 2015).first[:en]
29
+ assert_equal "2015-12-22", @solaar.calc(year: 2015).last[:date]
30
+ assert_equal "冬至", @solaar.calc(year: 2015).last[:ja]
31
+ assert_equal "Winter solstice", @solaar.calc(year: 2015).last[:en]
32
+ end
33
+
34
+ should "calculate all dates for this year without year parameter" do
35
+ assert_equal 24, @solaar.calc.size
36
+ assert_equal "#{Time.now.year}", @solaar.calc.first[:date].split(/-/).first
37
+ assert_equal "#{Time.now.year}", @solaar.calc.first[:date].split(/-/).first
38
+ end
39
+
40
+ should "calculate all dates for the year and given month without year parameter" do
41
+ assert_equal 2, @solaar.calc(month: 3).size
42
+ assert_equal "#{Time.now.year}", @solaar.calc(month: 3).first[:date].split(/-/).first
43
+ assert_equal "#{Time.now.year}", @solaar.calc(month: 3).last[:date].split(/-/).first
44
+ end
45
+
46
+ should "calculate all dates for the year and given term without year parameter" do
47
+ assert_equal 1, @solaar.calc(term: '春分').size
48
+ assert_equal "#{Time.now.year}", @solaar.calc(term: "春分").first[:date].split(/-/).first
49
+ assert_equal "春分", @solaar.calc(term: "春分").last[:ja]
50
+ assert_equal "Vernal equinox", @solaar.calc(term: "春分").last[:en]
51
+ end
52
+
53
+ should "calculate all dates for the year and given term with a year parameter" do
54
+ assert_equal 1, @solaar.calc(year: 2015, term: '春分').size
55
+ assert_equal "2015", @solaar.calc(term: "春分").first[:date].split(/-/).first
56
+ assert_equal "春分", @solaar.calc(term: "春分").last[:ja]
57
+ assert_equal "Vernal equinox", @solaar.calc(term: "春分").last[:en]
58
+ end
7
59
  end
8
60
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solaar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-24 00:00:00.000000000 Z
12
+ date: 2012-02-26 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Calculates the 24 solar terms until 2099
15
15
  email: