rjs-if 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ OWUxMjY5NmQ5MDk5ZmM0MDJmNWMzMmE5NjAwZGZiNTc3NjhjZmIzMg==
5
+ data.tar.gz: !binary |-
6
+ ZTBhNjhjNDI1MjRmMDU4NDAwZmYxZGEyZTRmY2I0ZDhkYTAyMzBlYg==
7
+ SHA512:
8
+ metadata.gz: !binary |-
9
+ MDUzNDk0ZjRmM2U4YzBiZjU2ZDMwNzRiODJmYjdhZTA2YTVhOGZjNzdkOTll
10
+ YTA0ZDMyZTIzMTI0MjFmYTIxMjI3NGNhYTQ5MGFlMjZkMjZmNGE0YmY0Njc1
11
+ MTY4YTQ1YTlkMTc1YjE3YWJhOTBkZDU3OGEzMWExNWEzODRjZmQ=
12
+ data.tar.gz: !binary |-
13
+ NmUwOWE5OGJlMjkyNmFmNzY1MmUzY2IwODhhMjRmN2Q0ODgwMzAxZDYwYjUx
14
+ Y2NmODhjYmVlNWY3ZjNlODRiYzlhNmU4ODUyNzI4YzU3YTVlN2RlOGNlMjk2
15
+ YzVlY2M1MWZmY2RiMjA2MjA2MjQ3NjE5ZjA1ODZjYTgxZGZhN2Y=
@@ -0,0 +1,17 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in rjs-if.gemspec
4
+ gemspec
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2012 Daniel Vandersluis
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,44 @@
1
+ = JavaScript IF/UNLESS blocks support
2
+
3
+ This plugin introduces support for IF/UNLESS blocks to
4
+ Rails' javascript generator.
5
+
6
+ == Usage
7
+
8
+ Lets say you want to produce javascript that will execute
9
+ blind_down visual effect to show some DOM element unless
10
+ it is already visible. To accomplish this you need an IF block:
11
+
12
+
13
+ update_page do |page|
14
+ page << "if( !($('#{element_id}').visible()) ) {"
15
+ page.visual_effect :blind_down, element_id
16
+ page << "}"
17
+ end
18
+
19
+ Instead you can use +if+ method that this plugin provides:
20
+
21
+ update_page do |page|
22
+ page.unless "$('#{element_id}').visible()" do
23
+ page.visual_effect :blind_down, element_id
24
+ end
25
+ end
26
+
27
+ Also, you can make use of javascript element proxy in the expression:
28
+
29
+ update_page do |page|
30
+ page.unless page[element_id].visible do
31
+ page.visual_effect :blind_down, element_id
32
+ end
33
+ end
34
+
35
+ == Download
36
+
37
+ Download it from http://rubyforge.org/projects/js-if-blocks/ or via Rails plug
38
+ in script:
39
+ ./script/plugin install svn://rubyforge.org/var/svn/js-if-blocks/trunk/js-if-blocks
40
+
41
+ == Bugs & Feedback
42
+
43
+ If you encounter any bugs or has some feature proposal, feel free to email it to
44
+ maxim.kulkin@gmail.com.
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/init.rb ADDED
@@ -0,0 +1,14 @@
1
+ require 'generator_if_blocks'
2
+ require 'javascript_element_proxy_extraction'
3
+
4
+ ActiveSupport.on_load(:action_view) do
5
+ ActiveSupport.on_load(:after_initialize) do
6
+ ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods.class_eval do
7
+ include GeneratorIfBlocks
8
+ end
9
+
10
+ ActionView::Helpers::JavaScriptProxy.class_eval do
11
+ include JavaScriptElementProxyExtraction
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,2 @@
1
+ require "rjs/if/version"
2
+ require "rjs/if/railtie"
@@ -0,0 +1,51 @@
1
+ module GeneratorIfBlocks
2
+ # Produces _if_ block, e.g.
3
+ #
4
+ # page.if "$('element_id').visible()" do
5
+ # page['element_id'].hide
6
+ # end
7
+ #
8
+ # will produce
9
+ #
10
+ # if( $('element_id').visible() ) {
11
+ # $("element_id").hide()
12
+ # }
13
+ #
14
+ # You can simplify if expression by using element proxies:
15
+ #
16
+ # page.if page['element_id'].visible do
17
+ # page['element_id'].hide
18
+ # end
19
+ #
20
+ def if(expression)
21
+ self << "if( #{ javascript_for(expression) } ) {"
22
+ yield if block_given?
23
+ self << "}"
24
+ end
25
+
26
+ # Same as +if+ method, but produces _if_not_ block
27
+ def unless(expression)
28
+ self << "if( !( #{javascript_for(expression) } ) ) {"
29
+ yield if block_given?
30
+ self << "}"
31
+ end
32
+
33
+ def elsif(expression)
34
+ self << "else if( #{javascript_for(expression) } ) {"
35
+ yield if block_given?
36
+ self << "}"
37
+ end
38
+
39
+ # Close javascript block and open an 'else' block
40
+ def else
41
+ self << "else {"
42
+ yield if block_given?
43
+ self << "}"
44
+ end
45
+
46
+ protected
47
+
48
+ def javascript_for(o)
49
+ o.respond_to?(:to_script) ? o.to_script : o.to_s
50
+ end
51
+ end
@@ -0,0 +1,10 @@
1
+ module JavaScriptElementProxyExtraction
2
+ def respond_to?(name)
3
+ return true if name.to_sym == :to_script
4
+ super
5
+ end
6
+
7
+ def to_script
8
+ @script ||= @generator.instance_variable_get("@lines").pop.chomp(';')
9
+ end
10
+ end
@@ -0,0 +1,18 @@
1
+ require "rjs/if/generator_if_blocks"
2
+ require "rjs/if/javascript_element_proxy_extraction"
3
+
4
+ module RJS
5
+ module If
6
+ class Railtie < Rails::Railtie
7
+ config.after_initialize do
8
+ ActionView::Helpers::PrototypeHelper::JavaScriptGenerator::GeneratorMethods.class_eval do
9
+ include GeneratorIfBlocks
10
+ end
11
+
12
+ ActionView::Helpers::JavaScriptProxy.class_eval do
13
+ include JavaScriptElementProxyExtraction
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,5 @@
1
+ module RJS
2
+ module If
3
+ VERSION = "0.0.3"
4
+ end
5
+ end
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+
5
+ require 'rjs/if/version'
6
+
7
+ Gem::Specification.new do |gem|
8
+ gem.name = "rjs-if"
9
+ gem.version = RJS::If::VERSION
10
+ gem.authors = ["Daniel Vandersluis"]
11
+ gem.email = ["dvandersluis@selfmgmt.com"]
12
+ gem.description = "Add if/unless blocks to RJS"
13
+ gem.summary = "Add if and unless methods to the page object when working in RJS."
14
+ gem.homepage = "https://github.com/talentnest/rjs-if"
15
+
16
+ gem.files = `git ls-files`.split($/)
17
+ gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
18
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
19
+ gem.require_paths = ["lib"]
20
+
21
+ gem.add_dependency 'activesupport', ['>= 3.0.0']
22
+ gem.add_dependency 'actionpack', ['>= 3.0.0']
23
+ end
metadata ADDED
@@ -0,0 +1,84 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rjs-if
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Vandersluis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-12-05 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ type: :runtime
15
+ prerelease: false
16
+ name: activesupport
17
+ requirement: !ruby/object:Gem::Requirement
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 3.0.0
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
27
+ - !ruby/object:Gem::Dependency
28
+ type: :runtime
29
+ prerelease: false
30
+ name: actionpack
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ! '>='
34
+ - !ruby/object:Gem::Version
35
+ version: 3.0.0
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ! '>='
39
+ - !ruby/object:Gem::Version
40
+ version: 3.0.0
41
+ description: Add if/unless blocks to RJS
42
+ email:
43
+ - dvandersluis@selfmgmt.com
44
+ executables: []
45
+ extensions: []
46
+ extra_rdoc_files: []
47
+ files:
48
+ - .gitignore
49
+ - Gemfile
50
+ - LICENSE.txt
51
+ - README.rdoc
52
+ - Rakefile
53
+ - init.rb
54
+ - lib/rjs-if.rb
55
+ - lib/rjs/if/generator_if_blocks.rb
56
+ - lib/rjs/if/javascript_element_proxy_extraction.rb
57
+ - lib/rjs/if/railtie.rb
58
+ - lib/rjs/if/version.rb
59
+ - rjs-if.gemspec
60
+ homepage: https://github.com/talentnest/rjs-if
61
+ licenses: []
62
+ metadata: {}
63
+ post_install_message:
64
+ rdoc_options: []
65
+ require_paths:
66
+ - lib
67
+ required_ruby_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ! '>='
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ requirements: []
78
+ rubyforge_project:
79
+ rubygems_version: 2.1.5
80
+ signing_key:
81
+ specification_version: 4
82
+ summary: Add if and unless methods to the page object when working in RJS.
83
+ test_files: []
84
+ has_rdoc: