clndr-rails 1.2.5.1 → 1.2.5.2

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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +11 -2
  3. data/lib/clndr-rails.rb +196 -171
  4. data/lib/clndr-rails/config.rb +48 -34
  5. data/lib/clndr-rails/engine.rb +1 -0
  6. data/lib/clndr-rails/errors.rb +1 -0
  7. data/lib/clndr-rails/helpers.rb +13 -13
  8. data/lib/clndr-rails/templates.rb +46 -43
  9. data/lib/clndr-rails/version.rb +1 -1
  10. data/test/dummy/app/controllers/base_controller.rb +5 -5
  11. data/test/dummy/app/views/base/index.html.erb +5 -1
  12. data/test/dummy/config/initializers/clndr.rb +23 -25
  13. data/test/dummy/log/development (/320/232/320/276/320/275/321/204/320/273/320/270/320/272/321/202/321/203/321/216/321/211/320/260/321/217 /320/272/320/276/320/277/320/270/321/217 /321/201 /320/272/320/276/320/274/320/277/321/214/321/216/321/202/320/265/321/200/320/260 DELTAPC2 2014-12-25).log" +19726 -0
  14. data/test/dummy/log/development.log +236 -0
  15. data/test/dummy/log/test.log +12484 -0
  16. data/test/dummy/spec/rails_helper.rb +2 -2
  17. data/test/dummy/spec/views/base/index.html.erb_spec.rb +4 -4
  18. data/test/dummy/test/helpers/base_helper_test.rb +1 -0
  19. data/test/dummy/tmp/cache/assets/development/sprockets/003c68cd1f3ba2d6344147bb52d8fd1a +0 -0
  20. data/test/dummy/tmp/cache/assets/development/sprockets/08b993c8e83ad57a4ecb8d753b4620d5 +0 -0
  21. data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
  22. data/test/dummy/tmp/cache/assets/development/sprockets/1d658adc7cb09c209c423c9138dbacee +0 -0
  23. data/test/dummy/tmp/cache/assets/development/sprockets/28cfd59c37a42a9ea808d622b0177c86 +0 -0
  24. data/test/dummy/tmp/cache/assets/development/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
  25. data/test/dummy/tmp/cache/assets/development/sprockets/4ad6cd41e5b645f9ceef10b1e3baea77 +0 -0
  26. data/test/dummy/tmp/cache/assets/development/sprockets/6c33e774b86f9ef5ba24ffbe52bed674 +0 -0
  27. data/test/dummy/tmp/cache/assets/development/sprockets/7b51783beb0f6f17617f87ef5d2688e3 +0 -0
  28. data/test/dummy/tmp/cache/assets/development/sprockets/9334f44096c23e8904784b524e6ae750 +0 -0
  29. data/test/dummy/tmp/cache/assets/development/sprockets/954c1c7328e5b9c43abd84f4981286c7 +0 -0
  30. data/test/dummy/tmp/cache/assets/development/sprockets/9bd8392ddf2b52be4b455e52a628d169 +0 -0
  31. data/test/dummy/tmp/cache/assets/development/sprockets/9c89c900cca1bf92a5f29c304d323256 +0 -0
  32. data/test/dummy/tmp/cache/assets/development/sprockets/9e158358644b7e1cbee43defd7d7b449 +0 -0
  33. data/test/dummy/tmp/cache/assets/development/sprockets/a086b63b827c2bdef684cc4985c925fc +0 -0
  34. data/test/dummy/tmp/cache/assets/development/sprockets/a62be18dea33018456ea9b72b4a9e10b +0 -0
  35. data/test/dummy/tmp/cache/assets/development/sprockets/ad861213dbd41ab02600f740c9bb1dee +0 -0
  36. data/test/dummy/tmp/cache/assets/development/sprockets/ae0ae68c837285b67a4fc1df4dddb939 +0 -0
  37. data/test/dummy/tmp/cache/assets/development/sprockets/c744c093e347d6c90bc75206f502a48e +0 -0
  38. data/test/dummy/tmp/cache/assets/development/sprockets/cc517e4ba5ef452b08d1ab48925b952d +0 -0
  39. data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
  40. data/test/dummy/tmp/cache/assets/development/sprockets/dc767a0bb27fb390899cd7e6ff34b310 +0 -0
  41. data/test/dummy/tmp/cache/assets/development/sprockets/e59e1f3e795e9486fffbc3b4ad0baaca +0 -0
  42. data/test/dummy/tmp/cache/assets/development/sprockets/e7296c70ca399cdcc73806b4a9481fde +0 -0
  43. data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
  44. data/test/dummy/tmp/pids/server.pid +1 -1
  45. data/test/spec/clnd-rails_spec.rb +29 -0
  46. data/test/spec/configuration_spec.rb +123 -0
  47. data/test/spec/events_spec.rb +63 -0
  48. data/test/spec/html_spec.rb +200 -0
  49. data/test/spec/rails_helper.rb +0 -0
  50. data/test/spec/spec_helper.rb +16 -0
  51. data/test/spec/templates_spec.rb +71 -0
  52. metadata +54 -3
  53. data/config/routes.rb +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9f4e08bd446aef87926fe037c230a154f6005d34
4
- data.tar.gz: bf1c82662950f69dcf29c3822376673caae502c8
3
+ metadata.gz: bcfb9af88681840cc8a39d9d5f58419cc23c3cb7
4
+ data.tar.gz: 6d3638267750032a543e264c8a92f82692007fa1
5
5
  SHA512:
6
- metadata.gz: cc1455a0d01001920d0c521644331f7d1ba120c72677d4fa1e5988d9b6bf9a00fabf007e2f5765f05ae719116b48f302345c3a832c4a805a7e64ee0c090cdae6
7
- data.tar.gz: 4238d1826dbc1cfd0a2a786c9c20196e59187dba8acb9cc29b6838a05bd8c8f9bd2626a095800bd3118184cbe6c44e569e17bb0cdf2e128d8e29857af81321cd
6
+ metadata.gz: e119b9ce2449950f9ca131068d076a9070db30459a99ca5ffd5efe73dbe58ee22a394f5faf9068c879bb8951722f4deedaad06c67d3a6798bda9d0b504e638be
7
+ data.tar.gz: 906b7581355652dbcf9b1e38c20cee95969a09bb659076e51992485811030cd0b4275f6d5ae87a06864d3f6294d30b073fa4db6318706305fb62d8a9354140fa
data/Rakefile CHANGED
@@ -1,2 +1,11 @@
1
- require "bundler/gem_tasks"
2
-
1
+ require 'bundler/gem_tasks'
2
+
3
+ require 'rake'
4
+ require 'rspec/core/rake_task'
5
+
6
+ RSpec::Core::RakeTask.new(:spec) do |t|
7
+ t.pattern = Dir.glob('test/spec/**/*_spec.rb')
8
+ t.rspec_opts = '--format documentation --color'
9
+
10
+ end
11
+ task :default => :spec
@@ -1,171 +1,196 @@
1
- require 'clndr-rails/engine'
2
- require "clndr-rails/version"
3
- require 'clndr-rails/errors'
4
-
5
-
6
- require 'momentjs-rails'
7
- require 'jquery-rails'
8
- require 'underscore-rails'
9
-
10
- class Clndr
11
-
12
- autoload :Helpers, 'clndr-rails/helpers'
13
- autoload :Template, 'clndr-rails/templates'
14
- require 'clndr-rails/config'
15
-
16
-
17
- include ActionView::Helpers
18
- include ActionView::Context
19
- include ActiveSupport::Inflector
20
- @@calendar_bean = {}
21
-
22
- class << self
23
-
24
- attr_accessor :calendar_bean
25
-
26
- # return calendar from calendars bean
27
- def get_calendar(calendar)
28
- clndr = @@calendar_bean[calendar.to_sym]
29
- if clndr.class == Clndr
30
- clndr
31
- else
32
- raise Clndr::Error::CalendarNotFound, "Calndear with name #{calendar} not found. Use Clndr.new(:#{calendar}) to create them"
33
- end
34
- end
35
- end
36
-
37
- attr_accessor :template, :weak_offset, :days_of_the_weak,:show_adjacent_months, :adjacent_days_change_month, :done_rendering, :events, :constraints
38
- attr_reader :name
39
-
40
-
41
-
42
- def initialize(name)
43
- @name = name.to_sym
44
- @template = @@template
45
- @weak_offset = @@weak_offset
46
- @start_with_month =@@start_with_month
47
- @days_of_the_weak = @@days_of_the_weak
48
- @click_events = @@click_events.clone
49
- @targets= @@targets.clone
50
- @show_adjacent_months= @@show_adjacent_months
51
- @adjacent_days_change_month = @@adjacent_days_change_month
52
- @done_rendering = @done_rendering
53
- @constraints =@@constraints
54
- @force_six_rows =@@force_six_rows
55
- @has_multiday= false
56
- @events =[]
57
- @@calendar_bean.merge! Hash[@name,self]
58
- end
59
-
60
- # return html of calendar
61
- def view(args)
62
- if @template == Clndr::Template::Full
63
- css_class = 'full-clndr-template'
64
- elsif @template == Clndr::Template::Mini
65
- css_class = 'mini-clndr-template'
66
- elsif @template == Clndr::Template::Simple
67
- css_class = 'simple-clndr-template'
68
- end
69
- content_tag(:div,nil,args)do
70
- content_tag(:div,nil,id:"#{@name}-clndr",class:"clearfix #{css_class}")+
71
- javascript_tag("var #{@name} = $('##{@name}-clndr').clndr({
72
- #{'template:'+@template+',' if !@template.nil?}
73
- #{'weekOffset:'+@weak_offset.to_s+',' if @weak_offset}
74
- #{'startWithMonth:\''+@start_with_month.to_s+'\',' if !@start_with_month.nil?}
75
- #{'daysOfTheWeek:'+@days_of_the_weak.to_s+',' if !@days_of_the_weak.nil?}
76
- #{build_from_hash(@click_events,'clickEvents')}
77
- #{build_from_hash_safety(@targets,'targets')}
78
- #{'showAdjacentMonths:'+@show_adjacent_months.to_s+',' if !@show_adjacent_months}
79
- #{'adjacentDaysChangeMonth:'+@adjacent_days_change_month.to_s+',' if @adjacent_days_change_month}
80
- #{'doneRendering:'+@done_rendering+',' if !@done_rendering.nil?}
81
- #{'forceSixRows:'+@force_six_rows.to_s+',' if @force_six_rows}
82
- #{ if @constraints.length >0
83
- build_from_hash_safety @constraints, 'constraints'
84
- end}
85
- #{if @has_multiday
86
- "multiDayEvents: {
87
- startDate: 'startDate',
88
- endDate: 'endDate'
89
- },"
90
- end}
91
- #{if @events.length > 0
92
- 'events:['+build_events(@events)+']'
93
- end}
94
- });")
95
-
96
-
97
- end
98
- end
99
-
100
- # if date is instance of Time convert to "YYYY-MM-DD" формат
101
- def start_with_month=(date)
102
- if date.class == Time
103
- @start_with_month= date.strftime("%F")
104
- else
105
- @start_with_month = date
106
- end
107
- end
108
-
109
- def click_event
110
- @click_events
111
- end
112
-
113
- def target
114
- @targets
115
- end
116
-
117
- def add_event(date,title,*other_data)
118
- date = format_date date
119
- event = {date: date,title:title}
120
- event.merge! *other_data if other_data.length>0
121
- @events.push event
122
-
123
- end
124
-
125
- def add_multiday_event(start_date,end_date,title,*other_data)
126
- start_date = format_date start_date
127
- end_date = format_date end_date
128
- event = {start_date:start_date,end_date:end_date,title:title}
129
- event.merge! *other_data if other_data.length >0
130
- @has_multiday ||= true
131
- @events.push event
132
- end
133
-
134
- private
135
-
136
- def build_from_hash(hash, parametr)
137
- if hash.length > 0
138
- "#{parametr}: {#{hash.map{|k,v|"#{k}:#{v},"}.join()}},"
139
- end
140
- end
141
-
142
- def build_from_hash_safety(hash, parametr)
143
- if hash.length > 0
144
- "#{parametr}: {#{hash.map{|k,v|"#{k}:'#{v}',"}.join()}},"
145
- end
146
- end
147
-
148
- def build_events(array_of_events)
149
- list_of_events=''
150
- array_of_events.each do |event|
151
- list_of_events +="{#{'date:\''+event.delete(:date)+'\',' if !event[:date].nil?}
152
- #{'startDate: \''+event.delete(:start_date)+'\','+
153
- 'endDate: \'' + event.delete(:end_date)+'\','if !event[:start_date].nil?}
154
- title: '#{event.delete(:title)}',
155
- #{event.map{|k,v| "#{k}:'#{v}'"}.join(',')}},"
156
- end
157
- # @events = nil
158
- list_of_events
159
- end
160
-
161
- def format_date(date)
162
- if date.class == Time
163
- date.strftime("%F")
164
- elsif date.match(/\d{4}\-\d{2}\-\d{2}/)
165
- date
166
- else
167
- raise Clndr::Error::WrongDateFormat
168
- end
169
- end
170
-
171
- end
1
+ require 'clndr-rails/engine'
2
+ require 'clndr-rails/version'
3
+ require 'clndr-rails/errors'
4
+
5
+
6
+ require 'momentjs-rails'
7
+ require 'jquery-rails'
8
+ require 'underscore-rails'
9
+
10
+ class Clndr
11
+
12
+ autoload :Helpers, 'clndr-rails/helpers'
13
+ autoload :Template, 'clndr-rails/templates'
14
+ require 'clndr-rails/config'
15
+
16
+
17
+
18
+ include ActionView::Helpers
19
+ include ActionView::Context
20
+ include ActiveSupport::Inflector
21
+ @@calendar_basket = {}
22
+ cattr_reader :calendar_basket
23
+
24
+ class << self
25
+
26
+ # return calendar from calendars bean
27
+ def get_calendar(calendar)
28
+ clndr = @@calendar_basket[calendar.to_sym]
29
+ if clndr.class == Clndr
30
+ clndr
31
+ else
32
+ raise Clndr::Error::CalendarNotFound, "Calendar with name #{calendar} not found. Use Clndr.new(:#{calendar}) to create them"
33
+ end
34
+ end
35
+ end
36
+
37
+ attr_accessor :template, :week_offset, :days_of_the_week,
38
+ :show_adjacent_months, :adjacent_days_change_month,
39
+ :done_rendering, :force_six_rows, :start_with_month
40
+ attr_reader :name, :events
41
+
42
+
43
+
44
+ def initialize(name)
45
+ @name = name.to_sym
46
+ @template = @@template
47
+ @week_offset = @@week_offset
48
+ @start_with_month =@@start_with_month
49
+ @days_of_the_week = @@days_of_the_week
50
+ @click_events = @@click_events.clone
51
+ @targets= @@targets.clone
52
+ @show_adjacent_months= @@show_adjacent_months
53
+ @adjacent_days_change_month = @@adjacent_days_change_month
54
+ @done_rendering = @@done_rendering
55
+ @constraints =@@constraints
56
+ @force_six_rows =@@force_six_rows
57
+ @has_multiday= false
58
+ @events =[]
59
+ @@calendar_basket.merge! Hash[@name,self]
60
+ end
61
+
62
+ # return html of calendar
63
+ def view(args=nil)
64
+
65
+ case @template
66
+ when Clndr::Template::FULL
67
+ css_class = 'full-clndr-template'
68
+ when Clndr::Template::MINI
69
+ css_class = 'mini-clndr-template'
70
+ when Clndr::Template::SIMPLE
71
+ css_class = 'simple-clndr-template'
72
+ else
73
+ css_class = 'blank-clndr-template'
74
+ end
75
+
76
+ content_tag(:div,nil,args)do
77
+ content_tag(:div,nil,id:"#{@name}-clndr",class:"clearfix #{css_class}")+
78
+ javascript_tag("var #{@name} = $('##{@name}-clndr').clndr({
79
+ #{'template:'+@template+',' unless @template.nil?}
80
+ #{'weekOffset:'+@week_offset.to_s+',' if @week_offset==1}
81
+ #{'startWithMonth:\''+@start_with_month.to_s+'\',' unless @start_with_month.nil?}
82
+ #{'daysOfTheWeek:'+@days_of_the_week.to_s+',' unless @days_of_the_week.nil?}
83
+ #{build_from_hash(@click_events,'clickEvents')}
84
+ #{build_from_hash(@targets,'targets',true)}
85
+ #{'showAdjacentMonths:'+@show_adjacent_months.to_s+',' unless @show_adjacent_months}
86
+ #{'adjacentDaysChangeMonth:'+@adjacent_days_change_month.to_s+',' if @adjacent_days_change_month}
87
+ #{'doneRendering:'+@done_rendering+',' unless @done_rendering.nil?}
88
+ #{'forceSixRows:'+@force_six_rows.to_s+',' if @force_six_rows}
89
+ #{ if @constraints.length >0
90
+ build_from_hash @constraints, 'constraints', true
91
+ end}
92
+ #{if @has_multiday
93
+ "multiDayEvents: {
94
+ startDate: 'startDate',
95
+ endDate: 'endDate'
96
+ },"
97
+ end}
98
+ #{if @events.length > 0
99
+ 'events:['+build_events+']'
100
+ end}
101
+ });".gsub(/\n\s*\n/,"\n"))
102
+
103
+
104
+ end
105
+ end
106
+
107
+ def week_offset=(boolean)
108
+ if boolean
109
+ @week_offset=1
110
+ else
111
+ @week_offset =0
112
+ end
113
+ end
114
+
115
+ # if date is instance of Time convert to "YYYY-MM-DD" format
116
+ def start_with_month=(date)
117
+ @start_with_month = Clndr.date_format date
118
+ end
119
+
120
+ # access to click_events hash
121
+ def click_event
122
+ @click_events
123
+ end
124
+
125
+ # access to targets hash
126
+ def target
127
+ @targets
128
+ end
129
+
130
+ def constraints_start
131
+ @constraints[:startDate]
132
+ end
133
+
134
+ def constraints_start=(date)
135
+ @constraints[:startDate] = Clndr.date_format date
136
+ end
137
+
138
+ def constraints_end
139
+ @constraints[:endDate]
140
+ end
141
+
142
+ def constraints_end=(date)
143
+ @constraints[:endDate] = Clndr.date_format date
144
+ end
145
+
146
+ # add event to events array
147
+ # *other_data some data for tour access in template
148
+ def add_event(date,title,*other_data)
149
+ date = Clndr.date_format date
150
+ event = {date: date,title:title}
151
+ event.merge! *other_data if other_data.length>0
152
+ @events.push event
153
+
154
+ end
155
+
156
+ # add multiday event
157
+ def add_multiday_event(start_date,end_date,title,*other_data)
158
+ start_date = Clndr.date_format start_date
159
+ end_date = Clndr.date_format end_date
160
+ event = {start_date:start_date,end_date:end_date,title:title}
161
+ event.merge! *other_data if other_data.length >0
162
+ @has_multiday ||= true
163
+ @events.push event
164
+ end
165
+
166
+ private
167
+
168
+ # build string from hash to parameter
169
+ # this unsafe method use only for function or true/false value
170
+ # if you need generate js string (eg param:'some value') use
171
+ # .build_from_hash_safety
172
+ def build_from_hash(hash, parameter,safety=false)
173
+ if hash.length > 0
174
+ "#{parameter}: {#{hash.map { |k, v| "#{k}:#{'\'' if safety}#{v}#{'\'' if safety}," }.join}},"
175
+ end
176
+ end
177
+
178
+
179
+ # generate events array from @event
180
+ def build_events
181
+ list_of_events=''
182
+ @events.delete_if do |event|
183
+ list_of_events +="{
184
+ #{'date:\''+event.delete(:date)+'\',' unless event[:date].nil?}
185
+ #{'startDate: \''+event.delete(:start_date)+'\','+
186
+ 'endDate: \'' + event.delete(:end_date)+'\',' unless event[:start_date].nil?}
187
+ title: '#{event.delete(:title)}',
188
+ #{event.map{|k,v| "#{k}:'#{v}'"}.join(',')}},".gsub(/\n\s*\n/,"\n")
189
+
190
+ end
191
+
192
+ # return string with events
193
+ list_of_events
194
+ end
195
+ end
196
+
@@ -1,8 +1,20 @@
1
1
  class Clndr
