calendar_builder 0.0.1.rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +23 -0
- data/Gemfile +4 -0
- data/Guardfile +9 -0
- data/LICENSE +22 -0
- data/README.md +34 -0
- data/Rakefile +11 -0
- data/calendar_builder.gemspec +22 -0
- data/lib/calendar_builder.rb +75 -0
- data/lib/calendar_builder/calendar.rb +83 -0
- data/lib/calendar_builder/calendar_date.rb +67 -0
- data/lib/calendar_builder/railtie.rb +8 -0
- data/lib/calendar_builder/version.rb +4 -0
- data/lib/calendar_builder/view_helpers.rb +7 -0
- data/spec/calendar_builder/calendar_builder_spec.rb +7 -0
- data/spec/calendar_builder/calendar_date_spec.rb +30 -0
- data/spec/calendar_builder/calendar_spec.rb +150 -0
- data/spec/calendar_builder/version_spec.rb +5 -0
- data/spec/spec_helper.rb +6 -0
- metadata +101 -0
data/.gitignore
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
.DS_Store
|
2
|
+
.*.swp
|
3
|
+
*.orig
|
4
|
+
*.cp
|
5
|
+
*~
|
6
|
+
*.gem
|
7
|
+
*.rbc
|
8
|
+
.bundle
|
9
|
+
.config
|
10
|
+
.yardoc
|
11
|
+
.rvmrc
|
12
|
+
Gemfile.lock
|
13
|
+
InstalledFiles
|
14
|
+
_yardoc
|
15
|
+
coverage
|
16
|
+
doc/
|
17
|
+
lib/bundler/man
|
18
|
+
pkg
|
19
|
+
rdoc
|
20
|
+
spec/reports
|
21
|
+
test/tmp
|
22
|
+
test/version_tmp
|
23
|
+
tmp
|
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,9 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'rspec', :cli => '--color' do
|
5
|
+
watch(%r{^spec/.+_spec\.rb$})
|
6
|
+
watch(%r{^lib/calendar_builder/(.+)\.rb$}) { |m| "spec/calendar_builder/#{m[1]}_spec.rb" }
|
7
|
+
watch('spec/spec_helper.rb') { "spec" }
|
8
|
+
end
|
9
|
+
|
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Marcos G. Zimmermann
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
CalendarBuilder
|
2
|
+
===============
|
3
|
+
|
4
|
+
Simple calendar helper
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
gem 'calendar_builder'
|
11
|
+
|
12
|
+
And then execute:
|
13
|
+
|
14
|
+
$ bundle
|
15
|
+
|
16
|
+
Or install it yourself as:
|
17
|
+
|
18
|
+
$ gem install calendar_builder
|
19
|
+
|
20
|
+
## Usage
|
21
|
+
|
22
|
+
~> In development
|
23
|
+
|
24
|
+
## Reporting Bugs / Feature Requests
|
25
|
+
Please [open an Issue on GitHub](https://github.com/marcosgz/calendar_builder/issues) if you have feedback, new feature requests, or want to report a bug. Thank you!
|
26
|
+
|
27
|
+
|
28
|
+
## Contributing
|
29
|
+
|
30
|
+
1. Fork it
|
31
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
32
|
+
3. Commit your changes (`git commit -am 'Added some feature'`)
|
33
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
34
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/calendar_builder/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |gem|
|
5
|
+
gem.authors = ["Marcos G. Zimmermann"]
|
6
|
+
gem.email = ["mgzmaster@gmail.com"]
|
7
|
+
gem.description = %q{Simple calendar helper}
|
8
|
+
gem.summary = %q{Simple calendar}
|
9
|
+
gem.homepage = "http://github.com/marcosgz/calendar_builder"
|
10
|
+
gem.license = %q{MIT}
|
11
|
+
|
12
|
+
gem.add_development_dependency "rspec"
|
13
|
+
gem.add_development_dependency "guard-rspec"
|
14
|
+
|
15
|
+
|
16
|
+
gem.files = `git ls-files`.split($\)
|
17
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
18
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
|
+
gem.name = "calendar_builder"
|
20
|
+
gem.require_paths = ["lib"]
|
21
|
+
gem.version = CalendarBuilder::VERSION
|
22
|
+
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require 'rubygems'
|
3
|
+
require 'date'
|
4
|
+
|
5
|
+
require "calendar_builder/version"
|
6
|
+
require "calendar_builder/calendar"
|
7
|
+
require "calendar_builder/calendar_date"
|
8
|
+
|
9
|
+
require 'calendar_builder/railtie' if defined?(Rails::Railtie)
|
10
|
+
|
11
|
+
module CalendarBuilder
|
12
|
+
def self.build(*args, &block)
|
13
|
+
calendar = Calendar.new(*args)
|
14
|
+
block.arity < 1 ? calendar.instance_eval(&block) : block.call(calendar) if block_given?
|
15
|
+
return calendar
|
16
|
+
end
|
17
|
+
|
18
|
+
|
19
|
+
def self.render_table(*args, &block)
|
20
|
+
options = args.last.is_a?(::Hash) ? args.pop : {}
|
21
|
+
|
22
|
+
[].tap do |html|
|
23
|
+
html << "<table class=\"#{ [options[:table_class] || 'calendar'].flatten.compact.join(' ') }\">"
|
24
|
+
|
25
|
+
Calendar.new(*args) do |calendar|
|
26
|
+
# Setup weekstart
|
27
|
+
calendar.week_start = options[:week_start] if options.has_key?(:week_start)
|
28
|
+
# Table Header
|
29
|
+
html << '<thead>'
|
30
|
+
unless options[:hide_month_names]
|
31
|
+
html << '<tr class="month_names">'
|
32
|
+
html << "<th class=\"previous #{ Date::MONTHNAMES[calendar.calendar_date.prev_month].to_s.downcase }\" colspan=\"2\">#{ options[:previous_month] }</th>"
|
33
|
+
html << "<th class=\"current #{ Date::MONTHNAMES[calendar.calendar_date.month].to_s.downcase }\" colspan=\"3\">#{ Date::MONTHNAMES[calendar.calendar_date.month] }</th>"
|
34
|
+
html << "<th class=\"next #{ Date::MONTHNAMES[calendar.calendar_date.next_month].to_s.downcase }\" colspan=\"2\">#{ options[:next_month] }</th>"
|
35
|
+
html << '</tr>'
|
36
|
+
end
|
37
|
+
unless options[:hide_weekday_names]
|
38
|
+
html << '<tr class="weekday_names">'
|
39
|
+
calendar.weekday_names("%a").each do |key, value|
|
40
|
+
html << "<th class=\"#{ key.downcase }\" scope=\"col\"><abbr title=\"#{ key }\">#{value}</abbr></th>"
|
41
|
+
end
|
42
|
+
html << '</tr>'
|
43
|
+
end
|
44
|
+
html << '</thead>'
|
45
|
+
# Table Body
|
46
|
+
html << "<tbody>"
|
47
|
+
arr = calendar.dates
|
48
|
+
# calendar.dates.in_groups_of(7, false)
|
49
|
+
(0..arr.size/7 - 1).collect{|i| arr[i*7, 7]}.each do |dates|
|
50
|
+
tr_classes = ['week']
|
51
|
+
dates.each do |d|
|
52
|
+
tr_classes << 'current_week' if d.week == calendar.calendar_date.week
|
53
|
+
end
|
54
|
+
html << "<tr class=\"#{tr_classes.uniq.join(' ')}\">"
|
55
|
+
dates.each do |d|
|
56
|
+
td_classes = ['day']
|
57
|
+
td_classes << 'prev_month' if d.prev_month?
|
58
|
+
td_classes << 'next_month' if d.next_month?
|
59
|
+
td_classes << 'otherMonth' if d.prev_month? || d.next_month?
|
60
|
+
td_classes << 'weekend' if d.weekend?
|
61
|
+
td_classes << 'current' if d.current?
|
62
|
+
td_classes << 'today' if d.today?
|
63
|
+
html << "<td class=\"#{td_classes.join(' ')}\">"
|
64
|
+
html << (block_given? ? block.call(d) : "<span>#{d.day}</span>")
|
65
|
+
html << "</td>"
|
66
|
+
end
|
67
|
+
html << "</tr>"
|
68
|
+
end
|
69
|
+
html << "</tbody>"
|
70
|
+
end
|
71
|
+
html << "</table>"
|
72
|
+
end.join("\n")
|
73
|
+
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,83 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
module CalendarBuilder
|
3
|
+
class Calendar
|
4
|
+
attr_reader :date
|
5
|
+
|
6
|
+
def initialize(*args, &block)
|
7
|
+
@date = Date.new(*args.map(&:to_i).reject{|x| x.zero? })
|
8
|
+
block.arity < 1 ? instance_eval(&block) : block.call(self) if block_given?
|
9
|
+
self
|
10
|
+
end
|
11
|
+
|
12
|
+
|
13
|
+
# :sunday, :monday
|
14
|
+
def week_start=(val='Sunday')
|
15
|
+
@week_start = \
|
16
|
+
case val.class.name
|
17
|
+
when 'String', 'Symbol'
|
18
|
+
Date::DAYNAMES[0,2].each_with_index.select do |day_name, index|
|
19
|
+
day_name =~ /^#{val.to_s}$/i
|
20
|
+
end.map{|d, i| i }.first
|
21
|
+
when 'Fixnum'
|
22
|
+
val if [0, 1].include?(val)
|
23
|
+
end || 0
|
24
|
+
end
|
25
|
+
|
26
|
+
|
27
|
+
def week_start
|
28
|
+
@week_start || 0
|
29
|
+
end
|
30
|
+
|
31
|
+
|
32
|
+
def calendar_date
|
33
|
+
@calendar_date ||= CalendarDate.new(self, self.date)
|
34
|
+
end
|
35
|
+
|
36
|
+
def first_date
|
37
|
+
@first_date ||= begin
|
38
|
+
y = self.date.year
|
39
|
+
m = self.date.month
|
40
|
+
d = (1..31).detect{|x| Date.valid_date?(y, m, x)}
|
41
|
+
fd = Date.new(y, m, d)
|
42
|
+
fd -= (fd.jd - self.week_start+1) % 7
|
43
|
+
fd
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
def last_date
|
49
|
+
@last_date ||= begin
|
50
|
+
y = self.date.year
|
51
|
+
m = self.date.month
|
52
|
+
d = (1..31).to_a.reverse.detect{|x| Date.valid_date?(y, m, x)}
|
53
|
+
ld = Date.new(y, m, d)
|
54
|
+
ld += (ld.wday != week_start ? 6-(ld.wday-week_start) : 0)
|
55
|
+
ld
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
|
60
|
+
def all_dates
|
61
|
+
(first_date..last_date).to_a
|
62
|
+
end
|
63
|
+
|
64
|
+
|
65
|
+
def dates(&block)
|
66
|
+
self.all_dates.map do |date|
|
67
|
+
obj = CalendarDate.new(self, date)
|
68
|
+
block.arity < 1 ? obj.instance_eval(&block) : block.call(obj) if block_given?
|
69
|
+
obj
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
# %a - The abbreviated weekday name ("Sun")
|
75
|
+
# %A - The full weekday name ("Sunday")
|
76
|
+
def weekday_names(str='%a')
|
77
|
+
all_dates[0, 7].inject({}) do |r, x|
|
78
|
+
r.merge Hash[x.strftime('%A'), x.strftime(str.to_s)]
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
|
3
|
+
module CalendarBuilder
|
4
|
+
class CalendarDate
|
5
|
+
attr_accessor :calendar, :date
|
6
|
+
|
7
|
+
def initialize(calendar, date)
|
8
|
+
@calendar = calendar
|
9
|
+
@date = date
|
10
|
+
end
|
11
|
+
|
12
|
+
def year
|
13
|
+
date.year
|
14
|
+
end
|
15
|
+
|
16
|
+
def month
|
17
|
+
date.month
|
18
|
+
end
|
19
|
+
|
20
|
+
def week
|
21
|
+
date.strftime( calendar.week_start==1 ? '%W' : '%U' ).to_i
|
22
|
+
end
|
23
|
+
|
24
|
+
# 0 = Sunday, 6 = Saturday
|
25
|
+
def weekend?
|
26
|
+
[0, 6].include?(date.wday)
|
27
|
+
end
|
28
|
+
|
29
|
+
def day
|
30
|
+
date.day
|
31
|
+
end
|
32
|
+
|
33
|
+
# Prev/Next
|
34
|
+
def next_month
|
35
|
+
self.month == 12 ? 1 : (self.month + 1)
|
36
|
+
end
|
37
|
+
|
38
|
+
def prev_month
|
39
|
+
self.month == 1 ? 12 : (self.month - 1)
|
40
|
+
end
|
41
|
+
|
42
|
+
def prev_month?
|
43
|
+
self.calendar_date.prev_month == self.month
|
44
|
+
end
|
45
|
+
|
46
|
+
def current_month?
|
47
|
+
self.calendar_date.month == self.month
|
48
|
+
end
|
49
|
+
|
50
|
+
def next_month?
|
51
|
+
self.calendar_date.next_month == self.month
|
52
|
+
end
|
53
|
+
|
54
|
+
def current?
|
55
|
+
self.calendar_date.date == self.date
|
56
|
+
end
|
57
|
+
|
58
|
+
def today?
|
59
|
+
self.date == Date.today
|
60
|
+
end
|
61
|
+
|
62
|
+
def calendar_date
|
63
|
+
calendar.calendar_date
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CalendarBuilder::CalendarDate do
|
4
|
+
pending :year
|
5
|
+
|
6
|
+
pending :month
|
7
|
+
|
8
|
+
pending :week
|
9
|
+
|
10
|
+
pending :weekend?
|
11
|
+
|
12
|
+
pending :day
|
13
|
+
|
14
|
+
pending :next_month
|
15
|
+
|
16
|
+
pending :prev_month
|
17
|
+
|
18
|
+
pending :prev_month?
|
19
|
+
|
20
|
+
pending :current_month?
|
21
|
+
|
22
|
+
pending :next_month?
|
23
|
+
|
24
|
+
pending :current?
|
25
|
+
|
26
|
+
pending :today?
|
27
|
+
|
28
|
+
pending :calendar_date
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,150 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe CalendarBuilder::Calendar do
|
4
|
+
describe :week_start do
|
5
|
+
let(:model) { CalendarBuilder::Calendar.new(Date.today.year, Date.today.mon)}
|
6
|
+
context "integer" do
|
7
|
+
[0, 1].each do |val|
|
8
|
+
it "allows '#{val}'" do
|
9
|
+
model.week_start = val
|
10
|
+
expect(model.week_start).to eq(val)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
(2..6).each do |val|
|
15
|
+
it "defaults 0 with '#{val}'" do
|
16
|
+
model.week_start = val
|
17
|
+
expect(model.week_start).to eq(0)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
it "defaults 0 with invalid values" do
|
22
|
+
model.week_start = 7
|
23
|
+
expect(model.week_start).to eq(0)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context "string" do
|
28
|
+
Date::DAYNAMES[0..1].map(&:downcase).each_with_index do |val, num|
|
29
|
+
it "allows '#{val}'" do
|
30
|
+
model.week_start = val
|
31
|
+
expect(model.week_start).to eq(num)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
Date::DAYNAMES[2..-1].map(&:downcase).each_with_index do |val, num|
|
36
|
+
it "defaults 0 with '#{val}'" do
|
37
|
+
model.week_start = val
|
38
|
+
expect(model.week_start).to eq(0)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
it "defaults 0 with invalid values" do
|
43
|
+
model.week_start = 'Foo'
|
44
|
+
expect(model.week_start).to eq(0)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
|
50
|
+
describe :date do
|
51
|
+
context "without args" do
|
52
|
+
subject { CalendarBuilder::Calendar.new.date }
|
53
|
+
it { should eq(Date.new)}
|
54
|
+
end
|
55
|
+
|
56
|
+
context "only year" do
|
57
|
+
subject { CalendarBuilder::Calendar.new(2013).date }
|
58
|
+
it { should eq(Date.new(2013))}
|
59
|
+
end
|
60
|
+
|
61
|
+
context "year and month" do
|
62
|
+
subject { CalendarBuilder::Calendar.new(2013, 1).date }
|
63
|
+
it { should eq(Date.new(2013, 1))}
|
64
|
+
end
|
65
|
+
|
66
|
+
context "year, month and day" do
|
67
|
+
subject { CalendarBuilder::Calendar.new(2013, 1, 31).date }
|
68
|
+
it { should eq(Date.new(2013, 1, 31))}
|
69
|
+
end
|
70
|
+
|
71
|
+
context "String arguments" do
|
72
|
+
subject { CalendarBuilder::Calendar.new("2013", "1", "31").date }
|
73
|
+
it { should eq(Date.new(2013, 1, 31))}
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
|
78
|
+
describe :first_date do
|
79
|
+
let(:model) { CalendarBuilder::Calendar.new(2013, 8, 26) }
|
80
|
+
|
81
|
+
context ":sunday week_start" do
|
82
|
+
before(:each) do
|
83
|
+
model.week_start = 'Sunday'
|
84
|
+
end
|
85
|
+
it { expect(model.first_date).to eq(Date.new(2013, 7, 28)) }
|
86
|
+
end
|
87
|
+
|
88
|
+
context ":monday week_start" do
|
89
|
+
before(:each) do
|
90
|
+
model.week_start = 'Monday'
|
91
|
+
end
|
92
|
+
it { expect(model.first_date).to eq(Date.new(2013, 7, 29)) }
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
|
97
|
+
describe :last_date do
|
98
|
+
describe "July 2013" do
|
99
|
+
let(:model) { CalendarBuilder::Calendar.new(2013, 7, 10) }
|
100
|
+
|
101
|
+
context ":sunday week_start" do
|
102
|
+
before(:each) do
|
103
|
+
model.week_start = 'Sunday'
|
104
|
+
end
|
105
|
+
it { expect(model.last_date).to eq(Date.new(2013, 8, 3)) }
|
106
|
+
end
|
107
|
+
|
108
|
+
context ":monday week_start" do
|
109
|
+
before(:each) do
|
110
|
+
model.week_start = 'Monday'
|
111
|
+
end
|
112
|
+
it { expect(model.last_date).to eq(Date.new(2013, 8, 4)) }
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe "August 2013" do
|
117
|
+
let(:model) { CalendarBuilder::Calendar.new(2013, 8, 10) }
|
118
|
+
|
119
|
+
context ":sunday week_start" do
|
120
|
+
before(:each) do
|
121
|
+
model.week_start = 'Sunday'
|
122
|
+
end
|
123
|
+
it { expect(model.last_date).to eq(Date.new(2013, 8, 31)) }
|
124
|
+
end
|
125
|
+
|
126
|
+
context ":monday week_start" do
|
127
|
+
before(:each) do
|
128
|
+
model.week_start = 'Monday'
|
129
|
+
end
|
130
|
+
it { expect(model.last_date).to eq(Date.new(2013, 9, 1)) }
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
end
|
135
|
+
|
136
|
+
|
137
|
+
describe :all_dates do
|
138
|
+
before(:each) do
|
139
|
+
@model = CalendarBuilder::Calendar.new(2013, 8)
|
140
|
+
@model.instance_variable_set(:@first_date, @first_date=Date.new(2013,8,1))
|
141
|
+
@model.instance_variable_set(:@last_date, @last_date=Date.new(2013,8,10))
|
142
|
+
end
|
143
|
+
subject { @model.all_dates}
|
144
|
+
it { should eq((@first_date..@last_date).to_a)}
|
145
|
+
end
|
146
|
+
|
147
|
+
pending :dates
|
148
|
+
|
149
|
+
pending :weekday_names
|
150
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,101 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: calendar_builder
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.rc
|
5
|
+
prerelease: 6
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Marcos G. Zimmermann
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2013-08-26 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rspec
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: guard-rspec
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: Simple calendar helper
|
47
|
+
email:
|
48
|
+
- mgzmaster@gmail.com
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- .gitignore
|
54
|
+
- Gemfile
|
55
|
+
- Guardfile
|
56
|
+
- LICENSE
|
57
|
+
- README.md
|
58
|
+
- Rakefile
|
59
|
+
- calendar_builder.gemspec
|
60
|
+
- lib/calendar_builder.rb
|
61
|
+
- lib/calendar_builder/calendar.rb
|
62
|
+
- lib/calendar_builder/calendar_date.rb
|
63
|
+
- lib/calendar_builder/railtie.rb
|
64
|
+
- lib/calendar_builder/version.rb
|
65
|
+
- lib/calendar_builder/view_helpers.rb
|
66
|
+
- spec/calendar_builder/calendar_builder_spec.rb
|
67
|
+
- spec/calendar_builder/calendar_date_spec.rb
|
68
|
+
- spec/calendar_builder/calendar_spec.rb
|
69
|
+
- spec/calendar_builder/version_spec.rb
|
70
|
+
- spec/spec_helper.rb
|
71
|
+
homepage: http://github.com/marcosgz/calendar_builder
|
72
|
+
licenses:
|
73
|
+
- MIT
|
74
|
+
post_install_message:
|
75
|
+
rdoc_options: []
|
76
|
+
require_paths:
|
77
|
+
- lib
|
78
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
79
|
+
none: false
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ! '>'
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.3.1
|
90
|
+
requirements: []
|
91
|
+
rubyforge_project:
|
92
|
+
rubygems_version: 1.8.23
|
93
|
+
signing_key:
|
94
|
+
specification_version: 3
|
95
|
+
summary: Simple calendar
|
96
|
+
test_files:
|
97
|
+
- spec/calendar_builder/calendar_builder_spec.rb
|
98
|
+
- spec/calendar_builder/calendar_date_spec.rb
|
99
|
+
- spec/calendar_builder/calendar_spec.rb
|
100
|
+
- spec/calendar_builder/version_spec.rb
|
101
|
+
- spec/spec_helper.rb
|