sweetify 0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: f789039fd2d9f4ab21db360af580e92b1af57315
4
+ data.tar.gz: ef1a2472e02d7713835d70172bdc5639713d6846
5
+ SHA512:
6
+ metadata.gz: 81b4a5787bfbb2ed630fc5be61dd9f1dcca5565e8909867fc01be63a63a98d269a5d73a28725b02b3c7bfcedc00329c6e3798c596331b9162380e5f3360d730b
7
+ data.tar.gz: 0ec18b7173fe8a1005950f455f7eb352044509d171e5d0a3ce51df7c13050d2cd508d973e3b8382b162389b0c38e5fa5b617b4e9010a31b839e4632d225aa0b5
data/LICENSE ADDED
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2016, Atrox
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ * Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+
10
+ * Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+
14
+ * Neither the name of Sweetify nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,92 @@
1
+ # Sweetify - SweetAlert for Rails
2
+ This gem allows you to use [SweetAlert](http://t4t5.github.io/sweetalert/) for your flash messages.
3
+ _See the examples below, to see how it looks like_
4
+
5
+ ## Installation
6
+ **Note: This package does not provide the client side javascript and css files of SweetAlert. You have to provide them yourself.**
7
+
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'sweetify'
12
+ ```
13
+
14
+ And then execute:
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Next add the following line to the bottom of your application's layout file:
20
+ ```html
21
+ ...
22
+
23
+ <%= render 'sweetify/alert' %>
24
+
25
+ </body>
26
+ </html>
27
+ ```
28
+
29
+ **You have to restart your rails server after installing the gem**
30
+
31
+ ## Usage
32
+ You can now easily create alerts in your controllers with any of the following methods provided by **Sweetify**:
33
+ ```ruby
34
+ # Base Method, no type specified
35
+ sweetalert(text, title = '', opts = {})
36
+
37
+ # Additional methods with the type already defined
38
+ alert_info(text, title = '', opts = {})
39
+ alert_success(text, title = '', opts = {})
40
+ alert_error(text, title = '', opts = {})
41
+ alert_warning(text, title = '', opts = {})
42
+ ```
43
+
44
+ ## Example Usage
45
+ ```ruby
46
+ # POST /resource
47
+ def create
48
+ alert_success('Your resource is created and available.', 'Successfully created', persistent: 'Awesome!')
49
+ redirect_to resource_path
50
+ end
51
+ ```
52
+
53
+ That would look like this after the redirect:
54
+
55
+ ![Example Alert](http://i.imgur.com/3WMvk0y.png)
56
+
57
+
58
+ ## Options
59
+ **By default, all alerts will dismiss after a sensible default number of seconds.**
60
+
61
+ Default Options set by **Sweetify**:
62
+ ```ruby
63
+ {
64
+ showConfirmButton: false,
65
+ timer: 2000,
66
+ allowOutsideClick: true,
67
+ confirmButtonText: 'OK'
68
+ }
69
+ ```
70
+
71
+ The following special options provided by **Sweetify** are available:
72
+ ```ruby
73
+ sweetalert('Text', 'Title', button: true) # Shows an button with the default content on the alert but still closes automatically
74
+ sweetalert('Text', 'Title', button: 'Awesome!') # Same as above just with a specified text
75
+
76
+ sweetalert('Text', 'Title', persistent: true) # Shows the dialog with an button and the alert only closes if the button is pressed
77
+ sweetalert('Text', 'Title', persistent: 'Awesome!') # Same as above just with a specified text
78
+ ```
79
+
80
+ You also can use any other available option that [SweetAlert accepts](http://t4t5.github.io/sweetalert/):
81
+ ```ruby
82
+ alert_info('Here is a custom image', 'Sweet!', imageUrl: 'images/thumbs-up.jpg', timer: 5000)
83
+ ```
84
+
85
+
86
+ ## Contributing
87
+ Everyone is encouraged to help improve this project. Here are a few ways you can help:
88
+
89
+ - [Report bugs](https://github.com/atrox/sweetify/issues)
90
+ - Fix bugs and [submit pull requests](https://github.com/atrox/sweetify/pulls)
91
+ - Write, clarify, or fix documentation
92
+ - Suggest or add new features
@@ -0,0 +1,34 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'Sweetify'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+
18
+
19
+
20
+
21
+
22
+ require 'bundler/gem_tasks'
23
+
24
+ require 'rake/testtask'
25
+
26
+ Rake::TestTask.new(:test) do |t|
27
+ t.libs << 'lib'
28
+ t.libs << 'test'
29
+ t.pattern = 'test/**/*_test.rb'
30
+ t.verbose = true
31
+ end
32
+
33
+
34
+ task default: :test
@@ -0,0 +1,5 @@
1
+ <% if flash[:sweetify].present? %>
2
+ <script>
3
+ swal(<%= flash[:sweetify].html_safe %>)
4
+ </script>
5
+ <% end %>
@@ -0,0 +1,2 @@
1
+ require 'sweetify/engine'
2
+ require 'sweetify/sweetify'
@@ -0,0 +1,4 @@
1
+ module Sweetify
2
+ class Engine < ::Rails::Engine
3
+ end
4
+ end
@@ -0,0 +1,93 @@
1
+ module Sweetify
2
+
3
+ # Display an alert with a text and an optional title
4
+ # Default without an specific type
5
+ #
6
+ # @param [String] text Body of the alert (gets automatically the title if no title is specified)
7
+ # @param [String] title TItle of the alert
8
+ # @param [Hash] opts Optional Parameters
9
+ def sweetalert(text, title = '', opts = {})
10
+ opts = {
11
+ showConfirmButton: false,
12
+ timer: 2000,
13
+ allowOutsideClick: true,
14
+ confirmButtonText: 'OK'
15
+ }.merge(opts)
16
+
17
+ opts[:text] = text
18
+ opts[:title] = title
19
+
20
+ if opts[:button]
21
+ opts[:showConfirmButton] = true
22
+ opts[:confirmButtonText] = opts[:button] if opts[:button].is_a?(String)
23
+ end
24
+
25
+ if opts[:persistent]
26
+ opts[:showConfirmButton] = true
27
+ opts[:allowOutsideClick] = false
28
+ opts[:timer] = nil
29
+ opts[:confirmButtonText] = opts[:persistent] if opts[:persistent].is_a?(String)
30
+ end
31
+
32
+ flash_config(opts)
33
+ end
34
+
35
+ # Information Alert
36
+ #
37
+ # @param [String] text Body of the alert (gets automatically the title if no title is specified)
38
+ # @param [String] title TItle of the alert
39
+ # @param [Hash] opts Optional Parameters
40
+ def alert_info(text, title = '', opts = {})
41
+ opts[:type] = :info
42
+ sweetalert(text, title, opts)
43
+ end
44
+
45
+ # Success Alert
46
+ #
47
+ # @param [String] text Body of the alert (gets automatically the title if no title is specified)
48
+ # @param [String] title TItle of the alert
49
+ # @param [Hash] opts Optional Parameters
50
+ def alert_success(text, title = '', opts = {})
51
+ opts[:type] = :success
52
+ sweetalert(text, title, opts)
53
+ end
54
+
55
+ # Error Alert
56
+ #
57
+ # @param [String] text Body of the alert (gets automatically the title if no title is specified)
58
+ # @param [String] title TItle of the alert
59
+ # @param [Hash] opts Optional Parameters
60
+ def alert_error(text, title = '', opts = {})
61
+ opts[:type] = :error
62
+ sweetalert(text, title, opts)
63
+ end
64
+
65
+ # Warning Alert
66
+ #
67
+ # @param [String] text Body of the alert (gets automatically the title if no title is specified)
68
+ # @param [String] title TItle of the alert
69
+ # @param [Hash] opts Optional Parameters
70
+ def alert_warning(text, title = '', opts = {})
71
+ opts[:type] = :warning
72
+ sweetalert(text, title, opts)
73
+ end
74
+
75
+ private
76
+
77
+ # Flash the configuration as json
78
+ # If no title is specified, use the text as the title
79
+ #
80
+ # @param [Hash] opts
81
+ # @return [Void]
82
+ def flash_config(opts)
83
+ if opts[:title].blank?
84
+ opts[:title] = opts[:text]
85
+ opts.delete(:text)
86
+ end
87
+
88
+ flash[:sweetify] = opts.to_json
89
+ end
90
+
91
+ end
92
+
93
+ ActionController::Base.send :include, Sweetify
@@ -0,0 +1,3 @@
1
+ module Sweetify
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :sweetify do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,67 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: sweetify
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Atrox
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2016-05-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: actionpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Sweetify allows you to easily use SweetAlert within your controllers
28
+ email:
29
+ - mail@atrox.me
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - LICENSE
35
+ - README.md
36
+ - Rakefile
37
+ - app/views/sweetify/_alert.html.erb
38
+ - lib/sweetify.rb
39
+ - lib/sweetify/engine.rb
40
+ - lib/sweetify/sweetify.rb
41
+ - lib/sweetify/version.rb
42
+ - lib/tasks/sweetify_tasks.rake
43
+ homepage: https://github.com/atrox/sweetify
44
+ licenses:
45
+ - BSD-3-Clause
46
+ metadata: {}
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubyforge_project:
63
+ rubygems_version: 2.4.5.1
64
+ signing_key:
65
+ specification_version: 4
66
+ summary: SweetAlert integrated in Ruby on Rails
67
+ test_files: []