dom_for 1.0.3 → 1.1.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b16dcf148d4790560acde632f078b54ccff7d74a
4
- data.tar.gz: c33232372a7e525d096994734ec30f60fc4c3862
3
+ metadata.gz: b8fc0fad1bfddcb6a68a0801745603b5d4a4aed9
4
+ data.tar.gz: 6c713b8e9135fb37737a3c5dd56da9dc05b5b09a
5
5
  SHA512:
6
- metadata.gz: bdc1f2f5634fb9f225921d9f65f839bbc104c5d508881a6771bae76c54a2bd4c69a199bc0ca55880b499335fc585efb0fa0d827993d3af795ce74828565e5574
7
- data.tar.gz: a6fc8f2bb298596d1346137e5b13fdc82b09a1aae5e469cc7d114dd2097444ca8743065326f01dbac659c5850086c5434fe78563a5710e190d601f2f5bba08e2
6
+ metadata.gz: 22b9ee7cb04d7c2c19328533812d64bfe486d7a687333cb43c6e52e422e15c58f445877a374b164b8b12b4d384704001cddd8ca2917b6e2ccbf271d2c26ac2b1
7
+ data.tar.gz: 001723acf36b81251b7ac16a9c266fc2c31863f449ad06a10131f1c8ec80839d9d2949cc1bdd0b843323ae1aee0d0c5cb18d4d7b95beb720f7f291f0d368dc48
data/.rubocop.yml ADDED
@@ -0,0 +1,40 @@
1
+ AllCops:
2
+ # Cop names are not displayed in offense messages by default. Change behavior
3
+ # by overriding DisplayCopNames, or by giving the -D/--display-cop-names
4
+ # option.
5
+ DisplayCopNames: true
6
+ # Style guide URLs are not displayed in offense messages by default. Change
7
+ # behavior by overriding DisplayStyleGuide, or by giving the
8
+ # -S/--display-style-guide option.
9
+ DisplayStyleGuide: true
10
+ Exclude:
11
+ - 'bin/**/*'
12
+ - 'spec/**/*'
13
+ - 'vendor/**/*'
14
+
15
+ # Missing top-level class documentation comment
16
+ Style/Documentation:
17
+ Enabled: false
18
+
19
+ # Line is too long
20
+ # https://github.com/bbatsov/ruby-style-guide#80-character-limits
21
+ Metrics/LineLength:
22
+ Max: 180 # 80
23
+
24
+ # Assignment Branch Condition size for perform is too high
25
+ # http://c2.com/cgi/wiki?AbcMetric
26
+ Metrics/AbcSize:
27
+ Enabled: false
28
+
29
+ # Method has too many lines
30
+ # https://github.com/bbatsov/ruby-style-guide#short-methods
31
+ Metrics/MethodLength:
32
+ Max: 25 # 10
33
+
34
+ # Cyclomatic complexity for dom_for_model is too high
35
+ Metrics/CyclomaticComplexity:
36
+ Enabled: false
37
+
38
+ # Perceived complexity for dom_for_model is too high
39
+ Metrics/PerceivedComplexity:
40
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 1.1.0 (24/11/2015)
2
+
3
+ ### Features
4
+
5
+ * Ability to passing the name of tag as an argument
6
+
1
7
  ## 1.0.2 (26/03/2014)
2
8
 
3
9
  ### Enhancements
data/Gemfile CHANGED
@@ -16,4 +16,4 @@ gem 'jquery-rails'
16
16
  # To use debugger
17
17
  # gem 'debugger'
18
18
 
19
- gem 'coveralls', require: false
19
+ gem 'coveralls', require: false
data/README.md CHANGED
@@ -24,11 +24,13 @@ Or install it yourself as:
24
24
 
25
25
  ## Usage
26
26
 
