ice_cube_chosko 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: 2341f92b5ea3e7f1506b945211424983d4c5c46d
4
- data.tar.gz: 96516ff2130b39732f0735564cefe522c05f7ed9
3
+ metadata.gz: 53043f248147e73fc89ba52dd021f6408a46663e
4
+ data.tar.gz: 0dd667fb9b9eabec5580aed65ea754f8c67de453
5
5
  SHA512:
6
- metadata.gz: 94f234c5480254071f900d0544f80dbd1ea7f2808822edb5a871628b3c2e14e1666bdc9794f1c2963a6845fbb4277e5e19a85822b75ab8b25a0549130b90f45e
7
- data.tar.gz: bece59692514ab85436c0192257966ef01e887cff2ffa10c6d81a85ca02c3ec64eb95dfb9eaf49f735f5d01be2390aa1555aebee65f837124a9019464324d1ea
6
+ metadata.gz: 735c39b7950a869862c8e1771c33efff4fff601597388ec840b9af3c66b5f762889c2904e018e5e0c3c73cdb7afdf7bdb769ce936f6a7099f405dd0cd3f1fc96
7
+ data.tar.gz: 7ed35b3199e5794be18743868681242e05faa57fa738a22eb77bb078e5a7fd9bc72f04ed6a7525ef389cf4bf76118fe425eb1442516e04084964fec45c398c6a
@@ -24,18 +24,14 @@ module IceCube
24
24
  end
25
25
 
26
26
  def self.rule_from_ical(ical)
27
- raise ArgumentError, 'empty ical rule' if ical.nil?
28
-
29
- validations = {}
30
- params = {validations: validations, interval: 1}
27
+ params = { validations: { } }
31
28
 
32
29
  ical.split(';').each do |rule|
33
30
  (name, value) = rule.split('=')
34
- raise ArgumentError, "Invalid iCal rule component" if value.nil?
35
31
  value.strip!
36
32
  case name
37
33
  when 'FREQ'
38
- params[:rule_type] = "IceCube::#{value[0]}#{value.downcase[1..-1]}Rule"
34
+ params[:freq] = value.downcase
39
35
  when 'INTERVAL'
40
36
  params[:interval] = value.to_i
41
37
  when 'COUNT'
@@ -43,13 +39,13 @@ module IceCube
43
39
  when 'UNTIL'
44
40
  params[:until] = Time.parse(value).utc
45
41
  when 'WKST'
46
- params[:week_start] = TimeUtil.ical_day_to_symbol(value)
42
+ params[:wkst] = TimeUtil.ical_day_to_symbol(value)
47
43
  when 'BYSECOND'
48
- validations[:second_of_minute] = value.split(',').map(&:to_i)
44
+ params[:validations][:second_of_minute] = value.split(',').collect(&:to_i)
49
45
  when 'BYMINUTE'
50
- validations[:minute_of_hour] = value.split(',').map(&:to_i)
46
+ params[:validations][:minute_of_hour] = value.split(',').collect(&:to_i)
51
47
  when 'BYHOUR'
52
- validations[:hour_of_day] = value.split(',').map(&:to_i)
48
+ params[:validations][:hour_of_day] = value.split(',').collect(&:to_i)
53
49
  when 'BYDAY'
54
50
  dows = {}
55
51
  days = []
@@ -63,21 +59,33 @@ module IceCube
63
59
  days.push TimeUtil.sym_to_wday(day) if dows[day].nil?
64
60
  end
65
61
  end
66
- validations[:day_of_week] = dows unless dows.empty?
67
- validations[:day] = days unless days.empty?
62
+ params[:validations][:day_of_week] = dows unless dows.empty?
63
+ params[:validations][:day] = days unless days.empty?
68
64
  when 'BYMONTHDAY'
69
- validations[:day_of_month] = value.split(',').map(&:to_i)
65
+ params[:validations][:day_of_month] = value.split(',').collect(&:to_i)
70
66
  when 'BYMONTH'
71
- validations[:month_of_year] = value.split(',').map(&:to_i)
67
+ params[:validations][:month_of_year] = value.split(',').collect(&:to_i)
72
68
  when 'BYYEARDAY'
73
- validations[:day_of_year] = value.split(',').map(&:to_i)
69
+ params[:validations][:day_of_year] = value.split(',').collect(&:to_i)
74
70
  when 'BYSETPOS'
75
71
  else
76
- validations[name] = nil # invalid type
72
+ raise "Invalid or unsupported rrule command: #{name}"
77
73
  end
78
74
  end
79
75
 
