month.rb 0.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/lib/Array/extract_optionsX.rb +14 -0
- data/lib/Date/to_month.rb +12 -0
- data/lib/Month/Constants.rb +31 -0
- data/lib/Month/VERSION.rb +6 -0
- data/lib/Month/_comparator.rb +18 -0
- data/lib/Month/begin_date.rb +13 -0
- data/lib/Month/beginning.rb +13 -0
- data/lib/Month/beginning_of_month.rb +13 -0
- data/lib/Month/beginning_of_the_month.rb +13 -0
- data/lib/Month/cdate.rb +13 -0
- data/lib/Month/cdates.rb +13 -0
- data/lib/Month/date.rb +13 -0
- data/lib/Month/dates.rb +13 -0
- data/lib/Month/day.rb +12 -0
- data/lib/Month/day_long.rb +12 -0
- data/lib/Month/day_short.rb +12 -0
- data/lib/Month/day_shortest.rb +12 -0
- data/lib/Month/days.rb +13 -0
- data/lib/Month/days_in_month.rb +10 -0
- data/lib/Month/days_in_the_month.rb +10 -0
- data/lib/Month/each_day.rb +13 -0
- data/lib/Month/end.rb +13 -0
- data/lib/Month/end_date.rb +13 -0
- data/lib/Month/end_of_month.rb +13 -0
- data/lib/Month/end_of_the_month.rb +13 -0
- data/lib/Month/eqlQ.rb +11 -0
- data/lib/Month/finish.rb +13 -0
- data/lib/Month/finish_date.rb +13 -0
- data/lib/Month/finish_of_month.rb +13 -0
- data/lib/Month/finish_of_the_month.rb +13 -0
- data/lib/Month/hash.rb +12 -0
- data/lib/Month/initialize.rb +27 -0
- data/lib/Month/last.rb +13 -0
- data/lib/Month/last_month.rb +13 -0
- data/lib/Month/last_year.rb +13 -0
- data/lib/Month/method_missing.rb +21 -0
- data/lib/Month/minus.rb +20 -0
- data/lib/Month/next.rb +13 -0
- data/lib/Month/next_month.rb +13 -0
- data/lib/Month/next_year.rb +13 -0
- data/lib/Month/plus.rb +16 -0
- data/lib/Month/prev.rb +13 -0
- data/lib/Month/prev_month.rb +13 -0
- data/lib/Month/previous.rb +13 -0
- data/lib/Month/previous_month.rb +13 -0
- data/lib/Month/prior.rb +12 -0
- data/lib/Month/prior_month.rb +13 -0
- data/lib/Month/self.begin_date.rb +23 -0
- data/lib/Month/self.beginning.rb +12 -0
- data/lib/Month/self.beginning_of_month.rb +12 -0
- data/lib/Month/self.beginning_of_the_month.rb +12 -0
- data/lib/Month/self.cdate.rb +36 -0
- data/lib/Month/self.cdates.rb +54 -0
- data/lib/Month/self.date.rb +36 -0
- data/lib/Month/self.dates.rb +54 -0
- data/lib/Month/self.day.rb +20 -0
- data/lib/Month/self.day_long.rb +12 -0
- data/lib/Month/self.day_short.rb +20 -0
- data/lib/Month/self.day_shortest.rb +20 -0
- data/lib/Month/self.days.rb +31 -0
- data/lib/Month/self.days_in_month.rb +12 -0
- data/lib/Month/self.days_in_the_month.rb +12 -0
- data/lib/Month/self.end.rb +12 -0
- data/lib/Month/self.end_date.rb +24 -0
- data/lib/Month/self.end_of_month.rb +12 -0
- data/lib/Month/self.end_of_the_month.rb +12 -0
- data/lib/Month/self.finish.rb +12 -0
- data/lib/Month/self.finish_date.rb +12 -0
- data/lib/Month/self.finish_of_month.rb +12 -0
- data/lib/Month/self.finish_of_the_month.rb +12 -0
- data/lib/Month/self.from_date.rb +14 -0
- data/lib/Month/self.last.rb +12 -0
- data/lib/Month/self.last_month.rb +12 -0
- data/lib/Month/self.last_year.rb +14 -0
- data/lib/Month/self.method_missing.rb +20 -0
- data/lib/Month/self.next.rb +28 -0
- data/lib/Month/self.next_month.rb +12 -0
- data/lib/Month/self.next_year.rb +14 -0
- data/lib/Month/self.now.rb +12 -0
- data/lib/Month/self.of.rb +37 -0
- data/lib/Month/self.prev.rb +28 -0
- data/lib/Month/self.prev_month.rb +12 -0
- data/lib/Month/self.previous.rb +12 -0
- data/lib/Month/self.previous_month.rb +12 -0
- data/lib/Month/self.prior.rb +12 -0
- data/lib/Month/self.prior_month.rb +12 -0
- data/lib/Month/self.start.rb +12 -0
- data/lib/Month/self.start_date.rb +12 -0
- data/lib/Month/self.start_of_month.rb +12 -0
- data/lib/Month/self.start_of_the_month.rb +12 -0
- data/lib/Month/self.succ.rb +12 -0
- data/lib/Month/self.succ_month.rb +12 -0
- data/lib/Month/self.successor.rb +12 -0
- data/lib/Month/self.successor_month.rb +12 -0
- data/lib/Month/self.this.rb +15 -0
- data/lib/Month/self.to_i.rb +13 -0
- data/lib/Month/self.to_long.rb +20 -0
- data/lib/Month/self.to_num.rb +20 -0
- data/lib/Month/self.to_number.rb +12 -0
- data/lib/Month/self.to_short.rb +20 -0
- data/lib/Month/self.today.rb +12 -0
- data/lib/Month/self.wday.rb +20 -0
- data/lib/Month/start.rb +13 -0
- data/lib/Month/start_date.rb +13 -0
- data/lib/Month/start_of_month.rb +13 -0
- data/lib/Month/start_of_the_month.rb +13 -0
- data/lib/Month/succ.rb +13 -0
- data/lib/Month/succ_month.rb +13 -0
- data/lib/Month/successor.rb +13 -0
- data/lib/Month/successor_month.rb +13 -0
- data/lib/Month/to_date.rb +13 -0
- data/lib/Month/to_i.rb +13 -0
- data/lib/Month/to_long.rb +13 -0
- data/lib/Month/to_num.rb +13 -0
- data/lib/Month/to_number.rb +13 -0
- data/lib/Month/to_s.rb +18 -0
- data/lib/Month/to_short.rb +13 -0
- data/lib/Month.rb +11 -0
- metadata +178 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
# Month/self.of.rb
|
2
|
+
# Month.of
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
require 'Month/initialize'
|
6
|
+
|
7
|
+
class Month
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def of(*args)
|
11
|
+
year, month = (
|
12
|
+
case args.size
|
13
|
+
# when 0; [Date.today.year, Date.today.month]
|
14
|
+
when 1; [Date.today.year, args[0]]
|
15
|
+
when 2; [args[0], args[1]]
|
16
|
+
else; raise ArgumentError, "too many arguments (#{args.size} for 0, 1, or 2)"
|
17
|
+
end
|
18
|
+
)
|
19
|
+
case month.to_s
|
20
|
+
when /^(J|j)an(uary)*$/; new(year, 1)
|
21
|
+
when /^(F|f)eb(ruary)*$/; new(year, 2)
|
22
|
+
when /^(M|m)ar(ch)*$/; new(year, 3)
|
23
|
+
when /^(A|a)pr(il)*$/; new(year, 4)
|
24
|
+
when /^(M|m)ay$/; new(year, 5)
|
25
|
+
when /^(J|j)un(e)*$/; new(year, 6)
|
26
|
+
when /^(J|j)ul(y)*$/; new(year, 7)
|
27
|
+
when /^(A|a)ug(ust)*$/; new(year, 8)
|
28
|
+
when /^(S|s)ep(tember)*$/; new(year, 9)
|
29
|
+
when /^(O|o)ct(ober)*$/; new(year, 10)
|
30
|
+
when /^(N|n)ov(ember)*$/; new(year, 11)
|
31
|
+
when /^(D|d)ec(ember)*$/; new(year, 12)
|
32
|
+
else; nil
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# Month/self.prev.rb
|
2
|
+
# Month.prev
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
require 'Month/initialize'
|
6
|
+
|
7
|
+
class Month
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def prev(*args)
|
11
|
+
year, month = (
|
12
|
+
case args.size
|
13
|
+
when 0; [Date.today.year, Date.today.month]
|
14
|
+
when 1; [Date.today.year, args[0]]
|
15
|
+
when 2; [args[0], args[1]]
|
16
|
+
else; raise ArgumentError, "too many arguments (#{args.size} for 0, 1, or 2)"
|
17
|
+
end
|
18
|
+
)
|
19
|
+
fail unless (1..12).include?(month)
|
20
|
+
if month == 1
|
21
|
+
Month.new(year - 1, 12)
|
22
|
+
else
|
23
|
+
Month.new(year, month - 1)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Month/self.to_long.rb
|
2
|
+
# Month.to_long
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
require 'Month/Constants'
|
6
|
+
|
7
|
+
class Month
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def to_long(month = Date.today.month)
|
11
|
+
if i = MONTH_NAMES_SHORT.index(month.to_s.capitalize); MONTH_NAMES_LONG[i]
|
12
|
+
elsif i = MONTH_NAMES_LONG.index(month.to_s.capitalize); MONTH_NAMES_LONG[i]
|
13
|
+
elsif i = MONTH_NUMBERS.to_a.index(month); MONTH_NAMES_LONG[i]
|
14
|
+
elsif i = MONTH_NUMBERS_AS_STRINGS.to_a.index(month.to_s); MONTH_NAMES_LONG[i]
|
15
|
+
else; nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Month/self.to_num.rb
|
2
|
+
# Month.to_num
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
require 'Month/Constants'
|
6
|
+
|
7
|
+
class Month
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def to_num(month = Date.today.month)
|
11
|
+
if i = MONTH_NAMES_SHORT.index(month.to_s.capitalize); i + 1
|
12
|
+
elsif i = MONTH_NAMES_LONG.index(month.to_s.capitalize); i + 1
|
13
|
+
elsif i = MONTH_NUMBERS.to_a.index(month); i + 1
|
14
|
+
elsif i = MONTH_NUMBERS_AS_STRINGS.to_a.index(month.to_s); i + 1
|
15
|
+
else; nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Month/self.to_short.rb
|
2
|
+
# Month.to_short
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
require 'Month/Constants'
|
6
|
+
|
7
|
+
class Month
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def to_short(month = Date.today.month)
|
11
|
+
if i = MONTH_NAMES_SHORT.index(month.to_s.capitalize); MONTH_NAMES_SHORT[i]
|
12
|
+
elsif i = MONTH_NAMES_LONG.index(month.to_s.capitalize); MONTH_NAMES_SHORT[i]
|
13
|
+
elsif i = MONTH_NUMBERS.to_a.index(month); MONTH_NAMES_SHORT[i]
|
14
|
+
elsif i = MONTH_NUMBERS_AS_STRINGS.to_a.index(month.to_s); MONTH_NAMES_SHORT[i]
|
15
|
+
else; nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# Month/self.wday.rb
|
2
|
+
# Month.wday
|
3
|
+
|
4
|
+
require 'date'
|
5
|
+
require 'Month/Constants'
|
6
|
+
|
7
|
+
class Month
|
8
|
+
class << self
|
9
|
+
|
10
|
+
def wday(date, month = Date.today.month, year = Date.today.year)
|
11
|
+
date, month, year = date.to_i, self.to_num(month), year.to_i
|
12
|
+
if MONTH_DAY_NUMBERS.to_a.member?(date) && MONTH_NUMBERS.to_a.member?(month) && (year.to_s =~ /\d/)
|
13
|
+
Date.new(year, month, date).wday
|
14
|
+
else
|
15
|
+
nil
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
20
|
+
end
|
data/lib/Month/start.rb
ADDED
data/lib/Month/succ.rb
ADDED
data/lib/Month/to_i.rb
ADDED
data/lib/Month/to_num.rb
ADDED
data/lib/Month/to_s.rb
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# Month/to_s.rb
|
2
|
+
# Month#to_s
|
3
|
+
|
4
|
+
require 'Month/initialize'
|
5
|
+
require 'Month/to_long'
|
6
|
+
require 'Month/to_short'
|
7
|
+
|
8
|
+
class Month
|
9
|
+
|
10
|
+
def to_s(month_name_length = :long)
|
11
|
+
case month_name_length.to_sym
|
12
|
+
when :long; "#{to_long} #{year}"
|
13
|
+
when :short, 'short'; "#{to_short} #{year}"
|
14
|
+
when :iso, :iso_8601; "#{year}-" + "%02d" % month
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/lib/Month.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
# Month.rb
|
2
|
+
# Month
|
3
|
+
|
4
|
+
lib_dir = File.expand_path(File.join(File.dirname(__FILE__)))
|
5
|
+
$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
|
6
|
+
|
7
|
+
require 'Date/to_month'
|
8
|
+
require 'Month/Constants'
|
9
|
+
|
10
|
+
lib_files = Dir[File.join(lib_dir, 'Month', '*.rb')].reject{|file| file =~ /Constants/ }
|
11
|
+
lib_files.each{|lib_file| load lib_file}
|