27
+ By default the helper `dom_for` creates tag `div`. But it can override, passing an additional argument `tag`, for example: `dom _for User, tag: :span`:
28
+
27
29
  ```erb
28
30
  <%# /app/views/users/index.html.erb %>
29
31
  <%= dom_for User, attribute_1: 'value_1', attribute_2: 'value_2', attribute_3: 'value_3' do %>
30
32
  <% @users.each do |user| %>
31
- <%= dom_for user, admin: user.admin, blocked: user.blocked do %>
33
+ <%= dom_for user, tag: :p, admin: user.admin, blocked: user.blocked do %>
32
34
  <%= content_tag(:span, user.name) %>
33
35
  <% end %>
34
36
  <% end %>
@@ -37,10 +39,10 @@ Or install it yourself as:
37
39
 
38
40
  ```html
39
41
  <div id="users" class="users" data-action="index" data-attribute-1="value_1" data-attribute-2="value_2" data-attribute-3="value_3">
40
- <div id="user_1" class="user" data-admin="true" data-blocked="false" data-object-id="1">
42
+ <p id="user_1" class="user" data-admin="true" data-blocked="false" data-object-id="1">
41
43
  <span>Mikhail</span>
42
44
  </div>
43
- <div id="user_2" class="user" data-admin="false" data-blocked="false" data-object-id="2">
45
+ <p id="user_2" class="user" data-admin="false" data-blocked="false" data-object-id="2">
44
46
  <span>Yulia</span>
45
47
  </div>
46
48
  </div>
@@ -95,11 +97,11 @@ The third argument, the helper `dom_for`, takes a block of code that will be wra
95
97
 
96
98
  ```erb
97
99
  <%# /app/views/users/index.html.erb %>
98
- <%= dom_for User %>
100
+ <%= dom_for User, tag: :span %>
99
101
  ```
100
102
 
101
103
  ```html
102
- <div id="users" class="users" data-action="index" />
104
+ <span id="users" class="users" data-action="index" />
103
105
  ```
104
106
 
105
107
  When defined instance variable with class name, the helper `dom_for` creates the additional html-attributes for this object:
data/dom_for.gemspec CHANGED
@@ -1,5 +1,5 @@
1
1
  # coding: utf-8
2
- $:.push File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
3
 
4
4
  # Maintain your gem's version:
5
5
  require 'dom_for/version'
@@ -28,4 +28,5 @@ Gem::Specification.new do |s|
28
28
  s.add_development_dependency 'rspec-rails'
29
29
  s.add_development_dependency 'yard', '~> 0.8.7'
30
30
  s.add_development_dependency 'redcarpet', '~> 3.0' # Markdown implementation (for yard)
31
- end
31
+ s.add_development_dependency 'rubocop'
32
+ end
data/lib/dom_for/model.rb CHANGED
@@ -26,32 +26,33 @@ module DomFor
26
26
  # Creates a div tag with the attributes for the model of ActiveRecord
27
27
  #
28
28
  # @example Without the block:
29
- # dom_for_model(User) #=> <div class="users" id="users" />
29
+ # dom_for(User) #=> <div class="users" id="users" />
30
30
  #
31
31
  # @example When there is a request:
32
- # dom_for_model(User) #=> <div class="users" data-action="show" id="users" />
32
+ # dom_for(User) #=> <div class="users" data-action="show" id="users" />
33
33
  #
34
34
  # @example For the new user:
35
- # dom_for_model(User) #=> <div class="user new_user" data-action="new" id="new_user" />
35
+ # dom_for(User) #=> <div class="user new_user" data-action="new" id="new_user" />
36
36
  #
37
37
  # @example For the saved record (if exists @user):
38
- # dom_for_model(User) #=> <div class="user show_user" data-action="show" data-object-id="1" data-object="users" id="user_1" />
38
+ # dom_for(User) #=> <div class="user show_user" data-action="show" data-object-id="1" data-object="users" id="user_1" />
39
39
  #
40
40
  # @example With the additional attributes:
41
- # dom_for_model(User, admin: true) #=> <div class="user show_user" data-action="show" data-admin="true" data-object-id="1" data-object="users" id="user_1" />
41
+ # dom_for(User, admin: true) #=> <div class="user show_user" data-action="show" data-admin="true" data-object-id="1" data-object="users" id="user_1" />
42
42
  #
43
43
  # @example With the block:
44
- # dom_for_model(User, admin: true) do
44
+ # dom_for(User, admin: true) do
45
45
  # tag(:span)