80
- Rule.from_hash(params)
76
+ params[:interval] ||= 1
77
+
78
+ # WKST only valid for weekly rules
79
+ params.delete(:wkst) unless params[:freq] == 'weekly'
80
+
81
+ rule = Rule.send(*params.values_at(:freq, :interval, :wkst).compact)
82
+ rule.count(params[:count]) if params[:count]
83
+ rule.until(params[:until]) if params[:until]
84
+ params[:validations].each do |key, value|
85
+ value.is_a?(Array) ? rule.send(key, *value) : rule.send(key, value)
86
+ end
87
+
88
+ rule
81
89
  end
82
90
  end
83
91
  end
@@ -4,11 +4,6 @@ module IceCube
4
4
 
5
5
  class Rule
6
6
 
7
- INTERVAL_TYPES = [
8
- :secondly, :minutely, :hourly,
9
- :daily, :weekly, :monthly, :yearly
10
- ]
11
-
12
7
  attr_reader :uses
13
8
 
14
9
  # Is this a terminating schedule?
@@ -56,6 +51,21 @@ module IceCube
56
51
  raise MethodNotImplemented, "Expected to be overridden by subclasses"
57
52
  end
58
53
 
54
+ # Convert from a hash and create a rule
55
+ def self.from_hash(original_hash)
56
+ hash = IceCube::FlexibleHash.new original_hash
57
+ return nil unless match = hash[:rule_type].match(/\:\:(.+?)Rule/)
58
+ rule = IceCube::Rule.send(match[1].downcase.to_sym, hash[:interval] || 1)
59
+ rule.interval(hash[:interval] || 1, TimeUtil.wday_to_sym(hash[:week_start] || 0)) if match[1] == "Weekly"
60
+ rule.until(TimeUtil.deserialize_time(hash[:until])) if hash[:until]
61
+ rule.count(hash[:count]) if hash[:count]
62
+ hash[:validations] && hash[:validations].each do |key, value|
63
+ key = key.to_sym unless key.is_a?(Symbol)
64
+ value.is_a?(Array) ? rule.send(key, *value) : rule.send(key, value)
65
+ end
66
+ rule
67
+ end
68
+
59
69
  # Reset the uses on the rule to 0
60
70
  def reset
61
71
  @uses = 0
@@ -73,52 +83,6 @@ module IceCube
73
83
  !@count.nil?
74
84
  end
75
85
 
76
- class << self
77
-
78
- # Convert from a hash and create a rule
79
- def from_hash(original_hash)
80
- hash = IceCube::FlexibleHash.new original_hash
81
-
82
- unless hash[:rule_type] && match = hash[:rule_type].match(/\:\:(.+?)Rule/)
83
- raise ArgumentError, 'Invalid rule type'
84
- end
85
-
86
- interval_type = match[1].downcase.to_sym
87
-
88
- unless INTERVAL_TYPES.include?(interval_type)
89
- raise ArgumentError, "Invalid rule frequency type: #{match[1]}"
90
- end
91
-
92
- rule = IceCube::Rule.send(interval_type, hash[:interval] || 1)
93
-
94
- if match[1] == "Weekly"
95
- rule.interval(hash[:interval] || 1, TimeUtil.wday_to_sym(hash[:week_start] || 0))
96
- end
97
-
98
- rule.until(TimeUtil.deserialize_time(hash[:until])) if hash[:until]
99
- rule.count(hash[:count]) if hash[:count]
100
-
101
- hash[:validations] && hash[:validations].each do |name, args|
102
- apply_validation(rule, name, args)
103
- end
104
-
105
- rule
106
- end
107
-
108
- private
109
-
110
- def apply_validation(rule, name, args)
111
- name = name.to_sym
112
-
113
- unless ValidatedRule::VALIDATION_ORDER.include?(name)
114
- raise ArgumentError, "Invalid rule validation type: #{name}"
115
- end
116
-
117
- args.is_a?(Array) ? rule.send(name, *args) : rule.send(name, args)
118
- end
119
-
120
- end
121
-
122
86
  # Convenience methods for creating Rules
123
87
  class << self
124
88
 
@@ -191,14 +191,14 @@ module IceCube
191
191
 
192
192
  # The previous occurrence from a given time
193
193
  def previous_occurrence(from)
194
- from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{from.inspect}"
194
+ from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{time.inspect}"
195
195
  return nil if from <= start_time
196
196
  enumerate_occurrences(start_time, from - 1).to_a.last
197
197
  end
198
198
 
199
199
  # The previous n occurrences before a given time
