textile_editor_helper 0.0.14 → 0.0.30

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 (55) hide show
  1. data/.gitignore +0 -0
  2. data/CHANGELOG.md +14 -0
  3. data/Gemfile +0 -0
  4. data/README.md +54 -95
  5. data/Rakefile +8 -3
  6. data/features/copy_assets.feature +5 -10
  7. data/features/step_definitions/common_steps.rb +0 -0
  8. data/features/step_definitions/rails_setup_steps.rb +0 -0
  9. data/features/support/env.rb +0 -0
  10. data/features/support/setup.rb +0 -0
  11. data/lib/generators/textile_editor_helper/install_generator.rb +4 -13
  12. data/lib/helpers/default.rb +138 -0
  13. data/lib/helpers/formtastic.rb +39 -0
  14. data/lib/helpers/simple_form.rb +27 -0
  15. data/lib/helpers/textile_editor_initialize.rb +19 -0
  16. data/lib/textile_editor_helper/version.rb +1 -1
  17. data/lib/textile_editor_helper.rb +15 -201
  18. data/test/abstract_unit.rb +11 -4
  19. data/test/formtastic_test.rb +21 -0
  20. data/test/simple_form_test.rb +21 -0
  21. data/test/support_methods.rb +54 -0
  22. data/test/test_helper.rb +7 -0
  23. data/test/textile_editor_helper_test.rb +30 -172
  24. data/textile_editor_helper.gemspec +14 -15
  25. data/travis.yml +0 -0
  26. data/vendor/README +26 -31
  27. data/vendor/assets/images/textile-editor/background.png +0 -0
  28. data/vendor/assets/images/textile-editor/blockquote.png +0 -0
  29. data/vendor/assets/images/textile-editor/bold.png +0 -0
  30. data/vendor/assets/images/textile-editor/center.png +0 -0
  31. data/vendor/assets/images/textile-editor/h1.png +0 -0
  32. data/vendor/assets/images/textile-editor/h2.png +0 -0
  33. data/vendor/assets/images/textile-editor/h3.png +0 -0
  34. data/vendor/assets/images/textile-editor/h4.png +0 -0
  35. data/vendor/assets/images/textile-editor/h5.png +0 -0
  36. data/vendor/assets/images/textile-editor/h6.png +0 -0
  37. data/vendor/assets/images/textile-editor/indent.png +0 -0
  38. data/vendor/assets/images/textile-editor/italic.png +0 -0
  39. data/vendor/assets/images/textile-editor/justify.png +0 -0
  40. data/vendor/assets/images/textile-editor/left.png +0 -0
  41. data/vendor/assets/images/textile-editor/list_bullets.png +0 -0
  42. data/vendor/assets/images/textile-editor/list_numbers.png +0 -0
  43. data/vendor/assets/images/textile-editor/omega.png +0 -0
  44. data/vendor/assets/images/textile-editor/outdent.png +0 -0
  45. data/vendor/assets/images/textile-editor/paragraph.png +0 -0
  46. data/vendor/assets/images/textile-editor/right.png +0 -0
  47. data/vendor/assets/images/textile-editor/strikethrough.png +0 -0
  48. data/vendor/assets/images/textile-editor/underline.png +0 -0
  49. data/vendor/assets/javascripts/textile-editor-config.js +0 -0
  50. data/vendor/assets/javascripts/textile-editor.js +0 -0
  51. data/vendor/assets/stylesheets/textile-editor.css +0 -0
  52. metadata +76 -36
  53. data/vendor/app/controllers/textile_preview_controller.rb +0 -14
  54. data/vendor/app/helpers/textile_preview_helper.rb +0 -13
  55. data/vendor/app/views/textile_preview/show.js.coffee +0 -2
@@ -1,206 +1,20 @@
1
1
  require "textile_editor_helper/version"
2
+ require 'action_view'
2
3
 