46
46
  # end #=> <div class="user show_user" data-action="show" data-admin="true" data-object-id="1" data-object="users" id="user_1"><span /></div>
47
47
  #
48
- # @param [Class] klass Model of ActiveRecord::Base
49
- # @param [Hash] attrs Additional attributes for the record
50
- # @param [Proc] block Block for a div tag
48
+ # @param klass [Class] Model of ActiveRecord::Base
49
+ # @param tag [Symbol] HTML tag name
50
+ # @param attrs [Hash] Additional attributes for the record
51
+ # @param block [Proc] Block for a div tag
51
52
  #
52
53
  # @return [String] Sanitized HTML string
53
54
  #
54
- def dom_for_model(klass, attrs={}, &block)
55
+ def _dom_for_model(klass, tag, attrs = {}, &block)
55
56
  object_classes = []
56
57
  class_name = klass.to_s.underscore
57
58
  request_action = request.path_parameters[:action]
@@ -60,6 +61,7 @@ module DomFor
60
61
 
61
62
  object = instance_variable_get("@#{class_name}")
62
63
 
64
+ # TODO: Need refactoring
63
65
  object_id = if object
64
66
  if object.persisted?
65
67
  attrs = attrs.merge(object_id: object.id, object: class_name.pluralize)
@@ -76,13 +78,14 @@ module DomFor
76
78
  end
77
79
 
78
80
  if block_given?
79
- content_tag(:div, id: object_id, class: object_classes.join(' '), data: attrs, &block)
81
+ content_tag(tag, id: object_id, class: object_classes.join(' '), data: attrs, &block)
80
82
  else
81
- tag(:div, id: object_id, class: object_classes.join(' '), data: attrs)
83
+ tag(tag, id: object_id, class: object_classes.join(' '), data: attrs)
82
84
  end
83
-
84
85
  rescue
85
- content_tag(:div, &block)
86
+ content_tag(tag, &block)
86
87
  end
88
+
89
+ private :_dom_for_model
87
90
  end
88
- end
91
+ end
@@ -11,39 +11,41 @@ module DomFor
11
11
  # Creates a div tag with the attributes for the instance of ActiveRecord
12
12
  #
13
13
  # @example For the new record:
14
- # dom_for_record(User.new) #=> <div class="user" id="new_user" />
14
+ # dom_for(User.new) #=> <div class="user" id="new_user" />
15
15
  #
16
16
  # @example For the saved record:
17
- # dom_for_record(@user) #=> <div class="user" data-object-id="1" id="user_1" />
17
+ # dom_for(@user) #=> <div class="user" data-object-id="1" id="user_1" />
18
18
  #
19
19
  # @example With the additional attributes:
20
- # dom_for_record(@user, admin: true) #=> <div class="user" data-admin="true" data-object-id="1" id="user_1" />
20
+ # dom_for(@user, admin: true) #=> <div class="user" data-admin="true" data-object-id="1" id="user_1" />
21
21
  #
22
22
  # @example With the block:
23
- # dom_for_record(@user, admin: true) do
23
+ # dom_for(@user, admin: true) do
24
24
  # tag(:span)
25
25
  # end #=> <div class="user" data-admin="true" data-object-id="1" id="user_1"><span /></div>
26
26
  #
27
- # @param [ActiveRecord::Base] record Instance of ActiveRecord::Base
28
- # @param [Hash] attrs Additional attributes for the record
29
- # @param [Proc] block Block for a div tag
27
+ # @param record [ActiveRecord::Base] Instance of ActiveRecord::Base
28
+ # @param tag [Symbol] HTML tag name
29
+ # @param attrs [Hash] Additional attributes for the record
30
+ # @param block [Proc] Block for a div tag
30
31
  #
31
32
  # @return [String] Sanitized HTML string
32
33
  #
33
- def dom_for_record(record, attrs={}, &block)
34
+ def _dom_for_record(record, tag, attrs = {}, &block)
34
35
  object_id = dom_id(record)
35
36
  object_class = dom_class(record.class)
36
37
 
37
38
  attrs = attrs.merge(object_id: record.id) if record.persisted?
38
39
 
39
40
  if block_given?
