hellobase 0.1.8 → 0.1.13

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
  SHA256:
3
- metadata.gz: 46694043401a358a06c4d8cc43fed3e74ddf49e756da77bf3e501f5368d587a1
4
- data.tar.gz: 425faddf86643febe8bed91dd8d8da3e44806f6279f57f7a4a40b690112f811b
3
+ metadata.gz: 6fa5d3298e71115f9af44ce60b01e81c7cbedbb51afe5403ffcbc7e779ce60a7
4
+ data.tar.gz: d2d63fc84142ea350639817c1f9cdf0aaeeec1c5eba7abcefdacb2c1f1d50ea7
5
5
  SHA512:
6
- metadata.gz: 87c87f82adc496b5126a32a373998521c79dd61a45111323c5247c78064921873dd7655eb4f26693d57197644813d1d16cbee5ec6d0e99647482d1a96eab6885
7
- data.tar.gz: 8dfddd47d74040a1edaf77c6e90f24ddb0660a1fc00d5b2fdfe006a201e6973d3c3fb195f403e1196b9fab1c397f9dc3a0c5860110783e304435a28ecc36ec79
6
+ metadata.gz: 29caf1fc217aa49f355208131e58b02f4d05e7c3d14e71d41bd341124791694ebe3c016c171de1fb3a5352bb3ebcf23c4fff4201ddd8dde7a8e875661e3d3151
7
+ data.tar.gz: e6681810f813af2fe9a531f0bacda90a6858f97fc0ae096d14a305f8889b2220d8531736b05c1cf4c5e5c9a357e58b94787aa5c86ef1c40481cc86dc08dbd015
@@ -1,6 +1,7 @@
1
1
  require 'active_support' # formtastic needs ActiveSupport::Autoload
2
2
  require 'formtastic'
3
3
 
4
+ require 'hellobase/formtastic/content_input'
5
+ require 'hellobase/formtastic/datepicker_with_time_input'
4
6
  require 'hellobase/formtastic/inline_checkbox_input'
5
- require 'hellobase/formtastic/read_only_input'
6
7
  require 'hellobase/formtastic/time_of_day_input'
@@ -0,0 +1,8 @@
1
+ class ContentInput < ::Formtastic::Inputs::StringInput
2
+ def to_html
3
+ input_wrapping do
4
+ label_html <<
5
+ template.content_tag(:span, options[:content])
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,105 @@
1
+ # require these here so we can load this as a standalone file - see formtastic.rb
2
+ require 'active_support'
3
+ require 'formtastic'
4
+
5
+ require 'active_admin/inputs'
6
+
7
+ class DatepickerWithTimeInput
8
+ include ::Formtastic::Inputs::Base
9
+
10
+ def self.virtual_attributes(attr)
11
+ [:"_dpwt_#{attr}_d", :"_dpwt_#{attr}_h", :"_dpwt_#{attr}_m"]
12
+ end
13
+
14
+ def self.define_virtual_attributes(klass, attr)
15
+ return if klass.respond_to? :_dpwt_defined
16
+
17
+ klass.class_eval <<-RUBY
18
+ def self._dpwt_defined; end
19
+
20
+ def _dpwt_#{attr}_d
21
+ self.#{attr}&.strftime('%Y-%m-%d')
22
+ end
23
+
24
+ def _dpwt_#{attr}_h
25
+ self.#{attr}&.strftime('%H')
26
+ end
27
+
28
+ def _dpwt_#{attr}_m
29
+ self.#{attr}&.strftime('%M')
30
+ end
31
+
32
+ def _dpwt_#{attr}_d=(val)
33
+ @_dpwt_#{attr}_d = val
34
+ _dpwt_set_#{attr}
35
+
36
+ val
37
+ end
38
+
39
+ def _dpwt_#{attr}_h=(val)
40
+ @_dpwt_#{attr}_h = val
41
+ _dpwt_set_#{attr}
42
+
43
+ val
44
+ end
45
+
46
+ def _dpwt_#{attr}_m=(val)
47
+ @_dpwt_#{attr}_m = val
48
+ _dpwt_set_#{attr}
49
+
50
+ val
51
+ end
52
+
53
+ private
54
+
55
+ def _dpwt_set_#{attr}
56
+ self.#{attr} = @_dpwt_#{attr}_d.blank? || @_dpwt_#{attr}_h.blank? || @_dpwt_#{attr}_m.blank? ? nil : [@_dpwt_#{attr}_d, [@_dpwt_#{attr}_h, @_dpwt_#{attr}_m].join(':')].join(' ')
57
+ end
58
+ RUBY
59
+ end
60
+
61
+ def to_html
62
+ datepicker_html = ActiveAdmin::Inputs::DatepickerInput.new(builder, template, object, object_name, :"_dpwt_#{method}_d", datepicker_options).to_html
63
+ hour_select_html = Formtastic::Inputs::SelectInput.new(builder, template, object, object_name, :"_dpwt_#{method}_h", hour_select_options).to_html
64
+ minute_select_html = Formtastic::Inputs::SelectInput.new(builder, template, object, object_name, :"_dpwt_#{method}_m", minute_select_options).to_html
65
+ zone_display_html = options[:time_zone] ? template.content_tag(:span, options[:time_zone]) : nil
66
+
67
+ wrapper_contents = [
68
+ replace_li_tag(datepicker_html),
69
+ replace_li_tag(hour_select_html),
70
+ replace_li_tag(minute_select_html),
71
+ zone_display_html,
72
+ error_html,
73
+ hint_html,
74
+ ].compact.join("\n").html_safe
75
+
76
+ template.content_tag(:li, wrapper_contents, wrapper_html_options)
77
+ end
78
+
79
+ private
80
+
81
+ def datepicker_options
82
+ {
83
+ label: label_text,
84
+ }.merge(options[:datepicker_options] || {})
85
+ end
86
+
87
+ def hour_select_options
88
+ {
89
+ label: false,
90
+ collection: 0..23
91
+ }.merge(options[:hour_select_options] || {})
92
+ end
93
+
94
+ def minute_select_options
95
+ {
96
+ label: false,
97
+ collection: 0..59,
98
+ }.merge(options[:minute_select_options] || {})
99
+ end
100
+
101
+ # formtastic inputs generate <li> with no way to override
102
+ def replace_li_tag(html)
103
+ html.strip.sub(/^<li /, '<span ').sub(/<\/li>$/, '</span>').html_safe
104
+ end
105
+ end
@@ -1,3 +1,3 @@
1
1
  module Hellobase