200
200
  def previous_occurrences(num, from)
201
- from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{from.inspect}"
201
+ from = TimeUtil.match_zone(from, start_time) or raise ArgumentError, "Time required, got #{time.inspect}"
202
202
  return [] if from <= start_time
203
203
  a = enumerate_occurrences(start_time, from - 1).to_a
204
204
  a.size > num ? a[-1*num,a.size] : a
@@ -428,7 +428,7 @@ module IceCube
428
428
  spans = options[:spans] == true && max_duration != 0
429
429
  Enumerator.new do |yielder|
430
430
  reset
431
- t1 = full_required? ? start_time : realign(opening_time) - (spans ? max_duration : 0)
431
+ t1 = full_required? ? start_time : realign((spans ? opening_time - max_duration : opening_time))
432
432
  loop do
433
433
  break unless (t0 = next_time(t1, closing_time))
434
434
  break if closing_time && t0 > closing_time
@@ -42,7 +42,7 @@ module IceCube
42
42
  end
43
43
 
44
44
  def self.match_zone(input_time, reference)
45
- return unless time = ensure_time(input_time, reference)
45
+ return unless time = ensure_time(input_time)
46
46
  time = if reference.respond_to? :time_zone
47
47
  time.in_time_zone(reference.time_zone)
48
48
  else
@@ -58,21 +58,13 @@ module IceCube
58
58
  end
59
59
 
60
60
  # Ensure that this is either nil, or a time
61
- def self.ensure_time(time, reference = nil, date_eod = false)
61
+ def self.ensure_time(time, date_eod = false)
62
62
  case time
63
63
  when DateTime
64
64
  warn "IceCube: DateTime support is deprecated (please use Time) at: #{ caller[2] }"
65
65
  Time.local(time.year, time.month, time.day, time.hour, time.min, time.sec)
66
66
  when Date
67
- if date_eod
68
- end_of_date(time, reference)
69
- else
70
- if reference
71
- build_in_zone([time.year, time.month, time.day], reference)
72
- else
73
- time.to_time
74
- end
75
- end
67
+ date_eod ? end_of_date(time) : time.to_time
76
68
  else
77
69
  time
78
70
  end
@@ -5,8 +5,6 @@ module IceCube
5
5
  module Validations::Day
6
6
 
7
7
  def day(*days)
8
- days = days.flatten
9
- return self if days.empty?
10
8
  days.flatten.each do |day|
11
9
  unless day.is_a?(Fixnum) || day.is_a?(Symbol)
12
10
  raise ArgumentError, "expecting Fixnum or Symbol value for day, got #{day.inspect}"
@@ -11,6 +11,7 @@ module IceCube
11
11
  deprecated_alias :until_date, :until_time
12
12
 
13
13
  def until(time)
14
+ time = TimeUtil.ensure_time(time, true)
14
15
  @until = time
15
16
  replace_validations_for(:until, time.nil? ? nil : [Validation.new(time)])
16
17
  self
@@ -33,8 +34,7 @@ module IceCube
33
34
  end
34
35
 
35
36
  def validate(step_time, schedule)
36
- end_time = TimeUtil.ensure_time(time, schedule.start_time, true)
37
- raise UntilExceeded if step_time > end_time
37
+ raise UntilExceeded if step_time > time
38
38
  end
39
39
 
40
40
  def build_s(builder)
@@ -1,5 +1,5 @@
1
1
  module IceCube
2
2
 
3
- VERSION = '0.1.1'
4
-
3
+ VERSION = '0.2.0'
4
+
5
5
  end
@@ -23,26 +23,42 @@ RSpec.configure do |config|
23
23
 
24
24
  config.include WarningHelpers
25
25
 
26
- config.before :each do |example|
27
- if example.metadata[:requires_active_support]
28
- raise 'ActiveSupport required but not present' unless defined?(ActiveSupport)
26
+ config.around :each, :if_active_support_time => true do |example|
27
+ example.run if defined? ActiveSupport
28
+ end
29
+
30
+ config.around :each, :if_active_support_time => false do |example|
31
+ unless defined? ActiveSupport
32
+ stubbed_active_support = ::ActiveSupport = Module.new
33
+ example.run
34
+ Object.send :remove_const, :ActiveSupport
29
35
  end
30
36
  end
31
37
 
32
38
  config.around :each do |example|
33
39
  if zone = example.metadata[:system_time_zone]
34
- orig_zone = ENV['TZ']
40
+ @orig_zone = ENV['TZ']
35
41
  ENV['TZ'] = zone
36
42
  example.run
