jquery-modal-rails 0.0.1 → 0.0.2

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.
data/Gemfile CHANGED
@@ -1,4 +1,33 @@
1
- source :gemcutter
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '3.2.8'
4
+
5
+ # Bundle edge Rails instead:
6
+ # gem 'rails', :git => 'git://github.com/rails/rails.git'
7
+
8
+ gem 'sqlite3'
9
+
10
+
11
+ # Gems used only for assets and not required
12
+ # in production environments by default.
13
+ group :assets do
14
+ gem 'sass-rails', '~> 3.2.3'
15
+ gem 'coffee-rails', '~> 3.2.1'
16
+
17
+ # See https://github.com/sstephenson/execjs#readme for more supported runtimes
18
+ # gem 'therubyracer', :platforms => :ruby
19
+
20
+ gem 'uglifier', '>= 1.0.3'
21
+
22
+ gem 'jquery-ui-rails'
23
+ end
24
+
25
+ gem 'jquery-rails'
2
26
 
3
27
  # Specify your gem's dependencies in jquery-modal-rails.gemspec
4
28
  gemspec
29
+
30
+ # add rspec
31
+ gem 'rspec'
32
+ gem 'rspec-rails'
33
+ gem 'shoulda', :require => false
data/demoapp/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- gem 'rails', '3.2.6'
3
+ gem 'rails', '3.2.8'
4
4
 
5
5
  # Bundle edge Rails instead:
6
6
  # gem 'rails', :git => 'git://github.com/rails/rails.git'
File without changes
@@ -9,25 +9,37 @@ module Jquery
9
9
  # link_to(body, url, html_options = {})
10
10
  # link_to(body, url)
11
11
  #
12
- def link_to_modal(body, url, html_options = {})
13
- # extend the html_options
14
- html_options[:rel] = "modal:open"
15
- if (html_options.has_key?(:remote))
16
- if (html_options[:remote] == true)
17
- html_options[:rel] = "modal:open:ajaxpost"
12
+ def link_to_modal(*args, &block)
13
+ if block_given?
14
+ options = args.first || {}
15
+ html_options = args.second
16
+ block_result = yield(*args)
17
+ link_to_modal(block_result, options, html_options)
18
+ else
19
+ name = args[0]
20
+ options = args[1] || {}
21
+ html_options = args[2] || {}
22
+
23
+ # extend the html_options
24
+ html_options[:rel] = "modal:open"
25
+ if (html_options.has_key?(:remote))
26
+ if (html_options[:remote] == true)
27
+ html_options[:rel] = "modal:open:ajaxpost"
28
+ end
29
+
30
+ # remove the remote tag
31
+ html_options.delete(:remote)
18
32
  end
19
33
 
20
- # remove the remote tag
21
- html_options.delete(:remote)
22
- end
23
- # check if we have an id
24
- html_options[:id] = UUIDTools::UUID.random_create().to_s unless html_options.has_key?(:id)
34
+ # check if we have an id
35
+ html_options[:id] = UUIDTools::UUID.random_create().to_s unless html_options.has_key?(:id)
25
36
 
26
- # perform the normal link_to operation
27
- html_link = link_to(body, url, html_options)
37
+ # perform the normal link_to operation
38
+ html_link = link_to(name, options, html_options)
28
39
 
29
- # emit both
30
- html_link.html_safe
40
+ # emit both
41
+ html_link.html_safe
42
+ end
31
43
  end
32
44
  end
33
45
  end
@@ -2,6 +2,10 @@ module Jquery
2
2
  module Modal
3
3
  module Rails
4
4
  class Engine < ::Rails::Engine
5
+ config.generators do |g|
6
+ g.test_framework :rspec
7
+ g.integration_tool :rspec
8
+ end
5
9
  end
6
10
  end
7
11
  end
@@ -1,7 +1,7 @@
1
1
  module Jquery
2
2
  module Modal
3
3
  module Rails
4
- VERSION = "0.0.1"
4
+ VERSION = "0.0.2"
5
5
  JQUERY_MODAL_VERSION = "0.5"
6
6
  end
7
7
  end
@@ -0,0 +1,49 @@
1
+ require "spec_helper"
2
+
3
+ describe Jquery::Helpers do
4
+ include ActionView::Helpers, ::ERB::Util, ActionView::Context
5
+ include Jquery::Helpers
6
+
7
+
8
+ it "offers default link" do
9
+ link_to_modal("SimpleDialog", "http://www.google.de", :id => 1).should \
10
+ eq('<a href="http://www.google.de" id="1" rel="modal:open">SimpleDialog</a>')
11
+ end
12
+
13
+ it "offers AJAX link" do
14
+ link_to_modal("SimpleDialog", "http://www.google.de", :id => 1, :remote => true).should \
15
+ eq('<a href="http://www.google.de" id="1" rel="modal:open:ajaxpost">SimpleDialog</a>')
16
+ end
17
+
18
+ it "supports block for default link" do
19
+ link = link_to_modal("http://www.google.de", :id => 1) do
20
+ "SimpleDialog"
21
+ end
22
+
23
+ link.should eq('<a href="http://www.google.de" id="1" rel="modal:open">SimpleDialog</a>')
24
+ end
25
+
26
+ it "supports block for AJAX link" do
27
+ link = link_to_modal("http://www.google.de", :id => 1, :remote => true) do
28
+ "SimpleDialog"
29
+ end
30
+
31
+ link.should eq('<a href="http://www.google.de" id="1" rel="modal:open:ajaxpost">SimpleDialog</a>')
32
+ end
33
+
34
+ it "supports block for complex AJAX link" do
35
+ link = link_to_modal("http://www.google.de", :id => 1, :remote => true) do
36
+ content_tag(:div) do
37
+ content_tag(:p) do
38
+ "SimpleDialog"
39
+ end
40
+ end
41
+ end
42
+
43
+ link.should eq('<a href="http://www.google.de" id="1" rel="modal:open:ajaxpost"><div><p>SimpleDialog</p></div></a>')
44
+ end
45
+
46
+ it "does not crash with only two paraemters" do
47
+ link_to_modal('New User Modal', "http://google.de").should_not be_nil
48
+ end
49
+ end
@@ -0,0 +1,20 @@
1
+ ENV['RAILS_ENV'] = 'test'
2
+ ENGINE_RAILS_ROOT = File.join(File.dirname(__FILE__), '../')
3
+
4
+ require File.expand_path("../../demoapp/config/environment", __FILE__)
5
+
6
+ require 'bundler'
7
+ Bundler.require(:default)
8
+
9
+ require 'rspec/rails'
10
+ require 'shoulda'
11
+
12
+ # Requires supporting ruby files with custom matchers and macros, etc,
13
+ # in spec/support/ and its subdirectories.
14
+ Dir[File.join(ENGINE_RAILS_ROOT, "spec/support/**/*.rb")].each {|f| require f }
15
+
16
+ #
17
+ # General config for RSpec
18
+ RSpec.configure do |config|
19
+
20
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery-modal-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-23 00:00:00.000000000 Z
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: railties
@@ -135,6 +135,7 @@ files:
135
135
  - demoapp/db/migrate/20120621084323_create_users.rb
136
136
  - demoapp/db/schema.rb
137
137
  - demoapp/db/seeds.rb
138
+ - demoapp/db/test.sqlite3
138
139
  - demoapp/doc/README_FOR_APP
139
140
  - demoapp/log/development.log
140
141
  - demoapp/public/404.html
@@ -158,6 +159,8 @@ files:
158
159
  - lib/jquery/modal/rails.rb
159
160
  - lib/jquery/modal/rails/engine.rb
160
161
  - lib/jquery/modal/rails/version.rb
162
+ - spec/jquery/modal/link_helpers_spec.rb
163
+ - spec/spec_helper.rb
161
164
  - vendor/assets/images/close.png
162
165
  - vendor/assets/images/spinner.gif
163
166
  - vendor/assets/javascripts/jquery.modal.js