2
- VERSION = '0.1.8'
2
+ VERSION = '0.1.13'
3
3
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hellobase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Wang
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-07 00:00:00.000000000 Z
11
+ date: 2020-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: activeadmin
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.7'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: activesupport
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,25 +53,75 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '2.2'
41
55
  - !ruby/object:Gem::Dependency
42
- name: minitest
56
+ name: activemodel
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '5.13'
48
- - - "<"
61
+ version: '6.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '6.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: activerecord
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
49
74
  - !ruby/object:Gem::Version
50
- version: '5.14'
75
+ version: '6.0'
51
76
  type: :development
52
77
  prerelease: false
53
78
  version_requirements: !ruby/object:Gem::Requirement
54
79
  requirements:
55
80
  - - "~>"
56
81
  - !ruby/object:Gem::Version
57
- version: '5.13'
58
- - - "<"
82
+ version: '6.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: actionview
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '6.0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '6.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: minitest
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
59
102
  - !ruby/object:Gem::Version
60
103
  version: '5.14'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '5.14'
111
+ - !ruby/object:Gem::Dependency
112
+ name: nokogiri
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.10'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.10'
61
125
  - !ruby/object:Gem::Dependency
62
126
  name: warning
63
127
  requirement: !ruby/object:Gem::Requirement
@@ -72,7 +136,7 @@ dependencies:
72
136
  - - "~>"
73
137
  - !ruby/object:Gem::Version
74
138
  version: '1.0'
75
- description:
139
+ description:
76
140
  email:
77
141
  - awang@hellobase.com
78
142
  executables: []
@@ -90,15 +154,16 @@ files:
90
154
  - lib/hellobase/core_ext/string_access.rb
91
155
  - lib/hellobase/core_ext/time_creation.rb
92
156
  - lib/hellobase/formtastic.rb
157
+ - lib/hellobase/formtastic/content_input.rb
158
+ - lib/hellobase/formtastic/datepicker_with_time_input.rb
93
159
  - lib/hellobase/formtastic/inline_checkbox_input.rb
94
- - lib/hellobase/formtastic/read_only_input.rb
95
160
  - lib/hellobase/formtastic/time_of_day_input.rb
96
161
  - lib/hellobase/time_zones.rb
97
162
  - lib/hellobase/version.rb
98
- homepage:
163
+ homepage:
99
164
  licenses: []
100
165
  metadata: {}
101
- post_install_message:
166
+ post_install_message:
102
167
  rdoc_options: []
103
168
  require_paths:
104
169
  - lib
@@ -113,9 +178,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
178
  - !ruby/object:Gem::Version
114
179
  version: '0'
115
180
  requirements: []
116
- rubyforge_project:
117
- rubygems_version: 2.7.10
118
- signing_key:
181
+ rubygems_version: 3.0.8
182
+ signing_key:
119
183
  specification_version: 4
120
184
  summary: Ruby runtime environment for Hellobase
121
185
  test_files: []
@@ -1,8 +0,0 @@
1
- class ReadOnlyInput < ::Formtastic::Inputs::StringInput
2
- def to_html
3
- input_wrapping do
4
- label_html <<
5
- template.content_tag(:div, options[:content])
6
- end
7
- end
8
- end