british_suntimes 0.1.1 → 0.2.0

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: 38a8f6343d904803f701d10d143f170abb35971e
4
- data.tar.gz: 3a9a693a25d25a83d320d8170040ee8135df2708
3
+ metadata.gz: 5c5bd7fbe035ba01409e39e038fa49d88efab4b9
4
+ data.tar.gz: 9d61e58456b71a6dc47ad06afae313c19b19a45d
5
5
  SHA512:
6
- metadata.gz: ee040b326c73ca799e8afdad5e48ccb964ca0395d2c37e40616a803bc0efe5df2b4d86fd0cdd2436734b6c81fc3632674abff132718e09ffee60352228472c1a
7
- data.tar.gz: 3eae29293490f39a9fa195ac2569c12170b061f6c92d70343151b71a962532f81e292bbffb482cb4603011c087bdc59b71a9e9dd3be2e2872b8aba75d5ba09e6
6
+ metadata.gz: 6a9ed3142cad3571762c1b97119752ef1ff5669e04650c5e0ee10a5199c62e73dafa2d871c32df7c33d7cc6abe5f01d4b76dcc0bf84ae6fef4c1978817f7063e
7
+ data.tar.gz: 2de288110357ba6bdd75d1868517330e633d1140d7cd84ba0bcfaa95295eae6a5e04fd466ae7288b4d600b06ac4075ff10b1948dfd3084980a711303a41af62f
Binary file
data.tar.gz.sig CHANGED
@@ -1,2 +1,2 @@
1
- l ����s��1˪xNc�a�'�+N�nes��d'���Q���=��(oEB����f=v9���B�%}LTz$�S�b-����ґ��%�/���T� G��vû��Ɯ3���:�H��wİ��B4��
2
- 3�ͬ����4@���'��qK�u׈��0|��1;�2:Fc�*RkF�>���~tO�����&�>�b�K���,��V��u���+�����ӆ#�weQ|���a ����V;�x
1
+ ���a������=����,2-m��,����,�� �Wx�uo�{���3��s�e��7@)��F��Ȝ=1 ���9}�^�b�̒� p8 }J9V<2����-��3!�md�@Hx
2
+ h���1�m��uXQYKI(Ӎ�������W5���_��Bfe��<��(,��(q��rl��"s��}��<��������7C�=ɞ�bd��#�XQ{�\��u1ѢZT���Ӫ���&
@@ -3,6 +3,7 @@
3
3
  # file: british_suntimes.rb
4
4
 
5
5
 
6
+ require 'dynarex'
6
7
  require 'geocoder'
7
8
  require 'chronic_cron'
8
9
  require 'solareventcalculator'
@@ -11,10 +12,10 @@ require 'solareventcalculator'
11
12
 
12
13
  class BritishSuntimes
13
14
 
14
- attr_reader :to_h, :bst_start, :bst_end
15
+ attr_reader :to_h, :bst_start, :bst_end, :to_dx
15
16
 
16
17
 
17
- def initialize(year= Date.today.year.to_s, location: 'edinburgh')
18
+ def initialize(year=Date.today.year.to_s, location: 'edinburgh')
18
19
 
19
20
  a = (Date.parse(year + ' Jan')...Date.parse(year.succ + ' Jan')).to_a
20
21
  g = Geocoder.search(location)
@@ -33,22 +34,45 @@ class BritishSuntimes
33
34
 
34
35
  # alter the times for British summertime
35
36
 
36
- d1 = ChronicCron.new('last sunday in March at 1am',
37
+ @bst_start = ChronicCron.new('last sunday in March at 1am',
37
38
  Time.local(year)).to_date
38
- d2 = ChronicCron.new('last sunday in October at 2am',
39
+ @bst_end = ChronicCron.new('last sunday in October at 2am',
39
40
  Time.local(year)).to_date
40
41
 
41
- @bst_start, @bst_end = d1, d2
42
42
 
43
- (d1...d2).to_a.each do |d|
43
+ (@bst_start...@bst_end).to_a.each do |d|
44
44
  t1, t2 = times[d.strftime("%d %b")].map {|x| Time.parse(x)}
45
45
  t1 += 60 * 60; t2 += 60 * 60
46
46
  times[d.strftime("%d %b")] = [t1.strftime("%H:%M"), t2.strftime("%H:%M")]
47
47
  end
48
48
 
49
- @to_h = times
50
-
49
+ @year, @location, @to_h = year, location, times
50
+ @to_dx = build_dx()
51
+
51
52
  end
53
+
54
+ # exports the sun times to a raw Dynarex file
55
+ #
56
+ def export(filename=@location + "-suntimes-#{@year}.txt")
57
+ File.write filename, @to_dx.to_s
58
+ end
59
+
60
+ private
61
+
62
+ def build_dx()
63
+
64
+ dx = Dynarex.new 'times[title, tags, desc, bst_start, ' +
65
+ 'bst_end]/day(date, sunrise, sunset)'
66
+ dx.title = @location + " sunrise sunset times " + @year
67
+ dx.tags = @location + " times sunrise sunset %s" % [@year]
68
+ dx.delimiter = ' # '
69
+ dx.bst_start, dx.bst_end = @bst_start.to_s, @bst_end.to_s
70
+ dx.desc = 'Adjusted for British summertime'
71
+
72
+ @to_h.each {|k,v| dx.create date: k, sunrise: v[0], sunset: v[1] }
73
+
74
+ dx
75
+ end
52
76
 
53
77
  end
54
78
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: british_suntimes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -32,6 +32,26 @@ cert_chain:
32
32
  -----END CERTIFICATE-----
33
33
  date: 2018-03-09 00:00:00.000000000 Z
34
34
  dependencies:
35
+ - !ruby/object:Gem::Dependency
36
+ name: dynarex
37
+ requirement: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '1.7'
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: 1.7.29
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: !ruby/object:Gem::Requirement
48
+ requirements:
49
+ - - "~>"
50
+ - !ruby/object:Gem::Version
51
+ version: '1.7'
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.7.29
35
55
  - !ruby/object:Gem::Dependency
36
56
  name: geocoder
37
57
  requirement: !ruby/object:Gem::Requirement
metadata.gz.sig CHANGED
Binary file