simple_form_wysihtml 0.0.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5d9101c670f1be008a11428b9d7d3a69d3be0f84
4
+ data.tar.gz: c931b10c95007d6dbcc4fa39147372de9442ad38
5
+ SHA512:
6
+ metadata.gz: 1949ca6a611e6e718647d65336128d5bfb7a16a4d986e82f31df8cf0b08d6ffeee3320271bedb814f5097e8e4675795b562232f05250701616f2d6e76cda3db4
7
+ data.tar.gz: 4b89fbdad6d35a2351057c2962cef069f6dc1fabd2db8ff77eef022a33a0153f13cf10e3c249e684382feedc31179de8c59ef6ac7f843d1bc18beb4fdfdb798c
@@ -0,0 +1,22 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ *.bundle
19
+ *.so
20
+ *.o
21
+ *.a
22
+ mkmf.log
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+ source 'https://rails-assets.org'
3
+
4
+ # Specify your gem's dependencies in simple_form_wysihtml.gemspec
5
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2014 Tomas Celizna
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,130 @@
1
+ # Simple Form Wysihtml
2
+
3
+ Integrates [Wysihtml5](http://xing.github.io/wysihtml5) editor (resp. [this branch](https://github.com/Edicy/wysihtml5) of it) with Rails and [Simple Form](https://github.com/plataformatec/simple_form).
4
+
5
+ ## Installation
6
+
7
+ Add the gem to your Gemfile:
8
+
9
+ gem 'simple_form_wysihtml'
10
+
11
+ And execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install simple_form_wysihtml
18
+
19
+ To make it work you need to require the javascripts in `application.js`:
20
+
21
+ //= require simple_form_wysihtml
22
+
23
+ Optionally you can add the (very minimal) default styling in `application.css`:
24
+
25
+ *= require 'simple_form_wysihtml'
26
+
27
+ ## Usage
28
+
29
+ Use in forms:
30
+
31
+ = form.input :body, as: :wysihtml
32
+
33
+ ## Styling
34
+
35
+ See [simple_form_wysihtml.css.scss](https://github.com/tomasc/simple_form_wysihtml/blob/master/lib/assets/stylesheets/simple_form_wysihtml.css.scss) for how to style the editor.
36
+
37
+ ## Configuration
38
+
39
+ ### The toolbar
40
+
41
+ You can override the defaults by specifying the toolbar in an initializer:
42
+
43
+ ```Ruby
44
+ # config/initializers/simple_form_wysihtml.rb
45
+
46
+ SimpleFormWysihtml::WysihtmlInput.configure do |c|
47
+ c.commands = [
48
+ { bold: { label: 'Bold' }, italic: { label: 'Italic' } },
49
+ { createLink: { label: 'Create Link' } },
50
+ { insertOrderedList: nil, insertUnorderedList: nil }
51
+ ]
52
+ end
53
+ ```
54
+
55
+ Alternatively, you can configure individual input fields in the form:
56
+
57
+ ```Slim
58
+ = f.input :body, as: :wysihtml, commands: [{ bold: { label: 'B' } }, { italic: { label: 'I' } }]
59
+ ```
60
+
61
+ See the [list of available commands](https://github.com/Edicy/wysihtml5/tree/master/src/commands).
62
+
63
+ ### Parser rules
64
+
65
+ The parser rules are defined as a javascript variable, containing a hash of rules (see [Wysihtml5x](https://github.com/Edicy/wysihtml5/tree/master/parser_rules).
66
+
67
+ Add a javascript file with your own parser rules (namespaced for example like this):
68
+
69
+ ```js
70
+ // app/assets/javascripts/parser_rules.js
71
+
72
+ YourCoolNameSpace = (function(){
73
+
74
+ var YourCoolNameSpace = {
75
+ parserRules: {
76
+ tags: {
77
+ i: {
78
+ rename_tag: 'em'
79
+ },
80
+
81
+ a: {
82
+ set_attributes: {
83
+ target: "_self"
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ return YourCoolNameSpace;
91
+ })();
92
+ ```
93
+
94
+ Then in your initializer assign the `parser_rules` to the name of your JS variable:
95
+
96
+ ```Ruby
97
+ # config/initializers/simple_form_wysihtml.rb
98
+
99
+ SimpleFormWysihtml::WysihtmlInput.configure do |c|
100
+ c.parser_rules = 'YourCoolNameSpace.parserRules'
101
+ end
102
+ ```
103
+
104
+ ## TODO
105
+
106
+ ### Add remaining commands from wysihtml5:
107
+
108
+ * addTableCells
109
+ * bgColorStyle
110
+ * removeLink
111
+ * createTable
112
+ * deleteTableCells
113
+ * fontSizeStyle
114
+ * foreColorStyle
115
+ * justifyFull
116
+ * mergeTableCells
117
+
118
+ Reference: [wysihtml5 wiki](https://github.com/edicy/wysihtml5/wiki/Supported-Commands).
119
+
120
+ ### Testing
121
+
122
+ How to do it?
123
+
124
+ ## Contributing
125
+
126
+ 1. Fork it ( https://github.com/[my-github-username]/simple_form_wysihtml/fork )
127
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
128
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
129
+ 4. Push to the branch (`git push origin my-new-feature`)
130
+ 5. Create a new Pull Request
@@ -0,0 +1,2 @@
1
+ require "bundler/gem_tasks"
2
+
@@ -0,0 +1,3 @@
1
+ //= require simple_form_wysihtml/simple_form_wysihtml_parser_rules
2
+ //= require simple_form_wysihtml/simple_form_wysihtml
3
+ //= require wysihtml5x
@@ -0,0 +1,18 @@
1
+
2
+
3
+
4
+ $ ->
5
+ editors = []
6
+
7
+ $('div.wysihtml_editor').each (idx, wrapper) ->
8
+ e = new wysihtml5.Editor(
9
+ $(wrapper).find('textarea').get(0)
10
+ toolbar: $(wrapper).find('div.toolbar').get(0)
11
+ parserRules: <%= SimpleFormWysihtml::WysihtmlInput.configuration.parser_rules %>
12
+ # useLineBreaks: false
13
+ # cleanUp: true
14
+ )
15
+ # showToolbarAfterInit: false
16
+ editors.push(e)
17
+
18
+
@@ -0,0 +1,37 @@
1
+ // Sets up some sensible defaults
2
+
3
+ SimpleFormWysihtml = (function(){
4
+
5
+ var SimpleFormWysihtml = {
6
+ parserRules: {
7
+ tags: {
8
+ strong: {},
9
+ b: {
10
+ rename_tag: 'strong'
11
+ },
12
+ i: {
13
+ rename_tag: 'em'
14
+ },
15
+ em: {},
16
+ br: {},
17
+ p: {},
18
+ div: {},
19
+ span: {},
20
+ ul: {},
21
+ ol: {},
22
+ li: {},
23
+ a: {
24
+ set_attributes: {
25
+ target: "_self",
26
+ rel: "nofollow"
27
+ },
28
+ check_attributes: {
29
+ href: "url"
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+
36
+ return SimpleFormWysihtml;
37
+ })();
@@ -0,0 +1,23 @@
1
+ div.wysihtml_editor {
2
+ div.toolbar {
3
+ ul.commands {
4
+ margin: 0;
5
+ padding: 0;
6
+
7
+ li.command_group {
8
+ display: inline-block;
9
+
10
+ a.command.button {
11
+ margin-right: .5em;
12
+ }
13
+ }
14
+ }
15
+ div.dialogs {
16
+ div.dialog {
17
+ a.button {
18
+ margin-right: .5em;
19
+ }
20
+ }
21
+ }
22
+ }
23
+ }
@@ -0,0 +1,15 @@
1
+ require "simple_form"
2
+ require "simple_form_wysihtml/engine"
3
+ require "simple_form_wysihtml/configuration"
4
+ require "simple_form_wysihtml/simple_form_wysihtml"
5
+ require "simple_form_wysihtml/version"
6
+
7
+ require "rails-assets-wysihtml5x"
8
+
9
+ # ---------------------------------------------------------------------
10
+
11
+ module SimpleForm
12
+ class FormBuilder
13
+ map_type :wysihtml, to: SimpleFormWysihtml::WysihtmlInput
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ module SimpleFormWysihtml
2
+ class Configuration
3
+
4
+ attr_accessor :commands, :parser_rules
5
+
6
+ def initialize
7
+ @parser_rules = 'SimpleFormWysihtml.parserRules'
8
+ @commands = [
9
+ { bold: { label: 'B' }, italic: { label: 'I' } },
10
+ { createLink: nil },
11
+ { insertOrderedList: nil, insertUnorderedList: nil },
12
+ { undo: nil, redo: nil }
13
+ ]
14
+ end
15
+
16
+ end
17
+ end
@@ -0,0 +1,6 @@
1
+ module SimpleFormWysihtml
2
+ module Rails
3
+ class Engine < ::Rails::Engine
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,308 @@
1
+ module SimpleFormWysihtml
2
+ class WysihtmlInput < SimpleForm::Inputs::Base
3
+
4
+ class << self
5
+
6
+ attr_accessor :configuration
7
+
8
+ def configure
9
+ @configuration ||= Configuration.new
10
+ yield @configuration
11
+ end
12
+
13
+ def configuration
14
+ @configuration ||= Configuration.new
15
+ end
16
+
17
+ end
18
+
19
+ # =====================================================================
20
+
21
+ # @return [String]
22
+ def input
23
+ template.content_tag :div, class: %w(wysihtml_editor) do
24
+ toolbar + text_area
25
+ end
26
+ end
27
+
28
+ private # =============================================================
29
+
30
+ # Array of commands for text area toolbar, arranged into command groups.
31
+ # @return [Array]
32
+ def command_list
33
+ options[:commands] || SimpleFormWysihtml::WysihtmlInput.configuration.commands
34
+ end
35
+
36
+ # ---------------------------------------------------------------------
37
+
38
+ # @return [String]
39
+ def text_area
40
+ @builder.text_area(attribute_name, input_html_options).html_safe
41
+ end
42
+
43
+ # @return [String]
44
+ def toolbar
45
+ template.content_tag :div, class: 'toolbar' do
46
+ commands + dialogs
47
+ end.html_safe
48
+ end
49
+
50
+ # @return [String]
51
+ def commands
52
+ template.content_tag :ul, class: 'commands' do
53
+ command_list.collect do |group|
54
+ command_group(group)
55
+ end.join.html_safe
56
+ end
57
+ end
58
+
59
+ # @param [Array] group
60
+ # @return [String]
61
+ def command_group group
62
+ template.content_tag :li, class: 'command_group' do
63
+ group.map do |command, options|
64
+ self.send(command, options || {})
65
+ end.join.html_safe
66
+ end.html_safe
67
+ end
68
+
69
+ # @param [String]
70
+ def dialogs
71
+ flattened_command_list = command_list.inject({}){ |res, i| res.merge!(i) }
72
+ command_list_with_dialog = flattened_command_list.select{ |k,v| %w(createLink insertImage).include?(k.to_s) }
73
+
74
+ return unless command_list_with_dialog.present?
75
+
76
+ template.content_tag :div, class: 'dialogs' do
77
+ command_list_with_dialog.map do |command, options|
78
+ self.send("#{command}_dialog", options || {})
79
+ end.join.html_safe
80
+ end
81
+ end
82
+
83
+ # ---------------------------------------------------------------------
84
+
85
+ # @param [Hash] options
86
+ # @return [String]
87
+ def bold options={}
88
+ label = options[:label] || 'Bold'
89
+
90
+ command_tag 'bold', label
91
+ end
92
+
93
+ # @param [Hash] options
94
+ # @return [String]
95
+ def createLink options={}
96
+ label = options[:label] || 'Link'
97
+ value = options[:value] || 'http://'
98
+
99
+ command_tag('createLink', label, value)
100
+ end
101
+
102
+ # @param [Hash] options
103
+ # @return [String]
104
+ def createLink_dialog options={}
105
+ dialog_label = options[:dialog_label] || 'Link:'
106
+ value = options[:value] || 'http://'
107
+ dialog_field = dialog_field_tag('href', value)
108
+
109
+ dialog_tag('createLink', dialog_label, dialog_field)
110
+ end
111
+
112
+ # @param [Hash] options
113
+ # @retun [String]
114
+ def fontSize options={}
115
+ label = options[:label] || 'Size'
116
+ value = options[:value] || 'small'
117
+
118
+ command_tag 'fontSize', label, value
119
+ end
120
+
121
+ # @param [Hash] options
122
+ # @return [String]
123
+ def foreColor options={}
124
+ label = options[:label] || 'Color'
125
+ value = options[:label] || 'red'
126
+
127
+ command_tag 'foreColor', label, value
128
+ end
129
+
130
+ # @param [Hash] options
131
+ # @return [String]
132
+ def formatBlock options={}
133
+ label = options[:label] || 'Block'
134
+ value = options[:value] || 'h1'
135
+
136
+ command_tag 'formatBlock', label, value
137
+ end
138
+
139
+ # @param [Hash] options
140
+ # @return [String]
141
+ def formatInline options={}
142
+ label = options[:label] || 'Inline'
143
+ value = options[:value] || 'span'
144
+
145
+ command_tag 'formatInline', label, value
146
+ end
147
+
148
+ # @param [Hash] options
149
+ # @return [String]
150
+ def insertHTML options={}
151
+ label = options[:label] || 'HTML'
152
+ value = options[:value] || '<blockquote>foobar</blockquote>'
153
+
154
+ command_tag 'insertHTML', label, value
155
+ end
156
+
157
+ # @param [Hash] options
158
+ # @return [String]
159
+ def insertImage options={}
160
+ label = options[:label] || 'Image'
161
+ value = options[:value] || 'http://'
162
+
163
+ command_tag('insertImage', label)
164
+ end
165
+
166
+ # @param [Hash] options
167
+ # @return [String]
168
+ def insertImage_dialog options={}
169
+ dialog_label = options[:dialog_label] || 'Image:'
170
+ value = options[:value] || 'http://'
171
+ dialog_field = dialog_field_tag('src', value)
172
+
173
+ dialog_tag('createLink', dialog_label, dialog_field)
174
+ end
175
+
176
+ # @param [Hash] options
177
+ # @return [String]
178
+ def insertLineBreak options={}
179
+ label = options[:label] || 'Line Break'
180
+
181
+ command_tag 'insertLineBreak', label
182
+ end
183
+
184
+ # @param [Hash] options
185
+ # @return [String]
186
+ def insertOrderedList options={}
187
+ label = options[:label] || 'OL'
188
+
189
+ command_tag 'insertOrderedList', label
190
+ end
191
+
192
+ # @param [Hash] options
193
+ # @return [String]
194
+ def insertUnorderedList options={}
195
+ label = options[:label] || 'UL'
196
+
197
+ command_tag 'insertUnorderedList', label
198
+ end
199
+
200
+ # @param [Hash] options
201
+ # @return [String]
202
+ def italic options={}
203
+ label = options[:label] || 'Italic'
204
+
205
+ command_tag 'italic', label
206
+ end
207
+
208
+ # @param [Hash] options
209
+ # @return [String]
210
+ def justifyCenter options={}
211
+ label = options[:label] || 'Center'
212
+
213
+ command_tag 'justifyCenter', label
214
+ end
215
+
216
+ # @param [Hash] options
217
+ # @return [String]
218
+ def justifyLeft options={}
219
+ label = options[:label] || 'Left'
220
+
221
+ command_tag 'justifyLeft', label
222
+ end
223
+
224
+ # @param [Hash] options
225
+ # @return [String]
226
+ def justifyRight options
227
+ label = options[:label] || 'Right'
228
+
229
+ command_tag 'justifyRight', label
230
+ end
231
+
232
+ # @param [Hash] options
233
+ # @return [String]
234
+ def redo options={}
235
+ label = options[:label] || 'Redo'
236
+
237
+ command_tag 'redo', label
238
+ end
239
+
240
+ # @param [Hash] options
241
+ # @return [String]
242
+ def underline options={}
243
+ label = options[:label] || 'Underline'
244
+
245
+ command_tag 'underline', label
246
+ end
247
+
248
+ # @param [Hash] options
249
+ # @return [String]
250
+ def undo options={}
251
+ label = options[:label] || 'Undo'
252
+
253
+ command_tag 'undo', label
254
+ end
255
+
256
+ # ---------------------------------------------------------------------
257
+
258
+ # Generates link for specified command
259
+ #
260
+ # @param [String] command
261
+ # @param [String] label
262
+ # @param [String] value
263
+ # @return [String]
264
+ def command_tag command, label, value=nil
265
+ options = { 'data-wysihtml5-command' => command }
266
+ options.merge!({ 'data-wysihtml5-command-value' => value }) if value.present?
267
+ options.merge!({ class: 'command button' })
268
+
269
+ template.content_tag :a, options do
270
+ label
271
+ end.html_safe
272
+ end
273
+
274
+ # @param [String] command
275
+ # @param [String] label
276
+ # @param [String] dialog_field
277
+ # @return [String]
278
+ def dialog_tag command, label, dialog_field
279
+ options = { 'data-wysihtml5-dialog' => command, style: 'display: none' }
280
+ options.merge!({ class: 'dialog' })
281
+
282
+ template.content_tag :div, options do
283
+ template.content_tag(:label, (label + dialog_field).html_safe).html_safe +
284
+ action_tag('save', 'OK') +
285
+ action_tag('cancel', 'Cancel')
286
+ end.html_safe
287
+ end
288
+
289
+ # @param [String] action
290
+ # @param [String] label
291
+ # @return [String]
292
+ def action_tag action, label
293
+ template.content_tag :a, 'data-wysihtml5-dialog-action' => action, class: 'button' do
294
+ label
295
+ end.html_safe
296
+ end
297
+
298
+ # @param [String] att
299
+ # @param [String] value
300
+ # @return [String]
301
+ def dialog_field_tag att, value=nil
302
+ "<input data-wysihtml5-dialog-field='#{att}' value='#{value}'>".html_safe
303
+ end
304
+
305
+ # ---------------------------------------------------------------------
306
+
307
+ end
308
+ end
@@ -0,0 +1,3 @@
1
+ module SimpleFormWysihtml
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'simple_form_wysihtml/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "simple_form_wysihtml"
8
+ spec.version = SimpleFormWysihtml::VERSION
9
+ spec.authors = ["Tomas Celizna"]
10
+ spec.email = ["tomas.celizna@gmail.com"]
11
+ spec.summary = %q{Integrates Wysihtml5 editor with Rails and Simple Form.}
12
+ spec.description = %q{Integrates Wysihtml5 editor with Rails and Simple Form.}
13
+ spec.homepage = "https://github.com/tomasc/simple_form_wysihtml"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "simple_form", ">= 3.0.2"
22
+ spec.add_dependency "rails-assets-wysihtml5x", ">= 0.4.12"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.6"
25
+ spec.add_development_dependency "rake"
26
+ end
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: simple_form_wysihtml
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Tomas Celizna
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-07-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: simple_form
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: 3.0.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails-assets-wysihtml5x
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.4.12
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.4.12
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: '1.6'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '1.6'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rake
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Integrates Wysihtml5 editor with Rails and Simple Form.
70
+ email:
71
+ - tomas.celizna@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - .gitignore
77
+ - Gemfile
78
+ - LICENSE
79
+ - README.md
80
+ - Rakefile
81
+ - lib/assets/javascripts/simple_form_wysihtml.js
82
+ - lib/assets/javascripts/simple_form_wysihtml/simple_form_wysihtml.js.coffee.erb
83
+ - lib/assets/javascripts/simple_form_wysihtml/simple_form_wysihtml_parser_rules.js
84
+ - lib/assets/stylesheets/simple_form_wysihtml.css.scss
85
+ - lib/simple_form_wysihtml.rb
86
+ - lib/simple_form_wysihtml/configuration.rb
87
+ - lib/simple_form_wysihtml/engine.rb
88
+ - lib/simple_form_wysihtml/simple_form_wysihtml.rb
89
+ - lib/simple_form_wysihtml/version.rb
90
+ - simple_form_wysihtml.gemspec
91
+ homepage: https://github.com/tomasc/simple_form_wysihtml
92
+ licenses:
93
+ - MIT
94
+ metadata: {}
95
+ post_install_message:
96
+ rdoc_options: []
97
+ require_paths:
98
+ - lib
99
+ required_ruby_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ requirements: []
110
+ rubyforge_project:
111
+ rubygems_version: 2.1.10
112
+ signing_key:
113
+ specification_version: 4
114
+ summary: Integrates Wysihtml5 editor with Rails and Simple Form.
115
+ test_files: []
116
+ has_rdoc: