astro_calc 0.2.3 → 0.2.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 78d710da84395842dabec7d3ac0de7791ba8a071
4
- data.tar.gz: 760bdedc548b5eac2f208e8a6b8b417928267983
3
+ metadata.gz: 4a8e0b60b8e1b16a575cb20d2efa86f535aecffa
4
+ data.tar.gz: 0f136bbcfc26c4e90fd905ada9fbbefa2907b902
5
5
  SHA512:
6
- metadata.gz: 152af051960ac0f2ddd7fd8f4acd92e5cec683c8ee279e47e65a15e825e09ffd756853451e22cf417a6ac2f5dcc38d54e69c33c6eff4ac1bd8dac8b2306ad71b
7
- data.tar.gz: fa2ae5f5274da324ef2f4c275b1d9e46571c13aea340e5b9f419064368fcb8548b626e2bb97066b7e97f1f93376d69b0e9f8c2cac404d52da20e366f09f96273
6
+ metadata.gz: d3dab24f219f3fd660223073ee66a52a2e966628261d1a5686cc7c73fde3c13f3d16eacbb5535cbdd0c3005c00ba3b61448aa5b57acef14f6a7aa347e441a6be
7
+ data.tar.gz: 1f990ba295a59e20ae0c27bb8014676b5f7d9169dc12411e4d6832bcd1832a0b68fb16fc2560df624b9ba4d9d360c958c8d1b82123adf275c6882313da6d5823
@@ -7,16 +7,21 @@ class MoonPhases
7
7
  LIMIT_JULIAN_CALENDAR = 2299160
8
8
  JULIAN_DAYS_IN_MONTH = 29.530588853
9
9
 
10
- attr_reader :phase, :age, :distance, :latitude, :longitude, :constellation
10
+ attr_reader :phase, :age, :distance, :latitude, :longitude, :constellation, :date
11
11
  attr_reader :sweep, :magnitude # for svg
12
12
 
13
13
  attr_reader :detailed_position, :detailed_age, :detailed_distance, :detailed_constellation
14
14
 
15
15
 
16
16
  def initialize(date = Date.today)
17
- year = date.year
18
- month = date.month
19
- day = date.day
17
+ @date = date
18
+ perform_calculations
19
+ end
20
+
21
+ def perform_calculations
22
+ year = @date.year
23
+ month = @date.month
24
+ day = @date.day
20
25
 
21
26
  #calculate the Julian date at 12h UT
22
27
  y = year - ((12 - month) / 10.0).floor
@@ -113,47 +118,26 @@ class MoonPhases
113
118
  # @return [String] the unicode string showing the moon phase
114
119
  def unicode
115
120
  case @phase
116
- when 0.0625..0.1875 then "\uD83C\uDF12"
117
- when 0.1875..0.3125 then "\uD83C\uDF13"
118
- when 0.3125..0.4375 then "\uD83C\uDF14"
119
- when 0.4375..0.5625 then "\uD83C\uDF15"
120
- when 0.5625..0.6875 then "\uD83C\uDF16"
121
- when 0.6875..0.8125 then "\uD83C\uDF17"
122
- when 0.8125..0.9375 then "\uD83C\uDF18"
123
- else "\uD83C\uDF11"
121
+ when 0.0625..0.1875 then "🌒"
122
+ when 0.1875..0.3125 then "🌓"
123
+ when 0.3125..0.4375 then "🌔"
124
+ when 0.4375..0.5625 then "🌕"
125
+ when 0.5625..0.6875 then "🌖"
126
+ when 0.6875..0.8125 then "🌗"
127
+ when 0.8125..0.9375 then "🌘"
128
+ else "🌑"
124
129
  end
125
130
  end
126
131
 
127
132
  # Calculates the magnification for a given telescope and eyepiece
128
133
  #
129
- # @param options [Hash] the options for SVG generation
130
134
  # @return [String] the SVG output
131
- def svg(options = {})
132
- default_options = {
133
- include_style: true,
134
- height: "200px",
135
- background_color: "#111111",
136
- left: "35%",
137
- top: "75px",
138
- moon_color: "#CDCDCD",
139
- shadow_color: "#000000"
140
- }
141
- options = default_options.merge(options)
142
-
135
+ def svg
143
136
  output = ""
144
-
145
- if options[:include_style] then
146
- output << "<style>"
147
- output << "#moonholder { height: #{options[:height]}; background-color: #{options[:background_color]}; }"
148
- output << "#moon { position:absolute; left:#{options[:left]}; top:#{options[:top]}; }"
149
- output << ".moon { fill: #{options[:moon_color]}; }"
150
- output << ".moonback { stroke: #{options[:shadow_color]}; stroke-width: 1px; height: 180px; }"
151
- output << "</style>"
152
- end
153
-
154
- output << "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100% 100%' version='1.1' id='moon'>"
155
- output << " <path d='m100,0 a20,20 0 1,1 0,150 a20,20 0 1,1 0,-150' class='moonback'></path>"
156
- output << " <path d='m100,0 a#{@magnitude.round(2)},20 0 1,#{@sweep[0]} 0,150 a20,20 0 1,#{@sweep[1]} 0,-150' class='moon'></path>"
137
+ output << "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100% 100%' version='1.1' id='moon_phase'>"
138
+ output << "<path d='m100,0 a20,20 0 1,1 0,150 a20,20 0 1,1 0,-150' class='moon_back'></path>"
139
+ output << "<image xlink:href='moon.jpg; x='0' y='0' height='200px' width='200px'/>"
140
+ output << "<path d='m100,0 a#{@magnitude.round(2)},20 0 1,#{@sweep[0]} 0,150 a20,20 0 1,#{@sweep[1]} 0,-150' class='moon'></path>"
157
141
  output << "</svg>"
158
142
  output.html_safe
159
143
  end
@@ -1,3 +1,3 @@
1
1
  module AstroCalc
2
- VERSION = "0.2.3"
2
+ VERSION = "0.2.4"
3
3
  end
Binary file
@@ -0,0 +1,5 @@
1
+ .moon_back { background-image: image-url('starfield.png') !important; height: 200px; }
2
+ .moon { background-image: image-url("moon.png"); }
3
+
4
+ .moon_back { height: 200px; background-color: #000000; }
5
+ .moon_phase { position:absolute; left:35%; top:75px; stroke: #999999; stroke-width: 1px; height: 180px; }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: astro_calc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reuben Mallaby
@@ -76,6 +76,8 @@ files:
76
76
  - lib/astro_calc/telescopes.rb
77
77
  - lib/astro_calc/version.rb
78
78
  - vendor/assets/images/moon.png
79
+ - vendor/assets/images/starfield.png
80
+ - vendor/assets/stylesheets/astro.css.scss
79
81
  homepage: http://mallaby.me/projects/astro_calc
80
82
  licenses:
81
83
  - MIT