semantic_date_time_tags 0.1.13 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,15 +1,12 @@
1
- require 'action_view'
2
- require 'action_view/helpers'
3
- require 'bundler/setup'
4
- require 'minitest'
5
- require 'minitest/autorun'
6
- require 'minitest/spec'
7
- require 'semantic_date_time_tags'
8
- require 'rubygems'
1
+ # frozen_string_literal: true
9
2
 
10
- I18n.backend.send(:init_translations)
3
+ require "action_view"
4
+ require "action_view/helpers"
5
+ require "bundler/setup"
6
+ require "minitest"
7
+ require "minitest/autorun"
8
+ require "minitest/spec"
9
+ require "semantic_date_time_tags"
10
+ require "rubygems"
11
11
 
12
- if ENV['CI']
13
- require 'coveralls'
14
- Coveralls.wear!
15
- end
12
+ I18n.backend.send(:init_translations)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: semantic_date_time_tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.13
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Celizna
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-31 00:00:00.000000000 Z
11
+ date: 2020-12-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,30 +16,30 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0
19
+ version: '3'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 3.0.0
26
+ version: '3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.6'
33
+ version: '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: '1.6'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: coveralls
42
+ name: guard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: guard
56
+ name: guard-minitest
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: guard-minitest
70
+ name: minitest
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: minitest
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: rubocop-rails_config
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -108,16 +108,18 @@ dependencies:
108
108
  - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
- description: Rails helpers for handling dates and time.
111
+ description:
112
112
  email:
113
113
  - tomas.celizna@gmail.com
114
114
  executables: []
115
115
  extensions: []
116
116
  extra_rdoc_files: []
117
117
  files:
118
- - ".coveralls.yml"
118
+ - ".github/workflows/ruby.yml"
119
119
  - ".gitignore"
120
- - ".travis.yml"
120
+ - ".rubocop.yml"
121
+ - ".ruby-version"
122
+ - CHANGELOG.md
121
123
  - Gemfile
122
124
  - Gemfile.lock
123
125
  - Guardfile
@@ -143,7 +145,10 @@ files:
143
145
  - lib/semantic_date_time_tags/view_helpers.rb
144
146
  - semantic_date_time_tags.gemspec
145
147
  - test/semantic_date_time_tags/format_parser_test.rb
146
- - test/semantic_date_time_tags/view_helpers_test.rb
148
+ - test/semantic_date_time_tags/semantic_date_range_test.rb
149
+ - test/semantic_date_time_tags/semantic_date_tag_test.rb
150
+ - test/semantic_date_time_tags/semantic_date_time_tag_test.rb
151
+ - test/semantic_date_time_tags/semantic_time_tag_test.rb
147
152
  - test/test_helper.rb
148
153
  homepage: https://github.com/tomasc/semantic_date_time_tags
149
154
  licenses:
@@ -164,12 +169,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
164
169
  - !ruby/object:Gem::Version
165
170
  version: '0'
166
171
  requirements: []
167
- rubyforge_project:
168
- rubygems_version: 2.6.6
172
+ rubygems_version: 3.1.4
169
173
  signing_key:
170
174
  specification_version: 4
171
175
  summary: Rails helpers for handling dates and time.
172
176
  test_files:
173
177
  - test/semantic_date_time_tags/format_parser_test.rb
174
- - test/semantic_date_time_tags/view_helpers_test.rb
178
+ - test/semantic_date_time_tags/semantic_date_range_test.rb
179
+ - test/semantic_date_time_tags/semantic_date_tag_test.rb
180
+ - test/semantic_date_time_tags/semantic_date_time_tag_test.rb
181
+ - test/semantic_date_time_tags/semantic_time_tag_test.rb
175
182
  - test/test_helper.rb