3
- module TextileEditorHelper
4
- # Your code goes here...
5
- end
6
-
7
-
8
- module ActionView
9
- module Helpers
10
-
11
- class FormBuilder
12
- def textile_editor(method, options = {})
13
- @template.textile_editor(@object_name, method, options.merge(:object => @object))
14
- end
15
- end
16
-
17
-
18
- module FormHelper
19
-
20
- # Returns a textarea opening and closing tag set tailored for accessing a specified attribute (identified by +method+)
21
- # on an object assigned to the template (identified by +object+). Additional options on the input tag can be passed as a
22
- # hash with +options+ and places the textile toolbar above it
23
- #
24
- # ==== Examples
25
- # textile_editor(:post, :body, :cols => 20, :rows => 40)
26
- # # => <textarea cols="20" rows="40" id="post_body" name="post[body]">
27
- # # #{@post.body}
28
- # # </textarea>
29
- #
30
- # textile_editor(:comment, :text, :size => "20x30")
31
- # # => <textarea cols="20" rows="30" id="comment_text" name="comment[text]">
32
- # # #{@comment.text}
33
- # # </textarea>
34
- #
35
- # textile_editor(:application, :notes, :cols => 40, :rows => 15, :class => 'app_input')
36
- # # => <textarea cols="40" rows="15" id="application_notes" name="application[notes]" class="app_input">
37
- # # #{@application.notes}
38
- # # </textarea>
39
- #
40
- # textile_editor(:entry, :body, :size => "20x20", :disabled => 'disabled')
41
- # # => <textarea cols="20" rows="20" id="entry_body" name="entry[body]" disabled="disabled">
42
- # # #{@entry.body}
43
- # # </textarea>
44
- def textile_editor(object_name, method, options = {})
45
- editor_id = options[:id] || '%s_%s' % [object_name, method]
46
- mode = options.delete(:simple) ? 'simple' : 'extended'
47
- preview = options.delete(:preview) ? true : false
48
- (@textile_editor_ids ||= []) << [editor_id.to_s, mode.to_s]
49
-
50
- output = []
51
- output << InstanceTag.new(object_name, method, self, options.delete(:object)).to_text_area_tag(options)
52
- output << %q{<div id="%s_destination" class="textile-preview"></div>} % [editor_id] if preview
53
- output.join("\n").html_safe
54
-
55
- end
56
-
57
- def textile_editor_options(options={})
58
- (@textile_editor_options ||= { }).merge! options
59
- end
60
-
61
- def textile_editor_support
62
- output = []
63
- output << stylesheet_link_tag('textile-editor')
64
- output << javascript_include_tag('textile-editor')
65
- output.join("\n").html_safe
66
- end
67
-
68
- # registers a new button for the Textile Editor toolbar
69
- # Parameters:
70
- # * +text+: text to display (contents of button tag, so HTML is valid as well)
71
- # * +options+: options Hash as supported by +content_tag+ helper in Rails
72
- #
73
- # Example:
74
- # The following example adds a button labeled 'Greeting' which triggers an
75
- # alert:
76
- #
77
- # <% textile_editor_button 'Greeting', :onclick => "alert('Hello!')" %>
78
- #
79
- # *Note*: this method must be called before +textile_editor_initialize+
80
- def textile_editor_button(text, options={})
81
- return textile_editor_button_separator if text == :separator
82
- button = content_tag(:button, text, options)
83
- button = "TextileEditor.buttons.push(\"%s\");" % escape_javascript(button)
84
- (@textile_editor_buttons ||= []) << button
85
- end
86
-
87
- def textile_editor_button_separator(options={})
88
- button = "TextileEditor.buttons.push(new TextileEditorButtonSeparator('%s'));" % (options[:simple] || '')
89
- (@textile_editor_buttons ||= []) << button
90
- end
4
+ require_relative 'helpers/textile_editor_initialize'
5
+ require_relative 'helpers/default'
91
6
 