2
2
 
3
+ # check date to available format
4
+ # if date is Time instance, convert to available string
5
+ def self.date_format(date)
6
+ if date.class == Time
7
+ date.strftime('%F')
8
+ elsif date.match(/\d{4}\-\d{2}\-\d{2}/)
9
+ date
10
+ else
11
+ raise Clndr::Error::WrongDateFormat
12
+ end
13
+ end
14
+
3
15
  # default config
4
- @@template = Clndr::Template::Blank
5
- @@weak_offset = true
16
+ @@template = Clndr::Template::BLANK
17
+ @@week_offset = 1
6
18
  @@start_with_month = nil
7
19
  @@days_of_the_week = nil
8
20
  @@click_events={}
@@ -13,9 +25,10 @@ class Clndr
13
25
  @@constraints ={}
14
26
  @@force_six_rows= true
15
27
 
16
-
17
-
18
- def self.configure
28
+ # todo check days of week for 7 length
29
+ # todo check for available events and targets
30
+ # rails like config
31
+ def self.configure
19
32
  yield self
20
33
  end
21
34
 
@@ -23,36 +36,34 @@ class Clndr
23
36
  @@template ||= template
24
37
  end
25
38
 
26
- def self.weak_offset=(offset)
39
+ def self.week_offset=(offset)
40
+
41
+ # convert offset to CLNDR format
27
42
  if offset
28
- @@weak_offset = 1
43
+ @@week_offset = 1
29
44
  else
30
- @@weak_offset = 0
45
+ @@week_offset = 0
31
46
  end
32
47
  end
33
48
 
34
49
  def self.start_with_month=(date)
35
- if date.class == Time
36
- @@start_with_month=date.strftime("%F")
37
- elsif date.match(/\d{4}\-\d{2}\-\d{2}/)
38
- @@start_with_month = date
39
- else
40
- raise Clndr::Error::WrongDateFormat
41
- end
50
+ @@start_with_month = date_format date
42
51
  end
43
52
 
44
- def self.days_of_the_weak=(array_of_days)
45
- @@days_of_the_weak=array_of_days
53
+ def self.days_of_the_week=(array_of_days)
54
+ @@days_of_the_week=array_of_days
46
55
  end
47
56
 
48
57
  def self.show_adjacent_months=(boolean)
49
58
  @@show_adjacent_months = boolean
50
59
  end
51
60
 
61
+ # access to click_events hash
52
62
  def self.click_events
53
63
  yield @@click_events
54
64
  end
55
65
 
66
+ # access to target hash
56
67
  def self.targets
57
68
  yield @@targets
58
69
  end
@@ -61,32 +72,35 @@ class Clndr
61
72
  @@adjacent_days_change_month= boolean
62
73
  end
63
74
 
64
- def self.done_rendering=(jsfnction)
65
- @@done_rendering = jsfnction
75
+ def self.done_rendering=(jsfunction)
76
+ @@done_rendering = jsfunction
66
77
  end
67
78
 
68
79
  def self.constraints_start=(date)
69
- if date.class == Time
70
- @@constraints[:startDate]=date.strftime("%F")
71
- elsif date.match(/\d{4}\-\d{2}\-\d{2}/)
72
- @@constraints[:startDate]=date
73
- else
74
- raise Clndr::Error::WrongDateFormat
75
- end
80
+ @@constraints[:startDate]= date_format date
76
81
  end
77
82
 
78
83
  def self.constraints_end=(date)
79
- if date.class == Time
80
- @@constraints[:endDate]=date.strftime("%F")
81
- elsif date.match(/\d{4}\-\d{2}\-\d{2}/)
82
- @@constraints[:endDate]=date
83
- else
84
- raise Clndr::Error::WrongDateFormat
85
- end
84
+ @@constraints[:endDate]= date_format date
86
85
  end
87
86
 
88
- def forceSixRows=(boolean)
87
+ def self.force_six_rows=(boolean)
89
88
  @@force_six_rows= boolean
90
89
  end
91
90
 
91
+ def self.default_settings
92
+ @@template = Clndr::Template::BLANK
93
+ @@week_offset = 1
94
+ @@start_with_month = nil
95
+ @@days_of_the_week = nil
96
+ @@click_events={}
97
+ @@targets={}
98
+ @@show_adjacent_months= true
99
+ @@adjacent_days_change_month=false
100
+ @@done_rendering=nil
101
+ @@constraints ={}
102
+ @@force_six_rows= true
103
+ self
104
+ end
105
+
92
106
  end