dismissible_helpers 0.2.0 → 0.3.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 33c181da8b0704b9cd1d3861ca021b2d462cb141
4
+ data.tar.gz: 3322542ee6be7c5b4271802213b971cbf6eecc8d
5
+ SHA512:
6
+ metadata.gz: 0e20a08284ecfc77fc89ab11c793f9497dc3eb823d479def4e23c6560364f7796c2de1dbcac325cf735536f556780e0d891a99103bec83cdde0c08db9ce9051b
7
+ data.tar.gz: 2ffea3bd4cd56bda7d14c03d6edab5b8023fa1c23d4daf376034cd5c8c6ac651d6d84200e97837c2f77b9beb26b8eee507c0eddf38523a01b981156d70205f86
data/README.md CHANGED
@@ -29,7 +29,7 @@ with the helpers
29
29
  ### Default Behavior ###
30
30
 
31
31
  By default, DismissibleHelpers will use cookies to track the state of
32
- the dismissed helpers.
32
+ the dismissed helpers.
33
33
 
34
34
  ### Adding a dismissible helper to your page ###
35
35
 
@@ -58,6 +58,19 @@ The string passed to the method will be used as a key, to track whether or not t
58
58
  <% end %>
59
59
  ```
60
60
 
61
+ #### Restoring helpers
62
+
63
+ You can allow users to restore a helper if you pass `restorable: true` as an argument after the name of the helper.
64
+
65
+ ```erb
66
+ <%= render_dismissible_helper 'how_to_buy', restorable: true do %>
67
+ <h2>How to buy stuff</h2>
68
+ <p>To buy stuff, click look at this:</p>
69
+ <img src="http://domain.com/img.jpg">
70
+ <% end %>
71
+ ```
72
+
73
+ This will allow the user to hide the helper, as well as display a restore link to display the helper again.
61
74
 
62
75
  ### Including the routes ###
63
76
 
@@ -85,15 +98,33 @@ following call'
85
98
  ```javascript
86
99
  $(function(){
87
100
  $('.dismissible').dismissible({
88
- success: function(helper){
101
+ dismiss: function(helper){
102
+ helper.slideUp(); //'helper' is the jQuery-wrapped element
103
+ }
104
+ });
105
+ });
106
+ ```
107
+
108
+ If you are working with restorable helpers the helper will be hidden instead
109
+ and a show link will be revealed.
110
+ There's a second callback when the show event was invoked as well.
111
+
112
+ ```javascript
113
+ $(function(){
114
+ $('.dismissible').dismissible({
115
+ dismiss: function(helper){
89
116
  helper.slideUp(); //'helper' is the jQuery-wrapped element
117
+ },
118
+ show: function(helper){
119
+ helper.slideDown();
90
120
  }
91
121
  });
92
122
  });
93
123
  ```
124
+
94
125
  ### Using authenticated user ###
95
126
 
96
- DismissibleHelpers will store the dismissed helpers on a model.
127
+ DismissibleHelpers will store the dismissed helpers on a model.
97
128
  If the helper method `current_user` is available, DismissibleHelpers
98
129
  will use this to retrieve the current user/account.
99
130
 
@@ -1,29 +1,52 @@
1
1
  (($) ->
2
2
  $.fn.dismissible = (options) ->
3
3
  options = {} if options == undefined
4
- if options.closeSelector?
5
- closeSelector = options.closeSelector
6
- else
7
- closeSelector = '.close'
4
+ options.closeSelector ?= '.close'
5
+ options.openSelector ?= '.open'
6
+ options.name = @.attr('data-dismissible-name')
8
7
 
9
- @find(closeSelector).click (event) ->
8
+ @find(options.closeSelector).click (event) ->
10
9
  $target = $ event.target
11
10
  $helper = $target.parent()
12
11
  event.preventDefault()
13
12
 
14
13
  $helper.dismiss(options)
15
14
 
15
+ @find(options.openSelector).click (event) ->
16
+ $target = $ event.target
17
+ $helper = $target.parent()
18
+ event.preventDefault()
19
+
20
+ $helper.restore(options)
21
+
16
22
  $.fn.dismiss = (options) ->
17
- name = @.attr('data-dismissible-name')
18
- $.ajax
23
+ restorable = @.attr('data-restorable') is 'true'
24
+ $.rails.ajax
19
25
  url: '/dismissed_helpers'
20
26
  type: 'POST'
21
27
  dataType: 'json'
22
28
  data:
23
- helper: name
29
+ helper: options.name
30
+ success: =>
31
+ if options? and options.dismiss != undefined
32
+ options.dismiss(@)
33
+ else
34
+ if restorable
35
+ $(@).children().each ->
36
+ $(@).toggle()
37
+ else
38
+ $(@).remove()
39
+
40
+
41
+ $.fn.restore = (options) ->
42
+ $.rails.ajax
43
+ url: '/dismissed_helpers/' + options.name
44
+ type: 'DELETE'
45
+ dataType: 'json'
24
46
  success: =>
25
- if options? and options.success != undefined
26
- options.success(@)
47
+ if options? and options.show != undefined
48
+ options.show(@)
27
49
  else
28
- @.remove()
50
+ $(@).children().each ->
51
+ $(@).toggle()
29
52
  )(jQuery)
@@ -1,4 +1,5 @@
1
1
  en:
2
2
  dismissible_helpers:
3
3
  actions:
4
- close: "Close"
4
+ close: "Close"
5
+ open: "Open"
@@ -7,31 +7,46 @@ class DismissibleHelpers::ContentBuilder
7
7
  self.new(*args).build
8
8
  end
9
9
 
10
- def initialize(name, contents=nil)
10
+ def initialize(name, contents=nil, options={})
11
11
  @name = name
12
12
  @contents = contents
13
+ @options = options
13
14
  end
14
15
 
15
16
  def build
16
17
  options = {}
17
18
  options[:class] = 'dismissible'
18
- options[:data] = {:dismissible_name => @name}
19
- html = [content_str, close_str].join.html_safe
19
+ options[:data] = {:dismissible_name => @name, :restorable => restorable?}
20
+ html = build_markup
20
21
  content_tag :div, html, options
21
22
  end
22
23
 
23
- private
24
+ def build_markup
25
+ return [content_str, dismissed? ? '' : close_str].join.html_safe
26
+ end
27
+
28
+ protected
29
+
30
+ def restorable?
31
+ return false
32
+ end
33
+
34
+ def dismissed?
35
+ return @options[:dismissed]
36
+ end
24
37
 
25
38
  def content_str
26
- @content_str ||= if @contents
27
- @contents
28
- else
29
- t(@name)
30
- end
39
+ @content_str ||= begin
40
+ content = if @contents
41
+ @contents
42
+ else
43
+ t(@name)
44
+ end
45
+ dismissed? ? nil : content
46
+ end
31
47
  end
32
48
 
33
49
  def close_str
34
50
  content_tag(:a, I18n.t(:"dismissible_helpers.actions.close"), :class => 'close', :href => '#')
35
51
  end
36
-
37
- end
52
+ end
@@ -6,13 +6,35 @@ module DismissibleHelpers::Controllers::DismissedHelpers
6
6
  else
7
7
  if cookies[:dismissed_helpers].present?
8
8
  dismissed_helpers = cookies[:dismissed_helpers].split '|'
9
- dismissed_helpers += [params[:helper]]
9
+ dismissed_helpers += [ current_helper ]
10
10
  else
11
- dismissed_helpers = [params[:helper]]
11
+ dismissed_helpers = [ current_helper ]
12
12
  end
13
13
  cookies[:dismissed_helpers] = dismissed_helpers.join '|'
14
14
  end
15
15
 
16
16
  render :json => {}, :status => :ok
17
17
  end
18
+
19
+ def destroy
20
+ Rails.logger.info "destroy '#{current_helper}'"
21
+ if respond_to?(:current_user) && current_user && current_user.respond_to?(:dismissed_helpers)
22
+ current_user.dismissed_helpers = current_user.dismissed_helpers.reject { |helper| helper == current_helper }
23
+ current_user.save!
24
+ else
25
+ if cookies[:dismissed_helpers].present?
26
+ dismissed_helpers = cookies[:dismissed_helpers].split '|'
27
+ dismissed_helpers = dismissed_helpers - [ current_helper ]
28
+ end
29
+ dismissed_helpers ||= []
30
+ cookies[:dismissed_helpers] = dismissed_helpers.join('|')
31
+ end
32
+
33
+ render :json => {}, :status => :ok
34
+ end
35
+
36
+ private
37
+ def current_helper
38
+ return params[:helper].to_s
39
+ end
18
40
  end
@@ -1,10 +1,10 @@
1
1
  module DismissibleHelpers::Helpers::DismissibleHelpers
2
2
 
3
- def render_dismissible_helper(name, &block)
4
- unless dismissed?(name)
5
- contents = block_given? ? capture(&block) : nil
6
- DismissibleHelpers::ContentBuilder.build(name, contents)
7
- end
3
+ def render_dismissible_helper(name, options = {}, &block)
4
+ contents = block_given? ? capture(&block) : nil
5
+ restorable = options.fetch(:restorable) { false }
6
+ builder = restorable ? DismissibleHelpers::RestorableContentBuilder : DismissibleHelpers::ContentBuilder
7
+ builder.build(name, contents, options.merge({ dismissed: dismissed?(name) }))
8
8
  end
9
9
 
10
10
  private
@@ -0,0 +1,32 @@
1
+ module DismissibleHelpers
2
+ class RestorableContentBuilder < ContentBuilder
3
+ def build_markup
4
+ return [content_str, open_str, close_str].join.html_safe
5
+ end
6
+
7
+ protected
8
+
9
+ def restorable?
10
+ return true
11
+ end
12
+
13
+ def open_str
14
+ content_tag(:a, I18n.t(:"dismissible_helpers.actions.open"), :class => 'open', style: (dismissed? ? '' : 'display: none'), :href => '#')
15
+ end
16
+
17
+ def content_str
18
+ @content_str ||= begin
19
+ content = if @contents
20
+ @contents
21
+ else
22
+ t(@name)
23
+ end
24
+ content_tag :div, content, style: (dismissed? ? 'display: none' : '')
25
+ end
26
+ end
27
+
28
+ def close_str
29
+ content_tag(:a, I18n.t(:"dismissible_helpers.actions.close"), :class => 'close', style: (dismissed? ? 'display: none' : ''), :href => '#')
30
+ end
31
+ end
32
+ end
@@ -1,5 +1,6 @@
1
1
  module DismissibleHelpers::Routes
2
2
  def dismissible_helpers_routes
3
3
  post '/dismissed_helpers' => 'dismissed_helpers#create', :as => :dismissed_helpers
4
+ delete '/dismissed_helpers/:helper' => 'dismissed_helpers#destroy'
4
5
  end
5
6
  end
@@ -1,3 +1,3 @@
1
1
  module DismissibleHelpers
2
- VERSION = '0.2.0'
2
+ VERSION = '0.3.0'
3
3
  end
@@ -7,6 +7,7 @@ module DismissibleHelpers
7
7
  autoload :Routes
8
8
  autoload :Helpers
9
9
  autoload :ContentBuilder
10
+ autoload :RestorableContentBuilder
10
11
  autoload :DismissedChecker
11
12
  autoload :DismissedHelpersExtractor
12
13
 
@@ -0,0 +1 @@
1
+ <%= render_dismissible_helper 'restorable', restorable: true %>
@@ -1 +1 @@
1
- <%= render_dismissible_helper 'hello' %>
1
+ <%= render_dismissible_helper 'hello' %>
@@ -3,3 +3,4 @@
3
3
 
4
4
  en:
5
5
  hello: "Hello world"
6
+ restorable: "Click to Dismiss or Show"
@@ -2,6 +2,7 @@ Dummy::Application.routes.draw do
2
2
  dismissible_helpers_routes
3
3
  easy_auth_routes
4
4
 
5
+ match 'landing/restorable', :to => 'landing#restorable'
5
6
  match 'landing/block', :to => 'landing#block'
6
7
  root :to => 'landing#show'
7
8
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- feature 'Signed in user', :js do
3
+ feature 'Signed in user', :js => true do
4
4
  scenario 'Sees and dismisses helper' do
5
5
  sign_in_as(create(:user))
6
6
  page.should have_content 'Hello world'
@@ -12,4 +12,31 @@ feature 'Signed in user', :js do
12
12
  visit sign_out_path
13
13
  page.should have_content 'Hello world'
14
14
  end
15
+
16
+ scenario 'Sees, dismisses and restores a restorable helper', :js => true do
17
+ sign_in_as(create(:user))
18
+ visit '/landing/restorable'
19
+
20
+ # hide a restorable helper
21
+ page.should have_content 'Click to Dismiss or Show'
22
+ click_on 'Close'
23
+ sleep 1
24
+ page.should_not have_content 'Click to Dismiss or Show'
25
+ page.should have_content 'Open'
26
+ visit '/landing/restorable'
27
+ page.should_not have_content 'Click to Dismiss or Show'
28
+ page.should have_content 'Open'
29
+
30
+ # restore a hidden restorable helper
31
+ click_on 'Open'
32
+ sleep 1
33
+ page.should have_content 'Click to Dismiss or Show'
34
+ page.should_not have_content 'Open'
35
+ page.should have_content 'Close'
36
+
37
+ visit '/landing/restorable'
38
+ page.should have_content 'Click to Dismiss or Show'
39
+ page.should_not have_content 'Open'
40
+ page.should have_content 'Close'
41
+ end
15
42
  end
@@ -1,6 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
- feature 'Signed out user', :js do
3
+ feature 'Signed out user', :js => true do
4
4
  scenario 'Sees and dismisses helper' do
5
5
  visit root_path
6
6
  page.should have_content 'Hello world'
@@ -10,4 +10,30 @@ feature 'Signed out user', :js do
10
10
  visit root_path
11
11
  page.should_not have_content 'Hello world'
12
12
  end
13
+
14
+ scenario 'Sees, dismisses and restores a restorable helper', :js => true do
15
+ visit '/landing/restorable'
16
+
17
+ # hide a restorable helper
18
+ page.should have_content 'Click to Dismiss or Show'
19
+ click_on 'Close'
20
+ sleep 1
21
+ page.should_not have_content 'Click to Dismiss or Show'
22
+ page.should have_content 'Open'
23
+ visit '/landing/restorable'
24
+ page.should_not have_content 'Click to Dismiss or Show'
25
+ page.should have_content 'Open'
26
+
27
+ # restore a hidden restorable helper
28
+ click_on 'Open'
29
+ sleep 1
30
+ page.should have_content 'Click to Dismiss or Show'
31
+ page.should_not have_content 'Open'
32
+ page.should have_content 'Close'
33
+
34
+ visit '/landing/restorable'
35
+ page.should have_content 'Click to Dismiss or Show'
36
+ page.should_not have_content 'Open'
37
+ page.should have_content 'Close'
38
+ end
13
39
  end
@@ -0,0 +1,34 @@
1
+ require 'spec_helper'
2
+
3
+ describe DismissibleHelpers::RestorableContentBuilder do
4
+
5
+ describe '#build' do
6
+ context 'given a string' do
7
+ it 'should build a dismissible div containing the string as its contents' do
8
+ content = "<p>Great</p>"
9
+ builder = described_class.new(content)
10
+ html = builder.build
11
+ doc = Capybara.string(html)
12
+ p_el = doc.find('div.dismissible p')
13
+ p_el.text.should == 'Great'
14
+ end
15
+ end
16
+
17
+ it 'should have a close button' do
18
+ builder = described_class.new('something')
19
+ html = builder.build
20
+ doc = Capybara.string(html)
21
+ close_el = doc.find('div a.close')
22
+ close_el[:href].should == '#'
23
+ end
24
+
25
+ it 'should have a open button' do
26
+ builder = described_class.new('something')
27
+ html = builder.build
28
+ doc = Capybara.string(html)
29
+ close_el = doc.find('div a.open')
30
+ close_el[:href].should == '#'
31
+ end
32
+ end
33
+
34
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec_helper'
2
+
3
+ describe 'landing/restorable.html.erb' do
4
+
5
+ it 'should display the dismissible helper rendered with a block' do
6
+ render
7
+
8
+ doc = Capybara.string(rendered)
9
+ wrapper = doc.find('.dismissible')
10
+ wrapper.should have_selector('.open')
11
+ wrapper.should have_selector('.close')
12
+ wrapper.find("div:first").should have_content 'Click to Dismiss or Show'
13
+ end
14
+
15
+ end
metadata CHANGED
@@ -1,20 +1,18 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dismissible_helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Dan McClain
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-28 00:00:00.000000000 Z
11
+ date: 2013-05-06 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rails
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
17
  - - ~>
20
18
  - !ruby/object:Gem::Version
@@ -22,7 +20,6 @@ dependencies:
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
24
  - - ~>
28
25
  - !ruby/object:Gem::Version
@@ -30,103 +27,90 @@ dependencies:
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: sqlite3
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec-rails
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - '>='
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: capybara
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: fakeweb
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: poltergeist
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: database_cleaner
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: factory_girl_rails
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
115
  - - ~>
132
116
  - !ruby/object:Gem::Version
@@ -134,7 +118,6 @@ dependencies:
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
122
  - - ~>
140
123
  - !ruby/object:Gem::Version
@@ -142,7 +125,6 @@ dependencies:
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: factory_girl
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
129
  - - ~>
148
130
  - !ruby/object:Gem::Version
@@ -150,7 +132,6 @@ dependencies:
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
136
  - - ~>
156
137
  - !ruby/object:Gem::Version
@@ -158,7 +139,6 @@ dependencies:
158
139
  - !ruby/object:Gem::Dependency
159
140
  name: mocha
160
141
  requirement: !ruby/object:Gem::Requirement
161
- none: false
162
142
  requirements:
163
143
  - - ~>
164
144
  - !ruby/object:Gem::Version
@@ -166,7 +146,6 @@ dependencies:
166
146
  type: :development
167
147
  prerelease: false
168
148
  version_requirements: !ruby/object:Gem::Requirement
169
- none: false
170
149
  requirements:
171
150
  - - ~>
172
151
  - !ruby/object:Gem::Version
@@ -174,17 +153,15 @@ dependencies:
174
153
  - !ruby/object:Gem::Dependency
175
154
  name: launchy
176
155
  requirement: !ruby/object:Gem::Requirement
177
- none: false
178
156
  requirements:
179
- - - ! '>='
157
+ - - '>='
180
158
  - !ruby/object:Gem::Version
181
159
  version: '0'
182
160
  type: :development
183
161
  prerelease: false
184
162
  version_requirements: !ruby/object:Gem::Requirement
185
- none: false
186
163
  requirements:
187
- - - ! '>='
164
+ - - '>='
188
165
  - !ruby/object:Gem::Version
189
166
  version: '0'
190
167
  description: Simple Dismissible help text for your Rails projects
@@ -206,6 +183,7 @@ files:
206
183
  - lib/dismissible_helpers/engine.rb
207
184
  - lib/dismissible_helpers/helpers/dismissible_helpers.rb
208
185
  - lib/dismissible_helpers/helpers.rb
186
+ - lib/dismissible_helpers/restorable_content_builder.rb
209
187
  - lib/dismissible_helpers/routes.rb
210
188
  - lib/dismissible_helpers/version.rb
211
189
  - lib/dismissible_helpers.rb
@@ -229,6 +207,7 @@ files:
229
207
  - spec/dummy/app/helpers/application_helper.rb
230
208
  - spec/dummy/app/models/user.rb
231
209
  - spec/dummy/app/views/landing/block.html.erb
210
+ - spec/dummy/app/views/landing/restorable.html.erb
232
211
  - spec/dummy/app/views/landing/show.html.erb
233
212
  - spec/dummy/app/views/layouts/application.html.erb
234
213
  - spec/dummy/config/application.rb
@@ -289,38 +268,33 @@ files:
289
268
  - spec/requests/authenticated_spec.rb
290
269
  - spec/requests/step_helpers/authentication.rb
291
270
  - spec/requests/unauthenticated_spec.rb
271
+ - spec/restorable_content_builder_spec.rb
292
272
  - spec/spec_helper.rb
293
273
  - spec/support/factories.rb
294
274
  - spec/views/landing/block_spec.rb
275
+ - spec/views/landing/restorable_spec.rb
295
276
  homepage: ''
296
277
  licenses: []
278
+ metadata: {}
297
279
  post_install_message:
298
280
  rdoc_options: []
299
281
  require_paths:
300
282
  - lib
301
283
  required_ruby_version: !ruby/object:Gem::Requirement
302
- none: false
303
284
  requirements:
304
- - - ! '>='
285
+ - - '>='
305
286
  - !ruby/object:Gem::Version
306
287
  version: '0'
307
- segments:
308
- - 0
309
- hash: -3362041527304697344
310
288
  required_rubygems_version: !ruby/object:Gem::Requirement
311
- none: false
312
289
  requirements:
313
- - - ! '>='
290
+ - - '>='
314
291
  - !ruby/object:Gem::Version
315
292
  version: '0'
316
- segments:
317
- - 0
318
- hash: -3362041527304697344
319
293
  requirements: []
320
294
  rubyforge_project:
321
- rubygems_version: 1.8.23
295
+ rubygems_version: 2.0.3
322
296
  signing_key:
323
- specification_version: 3
297
+ specification_version: 4
324
298
  summary: Simple Dismissible help text for your Rails projects
325
299
  test_files:
326
300
  - spec/config/active_record.rb
@@ -340,6 +314,7 @@ test_files:
340
314
  - spec/dummy/app/helpers/application_helper.rb
341
315
  - spec/dummy/app/models/user.rb
342
316
  - spec/dummy/app/views/landing/block.html.erb
317
+ - spec/dummy/app/views/landing/restorable.html.erb
343
318
  - spec/dummy/app/views/landing/show.html.erb
344
319
  - spec/dummy/app/views/layouts/application.html.erb
345
320
  - spec/dummy/config/application.rb
@@ -400,6 +375,8 @@ test_files:
400
375
  - spec/requests/authenticated_spec.rb
401
376
  - spec/requests/step_helpers/authentication.rb
402
377
  - spec/requests/unauthenticated_spec.rb
378
+ - spec/restorable_content_builder_spec.rb
403
379
  - spec/spec_helper.rb
404
380
  - spec/support/factories.rb
405
381
  - spec/views/landing/block_spec.rb
382
+ - spec/views/landing/restorable_spec.rb