37
- ENV['TZ'] = orig_zone
43
+ ENV['TZ'] = @orig_zone
38
44
  else
39
45
  example.run
40
46
  end
41
47
  end
42
48
 
49
+ config.before :each do
50
+ if time_args = @example.metadata[:system_time]
51
+ case time_args
52
+ when Array then Time.stub!(:now).and_return Time.local(*time_args)
53
+ when Time then Time.stub!(:now).and_return time_args
54
+ end
55
+ end
56
+ end
57
+
43
58
  config.around :each, expect_warnings: true do |example|
44
59
  capture_warnings do
45
60
  example.run
46
61
  end
47
62
  end
63
+
48
64
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ice_cube_chosko
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
  - John Crepezzi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-02 00:00:00.000000000 Z
11
+ date: 2016-02-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -28,16 +28,58 @@ dependencies:
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">"
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '3'
33
+ version: 2.12.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">"
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '3'
40
+ version: 2.12.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 3.0.0
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: tzinfo
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: i18n
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
41
83
  description: ice_cube is a recurring date library for Ruby. It allows for quick,
42
84
  programatic expansion of recurring date rules.
43
85
  email: john@crepezzi.com
@@ -45,13 +87,9 @@ executables: []
45
87
  extensions: []
46
88
  extra_rdoc_files: []
47
89
  files:
48
- - config/locales/de.yml
49
90
  - config/locales/en.yml
50
91
  - config/locales/es.yml
51
- - config/locales/fr.yml
52
92
  - config/locales/ja.yml
53
- - config/locales/ru.yml
54
- - config/locales/sv.yml
55
93
  - lib/ice_cube.rb
56
94
  - lib/ice_cube/builders/hash_builder.rb
57
95
  - lib/ice_cube/builders/ical_builder.rb
@@ -101,7 +139,7 @@ files:
101
139
  - lib/ice_cube/validations/yearly_interval.rb
102
140
  - lib/ice_cube/version.rb
103
141
  - spec/spec_helper.rb
104
- homepage: https://github.com/chosko/ice_cube
142
+ homepage: http://github.com/chosko/ice_cube
105
143
  licenses:
106
144
  - MIT
107
145
  metadata: {}