@@ -1 +0,0 @@
1
- service_name: travis-ci
@@ -1,13 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
- script: 'bundle exec rake'
4
- sudo: false
5
- rvm:
6
- - 2.2.4
7
-
8
- notifications:
9
- email:
10
- recipients:
11
- - tomas.celizna@gmail.com
12
- on_failure: change
13
- on_success: never
@@ -1,212 +0,0 @@
1
- require 'test_helper'
2
- require 'semantic_date_time_tags/view_helpers'
3
-
4
- describe SemanticDateTimeTags::ViewHelpers do
5
- include SemanticDateTimeTags::ViewHelpers
6
-
7
- let(:date_object) { Date.parse("31/10/#{Date.today.year}") }
8
- let(:date_tomorrow_object) { Date.parse("31/10/#{Date.today.year}") + 1.day }
9
- let(:time_object) { Time.parse("31/10/#{Date.today.year}") }
10
-
11
- # ---------------------------------------------------------------------
12
-
13
- describe '#semantic_time_tag' do
14
- let(:time_object_hours) { time_object.strftime('%H') }
15
- let(:time_object_midnight) { Time.new(Date.today.year, 11, 3, 24, 00) }
16
- let(:time_object_minutes) { time_object.strftime('%M') }
17
- let(:time_object_noon) { Time.new(Date.today.year, 11, 3, 12, 00) }
18
- let(:time_object_whole_hour) { Time.new(2014, 8, 21, 15) }
19
- let(:time_object_whole_minute) { Time.new(2014, 8, 21, 15, 30) }
20
- let(:time_object_before_noon) { Time.new(2014, 8, 21, 11, 00) }
21
- let(:time_object_after_noon) { Time.new(2014, 8, 21, 12, 01) }
22
-
23
- it 'does not work with a date object' do
24
- proc { semantic_time_tag(date_object) }.must_raise RuntimeError
25
- end
26
-
27
- it 'returns hours wrapped in a span tag' do
28
- semantic_time_tag(time_object).must_match(Regexp.new("<span.+?hours.+?H.+?>#{time_object_hours}</span>"))
29
- end
30
-
31
- it 'returns minutes wrapped in a span tag' do
32
- semantic_time_tag(time_object).must_match(Regexp.new("<span.+?minutes.+?M.+?>#{time_object_minutes}</span>"))
33
- end
34
-
35
- it 'wraps the whole thing in a time tag by default' do
36
- semantic_time_tag(time_object).must_match(/\A<time.+?<\/time>\z/)
37
- end
38
-
39
- it 'wraps the whole thing in a span tag if passed as argument' do
40
- semantic_time_tag(time_object, tag_name: :span).must_match(/\A<span.+?<\/span>\z/)
41
- end
42
-
43
- it 'adds whole_hour class if time is whole hour' do
44
- semantic_time_tag(time_object_whole_hour).must_match(/\A<time.+?whole_hour.+?<\/time>\z/)
45
- end
46
-
47
- it 'adds whole_minute class if time is whole minute' do
48
- semantic_time_tag(time_object_whole_minute).must_match(/\A<time.+?whole_minute.+?<\/time>\z/)
49
- end
50
-
51
- it 'adds noon class if time is noon' do
52
- semantic_time_tag(time_object_noon).must_match(/\A<time.+?noon.+?<\/time>\z/)
53
- end
54
-
55
- it 'adds midnight class if time is midnight' do
56
- semantic_time_tag(time_object_midnight).must_match(/\A<time.+?midnight.+?<\/time>\z/)
57
- end
58
-
59
- it 'adds am class if time is before noon' do
60
- semantic_time_tag(time_object_before_noon).must_match(/\A<time.+?am.+?<\/time>\z/)
61
- end
62
-
63
- it 'adds pm class if time is after noon' do
64
- semantic_time_tag(time_object_after_noon).must_match(/\A<time.+?pm.+?<\/time>\z/)
65
- end
66
-
67
- it 'adds noon as data-in-words if time is noon' do
68
- semantic_time_tag(time_object_noon).must_match(/\A<time.+?data-in-words=\"noon\".+?<\/time>\z/)
69
- end
70
-
71
- it 'adds midnight as data-in-words if time is midnight' do
72
- semantic_time_tag(time_object_midnight).must_match(/\A<time.+?data-in-words=\"midnight\".+?<\/time>\z/)
73
- end
74
-
75
- it 'adds locale class' do
76
- semantic_time_tag(time_object).must_match(/class=\".+\s#{I18n.locale}\s.+\"/i)
77
- end
78
-
79
- it 'allows to pass :format' do
80
- semantic_time_tag(time_object, format: :test).must_include '~'
81
- semantic_time_tag(time_object, format: :test).must_include 'data-format="test"'
82
- end
83
- end
84
-
85
- # ---------------------------------------------------------------------
86
-
87
- describe '#semantic_date_tag' do
88
- let(:date_object_day) { date_object.strftime('%-d') }
89
- let(:date_object_month) { date_object.strftime('%-m') }
90
- let(:date_object_year) { date_object.year }
91
-
92
- it 'should only work with a date or datetime object' do
93
- proc { semantic_date_tag(time_object) }.must_raise RuntimeError
94
- end
95
-
96
- it 'wraps everything in a time tag by default' do
97
- semantic_date_tag(date_object).must_match(/\A<time.+?<\/time>\z/)
98
- end
99
-
100
- it 'wraps everything in a span tag if passed as argument' do
101
- semantic_date_tag(date_object, tag_name: :span).must_match(/\A<span.+?<\/span>\z/)
102
- end
103
-
104
- it 'returns year, month and day wrapped in a span tags' do
105
- semantic_date_tag(date_object).must_match(Regexp.new("<span.+?year.+?>#{date_object_year}</span>"))
106
- semantic_date_tag(date_object).must_match(Regexp.new("<span.+?month.+?>#{date_object_month}</span>"))
107
- semantic_date_tag(date_object).must_match(Regexp.new("<span.+?day.+?>#{date_object_day}</span>"))
108
- end
109
-
110
- it 'adds current_date class if date is today' do
111
- semantic_date_tag(Date.today).must_include 'current_date'
112
- semantic_date_tag(Date.today - 1.day).wont_include 'current_date'
113
- end
114
-
115
- it 'adds current class to year span if date is this year' do
116
- semantic_date_tag(Date.today).must_include 'current_year'
117
- semantic_date_tag(Date.today - 1.year).wont_include 'current_year'
118
- end
119
-
120
- it 'adds locale class' do
121
- semantic_date_tag(Date.today).must_match(/class=\".+\s#{I18n.locale}\s.+\"/i)
122
- end
123
-
124
- it 'allows to pass :format' do
125
- semantic_date_tag(Date.today, format: :test).must_include '~'
126
- semantic_date_tag(Date.today, format: :test).must_include 'data-format="test"'
127
- end
128
- end
129
-
130
- # ---------------------------------------------------------------------
131
-
132
- describe '#semantic_date_time_tag' do
133
- let(:date_time_object) { DateTime.parse("31/10/#{Date.today.year}") }
134
- let(:date_time_object_noon) { DateTime.parse("31/10/#{Date.today.year}").noon }
135
- let(:date_time_object_midnight) { DateTime.parse("31/10/#{Date.today.year}").midnight }
136
-
137
- it 'only works with a time or date_time object' do
138
- proc { semantic_date_time_tag(time_object) }.must_raise RuntimeError
139
- end
140
-
141
- it 'wraps the whole thing in a time tag' do
142
- semantic_date_time_tag(date_time_object).must_match(/\A<time.+?<\/time>\z/)
143
- end
144
-
145
- it 'adds noon as data-in-words if time is noon' do
146
- semantic_date_time_tag(date_time_object_noon).must_match(/\A<time.+?data-in-words=\"noon\".+?<\/time>\z/)
147
- end
148
-
149
- it 'adds midnight as data-in-words if time is midnight' do
150
- semantic_date_time_tag(date_time_object_midnight).must_match(/\A<time.+?data-in-words=\"midnight\".+?<\/time>\z/)
151
- end
152
-
153
- it 'adds locale class' do
154
- semantic_date_time_tag(date_time_object).must_match(/class=\".+\s#{I18n.locale}\s.+\"/i)
155
- end
156
-
157
- it 'allows to pass :format' do
158
- semantic_date_time_tag(date_time_object, format: :test).must_include '~'
159
- semantic_date_time_tag(date_time_object, format: :test).must_include 'data-format="test"'
160
- end
161
- end
162
-
163
- # ---------------------------------------------------------------------
164
-
165
- describe '#semantic_date_range_tag' do
166
- let(:date_time_object_from) { DateTime.parse("31/10/#{Date.today.year}") }
167
- let(:date_time_object_to) { DateTime.parse("11/11/#{Date.today.year}") }
168
-
169
- let(:date_time_object_from_morning) { DateTime.parse("14/11/#{Date.today.year} 11:00") }
170
- let(:date_time_object_to_afternoon) { DateTime.parse("14/11/#{Date.today.year} 15:00") }
171
-
172
- it 'returns the from date wrapped correctly' do
173
- semantic_date_range_tag(date_object, date_tomorrow_object).must_match(/<time.+?semantic.+?date.+?from.+?>.+?<time.+?semantic.+?date.+?to.+?>/)
174
- end
175
-
176
- it 'adds same_year and current_year class to wrapping span' do
177
- semantic_date_range_tag(date_object, date_tomorrow_object).must_match(/\A<span.+?date_range.+?current_year.+?>/)
178
- end
179
-
180
- it 'adds same_day to wrapping span' do
181
- semantic_date_range_tag(date_time_object_from, date_time_object_from).must_match(/\A<span.+?date_range.+?same_day.+?>/)
182
- end
183
-
184
- it 'adds same_time to wrapping span' do
185
- semantic_date_range_tag(date_time_object_from, date_time_object_from).must_match(/\A<span.+?date_range.+?same_day.+?same_time.+?>/)
186
- end
187
-
188
- it 'adds am to wrapping span if both times in morning' do
189
- semantic_date_range_tag(date_time_object_from_morning - 1.hour, date_time_object_from_morning).must_match(/\A<span.+?date_range.+?same_meridian.+?>/)
190
- semantic_date_range_tag(date_time_object_from_morning, date_time_object_to_afternoon).wont_match(/\A<span.+?date_range.+?same_meridian.+?>/)
191
- semantic_date_range_tag(date_time_object_to_afternoon, date_time_object_to_afternoon + 1.hour).must_match(/\A<span.+?date_range.+?same_meridian.+?>/)
192
- end
193
-
194
- it 'accepts datetime objects' do
195
- semantic_date_range_tag(date_time_object_from, date_time_object_to).must_match(/<time.+?from.+?<\/time>/)
196
- semantic_date_range_tag(date_time_object_from, date_time_object_to).must_match(/<time.+?to.+?<\/time>/)
197
- end
198
-
199
- it 'has an alias of semantic_date_tim_range_tag' do
200
- semantic_date_time_range_tag(date_object, date_tomorrow_object).must_match(/<time.+?semantic.+?date.+?from.+?>/)
201
- end
202
-
203
- it 'adds locale class' do
204
- semantic_date_time_range_tag(date_object, date_tomorrow_object).must_match(/class=\".+\s#{I18n.locale}\s.+\"/i)
205
- end
206
-
207
- it 'allows to pass :format' do
208
- semantic_date_time_range_tag(date_object, date_tomorrow_object, format: :test).must_include '~'
209
- semantic_date_time_range_tag(date_object, date_tomorrow_object, format: :test).must_include 'data-format="test"'
210
- end
211
- end
212
- end