92
- def textile_extract_dom_ids(*dom_ids)
93
- hash = dom_ids.last.is_a?(Hash) ? dom_ids.pop : {}
94
- hash.inject(dom_ids) do |ids, (object, fields)|
95
- ids + Array(fields).map { |field| "%s_%s" % [object, field] }
96
- end
97
- end
98
-
99
- # adds the necessary javascript include tags, stylesheet tags,
100
- # and load event with necessary javascript to active textile editor(s)
101
- # sample output:
102
- # <link href="/stylesheets/textile-editor.css" media="screen" rel="stylesheet" type="text/css" />
103
- # <script src="/javascripts/textile-editor.js" type="text/javascript"></script>
104
- # <script type="text/javascript">
105
- # document.observe('dom:loaded', function() {
106
- # TextileEditor.initialize('article_body', 'extended');
107
- # TextileEditor.initialize('article_body_excerpt', 'simple');
108
- # });
109
- # </script>
110
- #
111
- # Note: in the case of this helper being called via AJAX, the output will be reduced:
112
- # <script type="text/javascript">
113
- # TextileEditor.initialize('article_body', 'extended');
114
- # TextileEditor.initialize('article_body_excerpt', 'simple');
115
- # </script>
116
- #
117
- # This means that the support files must be loaded outside of the AJAX request, either
118
- # via a call to this helper or the textile_editor_support() helper
119
- def textile_editor_initialize(*dom_ids)
120
- options = textile_editor_options.dup
121
-
122
- # extract options from last argument if it's a hash
123
- if dom_ids.last.is_a?(Hash)
124
- hash = dom_ids.last.dup
125
- options.merge! hash
126
- dom_ids.last.delete :framework
127
- dom_ids.last.delete :preview
128
- end
129
-
130
- editor_ids = (@textile_editor_ids || []) + textile_extract_dom_ids(*dom_ids)
131
- editor_buttons = (@textile_editor_buttons || [])
132
- output = []
133
- output << textile_editor_support unless request.xhr?
134
- output << '<script type="text/javascript">'
135
- output << '/* <![CDATA[ */'
136
-
137
- if !request.xhr?
138
- output << %{$(document).ready(function() \{}
139
- end
140
-
141
- output << editor_buttons.join("\n") if editor_buttons.any?
142
- editor_ids.each do |editor_id, mode|
143
-
144
- output << %q{TextileEditor.initialize('%s', '%s');} % [editor_id, mode || 'extended']
145
-
146
-
147
- output << %q{ $("#%s").keyup(function() {
148
- var textile_string = $("#%s").val();
149
- if($("#%s_destination")[0]) {
7
+ begin
8
+ require 'simple_form'
9
+ require_relative 'helpers/simple_form'
10
+ rescue LoadError
11
+ end
150
12
 
151
- $.post("/textile_preview", { text_data: textile_string, id: "%s"} );
152
- }
153
- });
154
-
155
- } % [editor_id, editor_id, editor_id, editor_id] if options[:preview]
156
-
157
-
158
- end
159
- output << '});' unless request.xhr?
13
+ begin
14
+ require 'formtastic'
15
+ require_relative 'helpers/formtastic'
16
+ rescue LoadError
17
+ end
160
18
 
161
- output << '/* ]]> */'
162
- output << '</script>'
163
- output.join("\n").html_safe
164
- end
165
- end
166
-
167
- module FormTagHelper
168
- # Creates a text input area; use a textarea for longer text inputs such as blog posts or descriptions
169
- # and includes the textile toolbar above it.
170
- #
171
- # ==== Options
172
- # * <tt>:size</tt> - A string specifying the dimensions (columns by rows) of the textarea (e.g., "25x10").
173
- # * <tt>:rows</tt> - Specify the number of rows in the textarea
174
- # * <tt>:cols</tt> - Specify the number of columns in the textarea
175
- # * <tt>:disabled</tt> - If set to true, the user will not be able to use this input.
176
- # * Any other key creates standard HTML attributes for the tag.
177
- #
178
- # ==== Examples
179
- # textile_editor_tag 'post'
180
- # # => <textarea id="post" name="post"></textarea>
181
- #
182
- # textile_editor_tag 'bio', @user.bio
183
- # # => <textarea id="bio" name="bio">This is my biography.</textarea>
184
- #
185
- # textile_editor_tag 'body', nil, :rows => 10, :cols => 25
186
- # # => <textarea cols="25" id="body" name="body" rows="10"></textarea>
187
- #
188
- # textile_editor_tag 'body', nil, :size => "25x10"
189
- # # => <textarea name="body" id="body" cols="25" rows="10"></textarea>
190
- #
191
- # textile_editor_tag 'description', "Description goes here.", :disabled => true
192
- # # => <textarea disabled="disabled" id="description" name="description">Description goes here.</textarea>
193
- #
194
- # textile_editor_tag 'comment', nil, :class => 'comment_input'
195
- # # => <textarea class="comment_input" id="comment" name="comment"></textarea>
196
- def textile_editor_tag(name, content = nil, options = {})
197
- editor_id = options[:id] || name
198
- mode = options.delete(:simple) ? 'simple' : 'extended'
199
- (@textile_editor_ids ||= []) << [editor_id.to_s, mode.to_s]
200
-
201
- text_area_tag(name, content, options)
202
- end
203
- end
204
-
205
- end
206
- end
19
+ module TextileEditorHelper
20
+ end
@@ -1,16 +1,23 @@
1
1
  $:.unshift(File.dirname(__FILE__) + '/../lib')
2
2
 
3
3
  require 'yaml'
4
- require 'test/unit'
5
4
  require 'rubygems'
6
5
 
7
6
  require 'action_controller'
8
- require 'action_controller/cgi_ext'
9
- require 'action_controller/test_process'
7
+ require 'action_view/helpers'
8
+ require 'action_view/asset_paths'
9
+ require 'action_controller/test_case'
10
+
11
+ require 'simple_form'
10
12
 
11
13
  # Show backtraces for deprecated behavior for quicker cleanup.
12
14
  ActiveSupport::Deprecation.debug = true
13
15
 
14
16
  ActionController::Base.logger = nil
17
+
15
18
  # ActionController::Base.ignore_missing_templates = false
16
- ActionController::Routing::Routes.reload rescue nil
19
+ ActionController::Routing::Routes.reload rescue nil
20
+
21
+ ActionController::Base.asset_host = "localhost"
22
+
23
+ require_relative 'support_methods'
@@ -0,0 +1,21 @@
1
+ require_relative 'test_helper'
2
+ require_relative '../lib/helpers/formtastic'
3
+ require_relative '../lib/helpers/textile_editor_initialize'
4
+ require_relative 'abstract_unit'
5
+
6
+ class FormtasticTest < MiniTest::Unit::TestCase
7
+
8
+ include SimpleForm::ActionViewExtensions::FormHelper
9
+ include SimpleForm::Inputs
10
+ include SupportMethods
11
+
12
+ def expected_initialize_output
13
+ TextileEditorInitialize.textile_editor_initialize
14
+ end
15
+
16
+ def test_textile_editor_initialize_formtastic
17
+ actual = textile_editor_initialize()
18
+ assert_equal expected_initialize_output, actual
19
+ end
20
+
21
+ end
@@ -0,0 +1,21 @@
1
+ require_relative 'test_helper'
2
+ require_relative '../lib/helpers/simple_form'
3
+ require_relative 'abstract_unit'
4
+ require_relative '../lib/helpers/textile_editor_initialize'
5
+
6
+ class SimpleFormTest < MiniTest::Unit::TestCase
7
+
8
+ include SimpleForm::ActionViewExtensions::FormHelper
9
+ include SimpleForm::Inputs
10
+ include SupportMethods
11
+
12
+ def expected_initialize_output
13
+ TextileEditorInitialize.textile_editor_initialize
14
+ end
15
+
16
+ def test_textile_editor_initialize_simple_form
17
+ actual = textile_editor_initialize()
18
+ assert_equal expected_initialize_output, actual
19
+ end
20
+
21
+ end
@@ -0,0 +1,54 @@
1
+ module SupportMethods
2
+
3
+ def setup
4
+ @controller = Class.new do
5
+ attr_reader :url_for_options
6
+ def url_for(options, *parameters_for_method_reference)
7
+ @url_for_options = options
8
+ "http://www.example.com"
9
+ end
10
+
11
+ def request; @request ||= ActionController::TestRequest.new; end
12
+ def response; @response ||= ActionController::TestResponse.new; end
13
+ end
14
+ @controller = @controller.new
15
+ @article = OpenStruct.new(:body => nil)
16
+ end
17
+
18
+ def request
19
+ @controller.request
20
+ end
21
+
22
+ def controller
23
+ setup
24
+ end
25
+
26
+ def config
27
+ Class.new do
28
+
29
+ class << self
30
+ def perform_caching
31
+ true
32
+ end
33
+
34
+ def asset_path
35
+ @asset_path
36
+ end
37
+
38
+ def assets_dir
39
+ ""
40
+ end
41
+
42
+ def relative_url_root
43
+ nil
44
+ end
45
+
46
+ def asset_host
47
+ nil
48
+ end
49
+ end
50
+
51
+ end
52
+ end
53
+
54
+ end
@@ -0,0 +1,7 @@
1
+ ENV['RACK_ENV'] = 'test'
2
+
3
+ require 'minitest/pride'
4
+ require 'minitest/autorun'
5
+ require 'minitest/spec'
6
+
7
+ require File.dirname(__FILE__) + '/../lib/textile_editor_helper'
@@ -1,195 +1,53 @@
1
- require File.dirname(__FILE__) + '/abstract_unit'
2
- require File.dirname(__FILE__) + '/../lib/textile_editor_helper'
1
+ require_relative 'test_helper'
2
+ require_relative 'abstract_unit'
3
+ require_relative '../lib/helpers/default'
4
+ require_relative '../lib/helpers/textile_editor_initialize'
3
5
  require 'ostruct'
4
6
 
5
- class TextileEditorHelperTest < Test::Unit::TestCase
7
+ class TextileEditorHelperTest < MiniTest::Unit::TestCase
8
+
6
9
  include ActionView::Helpers::TextHelper
7
10
  include ActionView::Helpers::AssetTagHelper
8
11
  include ActionView::Helpers::TagHelper
9
12
  include ActionView::Helpers::FormHelper
10
13
  include ActionView::Helpers::JavaScriptHelper
11
- # include TextileEditorHelper
12
-
13
- def setup
14
- @controller = Class.new do
15
- attr_reader :url_for_options
16
- def url_for(options, *parameters_for_method_reference)
17
- @url_for_options = options
18
- "http://www.example.com"
19
- end
20
-
21
- def request; @request ||= ActionController::TestRequest.new; end
22
- def response; @response ||= ActionController::TestResponse.new; end
23
- end
24
- @controller = @controller.new
25
- @article = OpenStruct.new(:body => nil)
26
- end
27
-
28
- # support methods
29
- def request
30
- @controller.request
31
- end
32
-
33
- def create_simple_editor(object, field, options={})
34
- output = textile_editor(object, field, options.merge(:simple => true))
35
- assert_equal text_area(object, field, options), output
36
- end
37
14
 
38
- def create_extended_editor(object, field, options={})
39
- output = textile_editor(object, field, options)
40
- assert_equal text_area(object, field, options), output
41
- end
15
+ include SupportMethods
42
16
 
43
- def framework_initialize_output(framework)
44
- case framework
45
- when :prototype
46
- %{document.observe('dom:loaded', function() \{}
47
- when :jquery
48
- %{$(document).ready(function() \{}
49
- end
50
- end
51
-
52
- def pre_initialize_output(framework)
53
- %{<link href="/stylesheets/textile-editor.css" media="screen" rel="stylesheet" type="text/css" />
54
- <script src="/javascripts/textile-editor.js" type="text/javascript"></script>
55
- <script type="text/javascript">
56
- /* <![CDATA[ */
57
- } +
58
- framework_initialize_output(framework)
59
- end
60
-
61
- def post_initialize_output
62
- %{\});
63
- /* ]]> */
64
- </script>
65
- }
17
+ def create_editor(object, field, options={})
18
+ output = textile_editor(object, field, options)
19
+ assert_equal text_area(object, field, options.merge(:class => "textile_editor")), output
66
20
  end
67
-
68
- def expected_initialize_output(framework, editors, button_data=nil)
69
- expected = [pre_initialize_output(framework)]
70
- expected << button_data unless button_data.nil?
71
- expected << editors.map do |editor|
72
- "TextileEditor.initialize('%s', '%s');" % editor
73
- end
74
- expected << post_initialize_output
75
- expected.join("\n").split("\n").map { |e| e.lstrip }.join("\n").chomp
21
+
22
+ def expected_initialize_output
23
+ TextileEditorInitialize.textile_editor_initialize
76
24
  end
77
-
78
- # tests
25
+
26
+ # Tests
79
27
  def test_textile_editor
80
- assert_nil @textile_editor_ids
81
- create_extended_editor('article', 'body')
82
- assert_equal [['article_body', 'extended']], @textile_editor_ids
83
- end
84
-
85
- def test_textile_editor_simple_mode
86
- assert_nil @textile_editor_ids
87
- create_simple_editor('article', 'body')
88
- assert_equal [['article_body', 'simple']], @textile_editor_ids
28
+ create_editor('article', 'body')
29
+ assert_includes textile_editor('article', 'body'), "textile_editor"
89
30
  end
90
-
91
- def test_textile_editor_with_custom_id
92
- assert_nil @textile_editor_ids
93
- create_extended_editor('article', 'body', :id => 'my_custom_id')
94
- assert_equal [['my_custom_id', 'extended']], @textile_editor_ids
95
- end
96
-
97
- def test_textile_editor_simple_mode_with_custom_id
98
- assert_nil @textile_editor_ids
99
- create_simple_editor('article', 'body', :id => 'my_custom_id')
100
- assert_equal [['my_custom_id', 'simple']], @textile_editor_ids
101
- end
102
-
103
- def test_textile_editor_initialize
104
- create_extended_editor('article', 'body')
105
- output = textile_editor_initialize()
106
- assert_equal expected_initialize_output(:prototype, [
107
- ['article_body', 'extended']
108
- ]), output
109
-
110
- create_simple_editor('article', 'body_excerpt')
111
- output = textile_editor_initialize()
112
- assert_equal expected_initialize_output(:prototype, [
113
- ['article_body', 'extended'],
114
- ['article_body_excerpt', 'simple']
115
- ]), output
116
31
 
117
- output = textile_editor_initialize(:framework => :jquery)
118
- assert_equal expected_initialize_output(:jquery, [
119
- ['article_body', 'extended'],
120
- ['article_body_excerpt', 'simple']
121
- ]), output
122
-
123
- # test using custom default options
124
- textile_editor_options :framework => :jquery
32
+ def test_textile_editor_initialize
33
+ create_editor('article', 'body')
125
34
  output = textile_editor_initialize()
126
- assert_equal expected_initialize_output(:jquery, [
127
- ['article_body', 'extended'],
128
- ['article_body_excerpt', 'simple']
129
- ]), output
130
- end
131
-
132
- def test_textile_editor_inititalize_with_arbitrary_ids
133
- output = textile_editor_initialize(:story_comment, :story_body)
134
- assert_equal expected_initialize_output(:prototype, [
135
- ['story_comment', 'extended'],
136
- ['story_body', 'extended']
137
- ]), output
35
+ assert_equal expected_initialize_output, output
138
36
  end
139
37
 
140
38
  def test_textile_editor_initialize_with_custom_buttons
141
- b = '<button id="test_button" onclick="alert(\'Hello!\')" title="Hello world">Hello</button>'
142
- button_data = ["TextileEditor.buttons.push(\"%s\");" % escape_javascript(b)]
39
+ b = '<button id="test_button" title="Hello world">Hello</button>'
40
+ button_data = ["TextileEditor.buttons.push(""#{b}"");" ]
143
41
  actual = textile_editor_button('Hello',
144
- :id => 'test_button',
145
- :onclick => "alert('Hello!')",
146
- :title => 'Hello world'
147
- )
148
-
149
- assert_equal button_data, actual
150
-
151
- create_extended_editor('article', 'body')
152
- output = textile_editor_initialize()
153
- assert_equal expected_initialize_output(:prototype, [
154
- ['article_body', 'extended']
155
- ], button_data), output
156
- end
42
+ :id => 'test_button',
43
+ :title => 'Hello world'
44
+ )
157
45
 
158
- def test_textile_extract_dom_ids_works_with_arrayed_hash
159
- hash_with_array = { :recipe => [ :instructions, :introduction ] }
160
- assert_equal [ 'recipe_instructions', 'recipe_introduction' ], textile_extract_dom_ids(hash_with_array)
161
- end
162
-
163
- def test_textile_extract_dom_ids_works_with_hash
164
- hash_with_symbol = { :story => :title }
165
- assert_equal [ 'story_title' ], textile_extract_dom_ids(hash_with_symbol)
166
- end
46
+ assert_equal button_data, actual
167
47
 
168
- def test_textile_extract_dom_ids_works_with_ids
169
- straight_id = 'article_page'
170
- assert_equal [ 'article_page' ], textile_extract_dom_ids(straight_id)
48
+ create_editor('article', 'body')
49
+ output = textile_editor_initialize()
50
+ assert_equal expected_initialize_output, output
171
51
  end
172
52
 
173
- def test_textile_extract_dom_ids_works_with_mixed_params
174
- paramd = %w(article_page)
175
- paramd += [{
176
- :recipe => [ :instructions, :introduction ],
177
- :story => :title
178
- }]
179
- assert_equal %w(article_page recipe_instructions recipe_introduction story_title).sort,
180
- textile_extract_dom_ids(*paramd).sort { |a,b| a.to_s <=> b.to_s }
181
- end
182
-
183
- def test_textile_editor_button
184
- b = '<button id="test_button" onclick="alert(\'Hello!\')" title="Hello world">Hello</button>'
185
- expected = ['TextileEditor.buttons.push("%s");' % escape_javascript(b)]
186
-
187
- actual = textile_editor_button('Hello',
188
- :id => 'test_button',
189
- :onclick => "alert('Hello!')",
190
- :title => 'Hello world'
191
- )
192
-
193
- assert_equal expected, actual
194
- end
195
- end
53
+ end
@@ -2,26 +2,25 @@
2
2
  require File.expand_path('../lib/textile_editor_helper/version', __FILE__)
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.authors = ["Katherine"]
6
- gem.email = ["info@bridgeutopiaweb.com"]
5
+ gem.authors = ['Katherine']
6
+ gem.email = ['info@bridgeutopiaweb.com']
7
7
  gem.description = %q{Textile Editor Helper is a gem for Ruby on Rails 3.2 > to add a Textile toolbar above textareas.}
8
8
  gem.summary = %q{Textile Editor Helper}
9
- gem.homepage = "https://github.com/bridgeutopia/textile_editor_helper"
9
+ gem.homepage = 'https://github.com/bridgeutopia/textile_editor_helper'
10
10
 
11
- gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
12
- gem.files = `git ls-files`.split("\n")
11
+ gem.executables = Dir["bin/*"].map { |f| File.basename(f) }
12
+ gem.files = `git ls-files`.strip.split("\n")
13
13
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
14
- gem.name = "textile_editor_helper"
15
- gem.require_paths = ["lib"]
14
+ gem.name = 'textile_editor_helper'
15
+ gem.require_paths = ['lib']
16
16
  gem.version = TextileEditorHelper::VERSION
17
-
17
+
18
18
  #dependencies
19
19
  gem.add_development_dependency 'rails', '>= 3.2.0'
20
- gem.add_development_dependency "coffee-rails", '>=3.2.1'
21
- gem.add_dependency "thor"
22
- gem.add_dependency "test-unit"
23
- gem.add_development_dependency "RedCloth", ">=4.2.9"
24
- gem.add_development_dependency "htmlentities", '>=4.3.1'
25
- gem.add_development_dependency "cucumber", '>=1.1.4'
26
- gem.add_development_dependency "rspec", ">= 2.0.0"
20
+ gem.add_development_dependency 'simple_form'
21
+ gem.add_development_dependency 'formtastic'
22
+ gem.add_development_dependency 'thor'
23
+ gem.add_development_dependency 'minitest'
24
+ gem.add_development_dependency 'cucumber'
25
+ gem.add_development_dependency 'rspec'
27
26
  end
data/travis.yml CHANGED
File without changes