40
- content_tag(:div, id: object_id, class: object_class, data: attrs, &block)
41
+ content_tag(tag, id: object_id, class: object_class, data: attrs, &block)
41
42
  else
42
- tag(:div, id: object_id, class: object_class, data: attrs)
43
+ tag(tag, id: object_id, class: object_class, data: attrs)
43
44
  end
44
-
45
45
  rescue
46
- content_tag(:div, &block)
46
+ content_tag(tag, &block)
47
47
  end
48
+
49
+ private :_dom_for_record
48
50
  end
49
- end
51
+ end
@@ -1,3 +1,3 @@
1
1
  module DomFor
2
- VERSION = '1.0.3'
2
+ VERSION = '1.1.0'
3
3
  end
data/lib/dom_for.rb CHANGED
@@ -1,8 +1,12 @@
1
- require 'active_support/dependencies/autoload'
2
1
  require 'active_support/core_ext/object/blank'
3
2
  require 'active_support/core_ext/string/inflections'
4
3
 
4
+ require_relative 'dom_for/model'
5
+ require_relative 'dom_for/record'
6
+
5
7
  module DomFor
8
+ include Model
9
+ include Record
6
10
  #
7
11
  # dom_for Project do
8
12
  #
@@ -15,31 +19,23 @@ module DomFor
15
19
  # dom_for Comment do
16
20
  # dom_for comment, private: true
17
21
  #
18
- extend ActiveSupport::Autoload
19
-
20
- autoload :Model
21
- autoload :Record
22
-
23
- include Model
24
- include Record
25
-
26
- #
27
- # Creates a div tag with the attributes for the model or record of ActiveRecord
22
+ # Creates a html tag with the attributes for the model or record of ActiveRecord
28
23
  #
29
- # @param [ActiveRecord::Base, Class] object Model or record of ActiveRecord
30
- # @param [Hash] attrs Additional attributes for the record
31
- # @param [Proc] block Block for a div tag
24
+ # @param object [ActiveRecord::Base, Class] Model or record of ActiveRecord
25
+ # @param attrs [Hash] Additional attributes for the record
26
+ # @param block [Proc] Block for a div tag
32
27
  #
33
28
  # @return [String] Sanitized HTML string
34
29
  #
35
- def dom_for(object, attrs={}, &block)
30
+ def dom_for(object, attrs = {}, &block)
31
+ tag = attrs.delete(:tag) || :div
32
+
36
33
  if object.instance_of? Class
37
- dom_for_model(object, attrs, &block)
34
+ _dom_for_model(object, tag, attrs, &block)
38
35
  else
39
- dom_for_record(object, attrs, &block)
36
+ _dom_for_record(object, tag, attrs, &block)
40
37
  end
41
38
  end
42
-
43
39
  end
44
40
 
45
- require_relative 'dom_for/railtie' if defined? Rails
41
+ require_relative 'dom_for/railtie' if defined? ::Rails
@@ -1,21 +1,93 @@
1
1
  require 'rails_helper'
2
2
 
3
3
  describe DomFor do
4
-
5
4
  it 'includes in ActiveView::Base' do
6
5
  expect(ActionView::Base.ancestors).to include(DomFor)
7
- expect(ActionView::Base.ancestors).to include(DomFor::Model)
8
- expect(ActionView::Base.ancestors).to include(DomFor::Record)
9
6
  end
10
7
 
11
8
  context '#dom_for' do