@@ -1,178 +0,0 @@
1
- de:
2
- ice_cube:
3
- pieces_connector: ' / '
4
- not: 'außer %{target}'
5
- not_on: 'außer am %{target}'
6
- date:
7
- formats:
8
- default: '%-d. %B %Y'
9
- month_names:
10
- -
11
- - Januar
12
- - Februar
13
- - März
14
- - April
15
- - Mai
16
- - Juni
17
- - Juli
18
- - August
19
- - September
20
- - Oktober
21
- - November
22
- - Dezember
23
- day_names:
24
- - Sonntag
25
- - Montag
26
- - Dienstag
27
- - Mittwoch
28
- - Donnerstag
29
- - Freitag
30
- - Samstag
31
- times:
32
- other: '%{count} mal'
33
- one: '%{count} mal'
34
- until: 'bis zum %{date}'
35
- days_of_week: '%{segments} %{day}'
36
- days_of_month:
37
- one: '%{segments} Tag des Monats'
38
- other: '%{segments} Tag des Monats'
39
- days_of_year:
40
- one: '%{segments} Tag des Jahres'
41
- other: '%{segments} Tag des Jahres'
42
- at_hours_of_the_day:
43
- one: in der %{segments} Stunde des Tages
44
- other: in der %{segments} Stunde des Tages
45
- on_minutes_of_hour:
46
- one: in der %{segments} Minute der Stunde
47
- other: in der %{segments} Minute der Stunde
48
- at_seconds_of_minute:
49
- one: in der %{segments} Sekunde
50
- other: in der %{segments} Sekunde
51
- on_seconds_of_minute:
52
- one: in der %{segments} Sekunde der Minute
53
- other: in der %{segments} Sekunde der Minute
54
- each_second:
55
- one: Jede Sekunde
56
- other: Alle %{count} Sekunden
57
- each_minute:
58
- one: Jede Minute
59
- other: Alle %{count} Minuten
60
- each_hour:
61
- one: Stündlich
62
- other: Alle %{count} Stunden
63
- each_day:
64
- one: Täglich
65
- other: Alle %{count} Tage
66
- each_week:
67
- one: Wöchentlich
68
- other: Alle %{count} Wochen
69
- each_month:
70
- one: Monatlich
71
- other: Alle %{count} Monate
72
- each_year:
73
- one: Jährlich
74
- other: Alle %{count} Jahre
75
- 'on': am %{sentence}
76
- in: 'im %{target}'
77
- integer:
78
- negative: '%{ordinal}. letzter'
79
- literal_ordinals:
80
- -1: letzten
81
- -2: vorletzten
82
- ordinal: '%{number}%{ordinal}'
83
- ordinals:
84
- default: '.'
85
- # 1: st
86
- # 2: nd
87
- # 3: rd
88
- # 11: th
89
- # 12: th
90
- # 13: th
91
- on_weekends: am Wochenende
92
- on_weekdays: an Wochentagen
93
- days_on:
94
- - Sonntags
95
- - Montags
96
- - Dienstags
97
- - Mittwochs
98
- - Donnerstags
99
- - Freitags
100
- - Samstags
101
- on_days: '%{days}'
102
- array:
103
- last_word_connector: ' und '
104
- two_words_connector: ' und '
105
- words_connector: ', '
106
- string:
107
- format:
108
- day: '%{rest} %{current}'
109
- day_of_week: '%{rest} %{current}'
110
- day_of_month: '%{rest} %{current}'
111
- day_of_year: '%{rest} %{current}'
112
- hour_of_day: '%{rest} %{current}'
113
- minute_of_hour: '%{rest} %{current}'
114
- until: '%{rest} %{current}'
115
- count: '%{rest} %{current}'
116
- default: '%{rest} %{current}'
117
-
118
- date:
119
- abbr_day_names:
120
- - So
121
- - Mo
122
- - Di
123
- - Mi
124
- - Do
125
- - Fr
126
- - Sa
127
- abbr_month_names:
128
- -
129
- - Jan
130
- - Feb
131
- - Mär
132
- - Apr
133
- - Mai
134
- - Jun
135
- - Jul
136
- - Aug
137
- - Sep
138
- - Okt
139
- - Nov
140
- - Dez
141
- day_names:
142
- - Sonntag
143
- - Montag
144
- - Dinstag
145
- - Mittwoch
146
- - Donnerstag
147
- - Freitag
148
- - Samstag
149
- formats:
150
- default: "%Y-%m-%d"
151
- long: "%B %d, %Y"
152
- short: "%b %d"
153
- month_names:
154
- -
155
- - Januar
156
- - Februar
157
- - März
158
- - April
159
- - Mai
160
- - Juni
161
- - Juli
162
- - August
163
- - September
164
- - Oktober
165
- - November
166
- - Dezember
167
- order:
168
- - :year
169
- - :month
170
- - :day
171
-
172
- time:
173
- am: am
174
- formats:
175
- default: "%a, %d %b %Y %H:%M:%S %z"
176
- long: "%B %d, %Y %H:%M"
177
- short: "%d %b %H:%M"
178
- pm: pm
@@ -1,173 +0,0 @@
1
- fr:
2
- ice_cube:
3
- pieces_connector: ' / '
4
- not: 'pas %{target}'
5
- not_on: 'pas durant %{target}'
6
- date:
7
- formats:
8
- default: '%d %B %Y'
9
- month_names:
10
- -
11
- - janvier
12
- - février
13
- - mars
14
- - avril
15
- - mai
16
- - juin
17
- - juillet
18
- - août
19
- - septembre
20
- - octobre
21
- - novembre
22
- - décembre
23
- day_names:
24
- - dimanche
25
- - lundi
26
- - mardi
27
- - mercredi
28
- - jeudi
29
- - vendredi
30
- - samedi
31
- times:
32
- other: '%{count} fois'
33
- one: '%{count} fois'
34
- until: "jusqu'au %{date}"
35
- days_of_week: '%{segments} %{day}'
36
- days_of_month:
37
- other: '%{segments} jours du mois'
38
- one: '%{segments} jours du mois'
39
- days_of_year:
40
- other: "%{segments} jours de l'année"
41
- one: "%{segments} jours de l'année"
42
- at_hours_of_the_day:
43
- other: aux %{segments} heures de la journée
44
- one: à %{segments}h
45
- on_minutes_of_hour:
46
- other: aux %{segments} minutes de l'heure
47
- one: à la %{segments} minute de l'heure
48
- at_seconds_of_minute:
49
- other: aux %{segments} secondes
50
- one: à la %{segments} seconde
51
- on_seconds_of_minute:
52
- other: aux %{segments} secondes de la minute
53
- one: à la %{segments} seconde de la minute
54
- each_second:
55
- one: Toutes les secondes
56
- other: Toutes les %{count} secondes
57
- each_minute:
58
- one: Toutes les minutes
59
- other: Toutes les %{count} minutes
60
- each_hour:
61
- one: Toutes les heures
62
- other: Toutes les %{count} heures
63
- each_day:
64
- one: Quotidien
65
- other: Tous les %{count} jours
66
- each_week:
67
- one: Hebdomadaire
68
- other: Toutes les %{count} semaines
69
- each_month:
70
- one: Mensuel
71
- other: Tous les %{count} mois
72
- each_year:
73
- one: Annuel
74
- other: Tous les %{count} ans
75
- 'on': les %{sentence}
76
- in: 'en %{target}'
77
- integer:
78
- negative: '%{ordinal} depuis la fin'
79
- literal_ordinals:
80
- -1: derniers
81
- -2: avant-derniers
82
- ordinal: '%{number}%{ordinal}'
83
- ordinals:
84
- default: '°'
85
- 1: °
86
- on_weekends: pendant les weekends
87
- on_weekdays: pendant les jours ouvrés
88
- days_on:
89
- - dimanches
90
- - lundis
91
- - mardis
92
- - mercredis
93
- - jeudis
94
- - vendredis
95
- - samedis
96
- on_days: les %{days}
97
- array:
98
- last_word_connector: ', et '
99
- two_words_connector: ' et '
100
- words_connector: ', '
101
- string:
102
- format:
103
- day: '%{rest} %{current}'
104
- day_of_week: '%{rest} %{current}'
105
- day_of_month: '%{rest} %{current}'
106
- day_of_year: '%{rest} %{current}'
107
- hour_of_day: '%{rest} %{current}'
108
- minute_of_hour: '%{rest} %{current}'
109
- until: '%{rest} %{current}'
110
- count: '%{rest} %{current}'
111
- default: '%{rest} %{current}'
112
-
113
- date:
114
- abbr_day_names:
115
- - Dim
116
- - Lun
117
- - Mar
118
- - Mer
119
- - Jeu
120
- - Ven
121
- - Sam
122
- abbr_month_names:
123
- -
124
- - Jan
125
- - Fév
126
- - Mar
127
- - Avr
128
- - Mai
129
- - Jun
130
- - Jul
131
- - Aou
132
- - Sep
133
- - Oct
134
- - Nov
135
- - Déc
136
- day_names:
137
- - dimanche
138
- - lundi
139
- - mardi
140
- - mecredi
141
- - jeudi
142
- - vendredi
143
- - samedi
144
- formats:
145
- default: "%d-%m-%Y"
146
- long: "%d %B %Y"
147
- short: "%d %b"
148
- month_names:
149
- -
150
- - janvier
151
- - février
152
- - mars
153
- - avril
154
- - mai
155
- - juin
156
- - juillet
157
- - août
158
- - septembre
159
- - octobre
160
- - novembre
161
- - décembre
162
- order:
163
- - :year
164
- - :month
165
- - :day
166
-
167
- time:
168
- am: am
169
- formats:
170
- default: "%a, %d %b %Y %H:%M:%S %z"
171
- long: "%d %B %Y %H:%M"
172
- short: "%d %b %H:%M"
173
- pm: pm
@@ -1,195 +0,0 @@
1
- ru:
2
- ice_cube:
3
- pieces_connector: ' / '
4
- not: 'не %{target}'
5
- not_on: 'не в %{target}'
6
- date:
7
- formats:
8
- default: '%-d %B %Y'
9
- month_names:
10
- -
11
- - январь
12
- - февраль
13
- - март
14
- - апрель
15
- - май
16
- - июнь
17
- - июль
18
- - август
19
- - сентябрь
20
- - октябрь
21
- - ноябрь
22
- - декабрь
23
- day_names:
24
- - воскресенье
25
- - понедельник
26
- - вторник
27
- - среда
28
- - четверг
29
- - пятница
30
- - суббота
31
- times:
32
- other: '%{count} раза'
33
- many: '%{count} раз'
34
- few: '%{count} раза'
35
- one: '%{count} раз'
36
- until: 'до %{date}'
37
- days_of_week: '%{segments} %{day}'
38
- days_of_month:
39
- other: '%{segments} день месяца'
40
- many: '%{segments} день месяца'
41
- few: '%{segments} день месяца'
42
- one: '%{segments} день месяца'
43
- days_of_year:
44
- other: '%{segments} день года'
45
- many: '%{segments} день года'
46
- few: '%{segments} день года'
47
- one: '%{segments} день года'
48
- at_hours_of_the_day:
49
- other: в %{segments} часы дня
50
- many: в %{segments} часы дня
51
- few: в %{segments} часы дня
52
- one: в %{segments} час дня
53
- on_minutes_of_hour:
54
- other: в %{segments} минуты часа
55
- many: в %{segments} минуты часа
56
- few: в %{segments} минуты часа
57
- one: в %{segments} минуту часа
58
- on_seconds_of_minute:
59
- other: на %{segments} секунде минуты
60
- many: на %{segments} секунде минуты
61
- few: на %{segments} секунде минуты
62
- one: на %{segments} секунде минуты
63
- each_second:
64
- one: Ежесекундно
65
- few: Каждые %{count} секунды
66
- many: Каждые %{count} секунд
67
- other: Каждые %{count} секунды
68
- each_minute:
69
- one: Ежеминутно
70
- few: Каждые %{count} минуты
71
- many: Каждые %{count} минут
72
- other: Каждые %{count} минуты
73
- each_hour:
74
- one: Каждый час
75
- few: Каждые %{count} часа
76
- many: Каждые %{count} часов
77
- other: Каждые %{count} часа
78
- each_day:
79
- one: Ежедневно
80
- few: Каждые %{count} дня
81
- many: Каждые %{count} дней
82
- other: Каждые %{count} дня
83
- each_week:
84
- one: Еженедельно
85
- few: Каждые %{count} недели
86
- many: Каждые %{count} недель
87
- other: Каждые %{count} недели
88
- each_month:
89
- one: Ежемесячно
90
- few: Каждые %{count} месяца
91
- many: Каждые %{count} месяцев
92
- other: Каждые %{count} месяца
93
- each_year:
94
- one: Ежегодно
95
- few: Каждые %{count} года
96
- many: Каждые %{count} лет
97
- other: Каждые %{count} года
98
- 'on': в %{sentence}
99
- in: 'через %{target}'
100
- integer:
101
- negative: '%{ordinal} с конца'
102
- literal_ordinals:
103
- -1: последний
104
- -2: предпоследний
105
- ordinal: '%{number}%{ordinal}'
106
- ordinals:
107
- default: ''
108
- on_weekends: на выходных
109
- on_weekdays: по будням
110
- days_on:
111
- - воскресеньям
112
- - понедельникам
113
- - вторникам
114
- - средам
115
- - четвергам
116
- - пятницам
117
- - субботам
118
- on_days: по %{days}
119
- array:
120
- last_word_connector: ' и '
121
- two_words_connector: ' и '
122
- words_connector: ', '
123
- string:
124
- format:
125
- day: '%{rest} %{current}'
126
- day_of_week: '%{rest} %{current}'
127
- day_of_month: '%{rest} %{current}'
128
- day_of_year: '%{rest} %{current}'
129
- hour_of_day: '%{rest} %{current}'
130
- minute_of_hour: '%{rest} %{current}'
131
- until: '%{rest} %{current}'
132
- count: '%{rest} %{current}'
133
- default: '%{rest} %{current}'
134
-
135
- date:
136
- abbr_day_names:
137
- - Вс
138
- - Пн
139
- - Вт
140
- - Ср
141
- - Чт
142
- - Пт
143
- - Сб
144
- abbr_month_names:
145
- -
146
- - Янв.
147
- - Февр.
148
- - Марта
149
- - Апр.
150
- - Мая
151
- - Июня
152
- - Июля
153
- - Авг.
154
- - Сент.
155
- - Окт.
156
- - Нояб.
157
- - Дек.
158
- day_names:
159
- - Воскресенье
160
- - Понедельник
161
- - Вторник
162
- - Среда
163
- - Четверг
164
- - Пятница
165
- - Суббота
166
- formats:
167
- default: "%d.%m.%Y"
168
- short: "%d %b"
169
- long: "%d %B %Y"
170
- month_names:
171
- -
172
- - Января
173
- - Февраля
174
- - Марта
175
- - Апреля
176
- - Мая
177
- - Июня
178
- - Июля
179
- - Августа
180
- - Сентября
181
- - Октября
182
- - Ноября
183
- - Декабря
184
- order:
185
- - :day
186
- - :month
187
- - :year
188
-
189
- time:
190
- am: утра
191
- formats:
192
- default: "%a, %d %b %Y, %H:%M:%S %z"
193
- short: "%d %b, %H:%M"
194
- long: "%d %B %Y, %H:%M"
195
- pm: вечера
@@ -1,169 +0,0 @@
1
- sv:
2
- ice_cube:
3
- pieces_connector: ' / '
4
- not: 'inte %{target}'
5
- not_on: 'inte i %{target}'
6
- date:
7
- formats:
8
- default: '%-d %B %Y'
9
- month_names:
10
- -
11
- - januari
12
- - februari
13
- - mars
14
- - april
15
- - maj
16
- - juni
17
- - juli
18
- - augusti
19
- - september
20
- - oktober
21
- - november
22
- - december
23
- day_names:
24
- - söndag
25
- - måndag
26
- - tisdag
27
- - onsdag
28
- - torsdag
29
- - fredag
30
- - lördag
31
- times:
32
- other: '%{count} gånger'
33
- one: '%{count} gång'
34
- until: 'tills %{date}'
35
- days_of_week: '%{segments} %{day}'
36
- days_of_month:
37
- other: '%{segments} dagen i månaden'
38
- one: '%{segments} dagen i månaden'
39
- days_of_year:
40
- other: '%{segments} dagen på året'
41
- one: '%{segments} dagen på året'
42
- at_hours_of_the_day:
43
- other: i %{segments} timme på dygnet
44
- one: i %{segments} timme på dygnet
45
- on_minutes_of_hour:
46
- other: i %{segments} minuter av timmen
47
- one: i %{segments} minuten av timmen
48
- on_seconds_of_minute:
49
- other: på %{segments} sekunden av minuten
50
- one: på %{segments} sekunden av minuten
51
- each_second:
52
- one: Varje sekund
53
- other: Varje %{count} sekund
54
- each_minute:
55
- one: Varje minut
56
- other: Varje %{count} minut
57
- each_hour:
58
- one: Varje timme
59
- other: Varje %{count} timme
60
- each_day:
61
- one: Varje dag
62
- other: Varje %{count} dag
63
- each_week:
64
- one: Varje vecka
65
- other: Varje %{count} vecka
66
- each_month:
67
- one: Varje månad
68
- other: Varje %{count} månad
69
- each_year:
70
- one: Varje år
71
- other: Varje %{count} år
72
- 'on': i %{sentence}
73
- in: 'efter %{target}'
74
- integer:
75
- negative: '%{ordinal} från slutet'
76
- literal_ordinals:
77
- -1: sista
78
- -2: nästsista
79
- ordinal: '%{number}%{ordinal}'
80
- ordinals:
81
- default: ''
82
- on_weekends: på helger
83
- on_weekdays: på vardagar
84
- days_on:
85
- - söndagar
86
- - måndagar
87
- - tisdagar
88
- - onsdagar
89
- - torsdagar
90
- - fredagar
91
- - lördagar
92
- on_days: på %{days}
93
- array:
94
- last_word_connector: ' och '
95
- two_words_connector: ' och '
96
- words_connector: ', '
97
- string:
98
- format:
99
- day: '%{rest} %{current}'
100
- day_of_week: '%{rest} %{current}'
101
- day_of_month: '%{rest} %{current}'
102
- day_of_year: '%{rest} %{current}'
103
- hour_of_day: '%{rest} %{current}'
104
- minute_of_hour: '%{rest} %{current}'
105
- until: '%{rest} %{current}'
106
- count: '%{rest} %{current}'
107
- default: '%{rest} %{current}'
108
-
109
- date:
110
- abbr_day_names:
111
- - Sön
112
- - Mån
113
- - Tis
114
- - Ons
115
- - Tor
116
- - Fre
117
- - Lör
118
- abbr_month_names:
119
- -
120
- - Jan
121
- - Feb
122
- - Mar
123
- - Apr
124
- - Maj
125
- - Jun
126
- - Jul
127
- - Aug
128
- - Sep
129
- - Okt
130
- - Mov
131
- - Dec
132
- day_names:
133
- - Söndag
134
- - Måndag
135
- - Tisdag
136
- - Onsdag
137
- - Torsdag
138
- - Fredag
139
- - Lördag
140
- formats:
141
- default: "%Y-%m-%d"
142
- long: "%e %B %Y"
143
- short: "%e %b"
144
- month_names:
145
- -
146
- - Januari
147
- - Februari
148
- - Mars
149
- - April
150
- - Maj
151
- - Juni
152
- - Juli
153
- - Augusti
154
- - September
155
- - Oktober
156
- - November
157
- - December
158
- order:
159
- - :day
160
- - :month
161
- - :year
162
-
163
- time:
164
- am: ''
165
- formats:
166
- default: "%a, %e %b %Y %H:%M:%S %z"
167
- long: "%e %B %Y %H:%M"
168
- short: "%e %b %H:%M"
169
- pm: ''