12
- it 'invokes #dom_for_model' do
13
- expect(helper.dom_for(User)).to eq '<div id="users" class="users" />'
9
+ it 'returns span tag' do
10
+ expect(helper.dom_for(User, tag: :span)).to eq '<span id="users" class="users" />'
11
+ end
12
+
13
+ context 'with model' do
14
+ it 'returns div without nested tags' do
15
+ expect(helper.dom_for(User)).to eq '<div id="users" class="users" />'
16
+ end
17
+
18
+ it 'returns div with data-action attribute' do
19
+ expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
20
+
21
+ expect(helper.dom_for(User)).to eq '<div id="users" class="users" data-action="show" />'
22
+ end
23
+
24
+ it 'returns div for the new user' do
25
+ @user = User.new(name: 'test')
26
+ expect(helper.request).to receive(:path_parameters).and_return({ action: 'new' })
27
+
28
+ expect(helper.dom_for(User)).to eq '<div id="new_user" class="user new_user" data-action="new" />'
29
+ end
30
+
31
+ it 'returns div for the new user without request' do
32
+ @user = User.new(name: 'test')
33
+
34
+ expect(helper.dom_for(User)).to eq '<div id="new_user" class="user" />'
35
+ end
36
+
37
+ it 'returns div for the saved user' do
38
+ @user = User.create(name: 'test')
39
+ expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
40
+
41
+ expect(
42
+ helper.dom_for(User)
43
+ ).to eq '<div id="user_1" class="user show_user" data-action="show" data-object-id="1" data-object="users" />'
44
+ end
45
+
46
+ it 'returns div with the additional data-attributes' do
47
+ @user = User.create(name: 'test')
48
+ expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
49
+
50
+ expect(
51
+ helper.dom_for(User, admin: true)
52
+ ).to eq '<div id="user_1" class="user show_user" data-admin="true" data-action="show" data-object-id="1" data-object="users" />'
53
+ end
54
+
55
+ it 'returns div with nested tags' do
56
+ @user = User.create(name: 'test')
57
+ expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
58
+
59
+ expect(
60
+ helper.dom_for(User, admin: true) { helper.tag(:span) }
61
+ ).to eq '<div id="user_1" class="user show_user" data-admin="true" data-action="show" data-object-id="1" data-object="users"><span /></div>'
62
+ end
14
63
  end
15
64
 
16
- it 'invokes #dom_for_record' do
17
- expect(helper.dom_for(User.new)).to eq '<div id="new_user" class="user" />'
65
+ context 'with record' do
66
+ it 'returns div for the new user' do
67
+ expect(helper.dom_for(User.new)).to eq '<div id="new_user" class="user" />'
68
+ end
69
+
70
+ it 'returns div without nested tags' do
71
+ user = User.create(name: 'test')
72
+
73
+ expect(helper.dom_for(user)).to eq '<div id="user_1" class="user" data-object-id="1" />'
74
+ end
75
+
76
+ it 'returns div with nested tags' do
77
+ user = User.create(name: 'test')
78
+
79
+ expect(
80
+ helper.dom_for(user) { helper.tag(:span) }
81
+ ).to eq '<div id="user_1" class="user" data-object-id="1"><span /></div>'
82
+ end
83
+
84
+ it 'returns div with the additional data-attributes' do
85
+ user = User.create(name: 'test')
86
+
87
+ expect(
88
+ helper.dom_for(user, admin: true) { helper.tag(:span) }
89
+ ).to eq '<div id="user_1" class="user" data-admin="true" data-object-id="1"><span /></div>'
90
+ end
18
91
  end
19
92
  end
20
-
21
93
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dom_for
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mikhail Grachev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-08 00:00:00.000000000 Z
11
+ date: 2015-11-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '3.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description: Helper for easy creation of HTML wrapper ActiveRecord objects.
84
98
  email:
85
99
  - work@mgrachev.com
@@ -88,6 +102,7 @@ extensions: []
88
102
  extra_rdoc_files: []
89
103
  files:
90
104
  - ".gitignore"
105
+ - ".rubocop.yml"
91
106
  - ".ruby-version"
92
107
  - ".travis.yml"
93
108
  - ".yardopts"
@@ -153,8 +168,6 @@ files:
153
168
  - spec/dummy/public/422.html
154
169
  - spec/dummy/public/500.html
155
170
  - spec/dummy/public/favicon.ico
156
- - spec/helpers/dom_for_model_spec.rb
157
- - spec/helpers/dom_for_record_spec.rb
158
171
  - spec/helpers/dom_for_spec.rb
159
172
  - spec/rails_helper.rb
160
173
  - spec/spec_helper.rb
@@ -178,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
178
191
  version: '0'
179
192
  requirements: []
180
193
  rubyforge_project:
181
- rubygems_version: 2.2.2
194
+ rubygems_version: 2.4.7
182
195
  signing_key:
183
196
  specification_version: 4
184
197
  summary: Helper for creating HTML wrappers ActiveRecord objects.
@@ -234,8 +247,6 @@ test_files:
234
247
  - spec/dummy/public/422.html
235
248
  - spec/dummy/public/500.html
236
249
  - spec/dummy/public/favicon.ico
237
- - spec/helpers/dom_for_model_spec.rb
238
- - spec/helpers/dom_for_record_spec.rb
239
250
  - spec/helpers/dom_for_spec.rb
240
251
  - spec/rails_helper.rb
241
252
  - spec/spec_helper.rb
@@ -1,57 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe DomFor::Model do
4
-
5
- context '#dom_for_model' do
6
- it 'returns empty div' do
7
- expect(helper.dom_for_model(User.new)).to eq '<div></div>'
8
- end
9
-
10
- it 'returns div without nested tags' do
11
- expect(helper.dom_for_model(User)).to eq '<div id="users" class="users" />'
12
- end
13
-
14
- it 'returns div with data-action attribute' do
15
- expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
16
-
17
- expect(helper.dom_for_model(User)).to eq '<div id="users" class="users" data-action="show" />'
18
- end
19
-
20
- it 'returns div for the new user' do
21
- @user = User.new(name: 'test')
22
- expect(helper.request).to receive(:path_parameters).and_return({ action: 'new' })
23
-
24
- expect(helper.dom_for_model(User)).to eq '<div id="new_user" class="user new_user" data-action="new" />'
25
- end
26
-
27
- it 'returns div for the new user without request' do
28
- @user = User.new(name: 'test')
29
-
30
- expect(helper.dom_for_model(User)).to eq '<div id="new_user" class="user" />'
31
- end
32
-
33
- it 'returns div for the saved user' do
34
- @user = User.create(name: 'test')
35
- expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
36
-
37
- expect(helper.dom_for_model(User)).to eq '<div id="user_1" class="user show_user" data-action="show" data-object-id="1" data-object="users" />'
38
- end
39
-
40
- it 'returns div with the additional data-attributes' do
41
- @user = User.create(name: 'test')
42
- expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
43
-
44
- expect(helper.dom_for_model(User, admin: true)).to eq '<div id="user_1" class="user show_user" data-admin="true" data-action="show" data-object-id="1" data-object="users" />'
45
- end
46
-
47
- it 'returns div with nested tags' do
48
- @user = User.create(name: 'test')
49
- expect(helper.request).to receive(:path_parameters).and_return({ action: 'show' })
50
-
51
- expect(
52
- helper.dom_for_model(User, admin: true) { helper.tag(:span) }
53
- ).to eq '<div id="user_1" class="user show_user" data-admin="true" data-action="show" data-object-id="1" data-object="users"><span /></div>'
54
- end
55
- end
56
-
57
- end
@@ -1,37 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe DomFor::Record do
4
-
5
- context '#dom_for_record' do
6
- it 'returns empty div' do
7
- expect(helper.dom_for_record(User)).to eq '<div></div>'
8
- end
9
-
10
- it 'returns div for the new user' do
11
- expect(helper.dom_for_record(User.new)).to eq '<div id="new_user" class="user" />'
12
- end
13
-
14
- it 'returns div without nested tags' do
15
- user = User.create(name: 'test')
16
-
17
- expect(helper.dom_for_record(user)).to eq '<div id="user_1" class="user" data-object-id="1" />'
18
- end
19
-
20
- it 'returns div with nested tags' do
21
- user = User.create(name: 'test')
22
-
23
- expect(
24
- helper.dom_for_record(user) { helper.tag(:span) }
25
- ).to eq '<div id="user_1" class="user" data-object-id="1"><span /></div>'
26
- end
27
-
28
- it 'returns div with the additional data-attributes' do
29
- user = User.create(name: 'test')
30
-
31
- expect(
32
- helper.dom_for_record(user, admin: true) { helper.tag(:span) }
33
- ).to eq '<div id="user_1" class="user" data-admin="true" data-object-id="1"><span /></div>'
34
- end
35
- end
36
-
37
- end