rbjs 0.10.2 → 0.10.3
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/lib/rbjs.rb +12 -7
- data/lib/rbjs/version.rb +1 -1
- data/spec/rbjs_spec.rb +20 -0
- metadata +4 -4
    
        data/lib/rbjs.rb
    CHANGED
    
    | @@ -36,7 +36,7 @@ module Rbjs | |
| 36 36 |  | 
| 37 37 | 
             
                def evaluate function_parameters = nil
         | 
| 38 38 | 
             
                  instance_exec *function_parameters, &@_block
         | 
| 39 | 
            -
                  @_called_expressions.map(&: | 
| 39 | 
            +
                  @_called_expressions.map(&:last_childs).flatten.reject(&:is_argument).map(&:to_s).join(";\n")
         | 
| 40 40 | 
             
                end
         | 
| 41 41 |  | 
| 42 42 | 
             
                def method_missing name, *args, &block
         | 
| @@ -57,10 +57,11 @@ module Rbjs | |
| 57 57 |  | 
| 58 58 | 
             
              class Expression
         | 
| 59 59 | 
             
                attr_accessor :parent_expression
         | 
| 60 | 
            -
                attr_accessor : | 
| 60 | 
            +
                attr_accessor :child_expressions
         | 
| 61 61 | 
             
                attr_accessor :is_argument
         | 
| 62 62 |  | 
| 63 63 | 
             
                def initialize name, view_context = nil, *args, &block
         | 
| 64 | 
            +
                  @child_expressions = []
         | 
| 64 65 | 
             
                  @name = name.to_s.gsub '!', '()'
         | 
| 65 66 | 
             
                  @_view_context = view_context
         | 
| 66 67 | 
             
                  args << block if block_given?
         | 
| @@ -70,7 +71,7 @@ module Rbjs | |
| 70 71 | 
             
                def method_missing name, *args, &block
         | 
| 71 72 | 
             
                  expression = Expression.new name, @_view_context, *args, &block
         | 
| 72 73 | 
             
                  expression.parent_expression = self
         | 
| 73 | 
            -
                   | 
| 74 | 
            +
                  @child_expressions << expression
         | 
| 74 75 | 
             
                  expression
         | 
| 75 76 | 
             
                end
         | 
| 76 77 |  | 
| @@ -89,17 +90,21 @@ module Rbjs | |
| 89 90 | 
             
                    @name + argument_list
         | 
| 90 91 | 
             
                  end        
         | 
| 91 92 | 
             
                end
         | 
| 93 | 
            +
             | 
| 94 | 
            +
                def to_ary
         | 
| 95 | 
            +
                  nil
         | 
| 96 | 
            +
                end
         | 
| 92 97 |  | 
| 93 98 | 
             
                def argument_list
         | 
| 94 99 | 
             
                  return '' if @arguments.empty?
         | 
| 95 100 | 
             
                  '(' + @arguments.join(', ') + ')'
         | 
| 96 101 | 
             
                end
         | 
| 97 102 |  | 
| 98 | 
            -
                def  | 
| 99 | 
            -
                  if @ | 
| 100 | 
            -
                    @ | 
| 103 | 
            +
                def last_childs
         | 
| 104 | 
            +
                  if @child_expressions.length > 0
         | 
| 105 | 
            +
                    @child_expressions.map(&:last_childs).flatten
         | 
| 101 106 | 
             
                  else
         | 
| 102 | 
            -
                    self
         | 
| 107 | 
            +
                    [self]
         | 
| 103 108 | 
             
                  end
         | 
| 104 109 | 
             
                end
         | 
| 105 110 |  | 
    
        data/lib/rbjs/version.rb
    CHANGED
    
    
    
        data/spec/rbjs_spec.rb
    CHANGED
    
    | @@ -133,4 +133,24 @@ describe Rbjs::Root, '#evaluate' do | |
| 133 133 | 
             
                js.strip.should == "docs.map(function(doc) {\nw.match(/^_/);\nemit(doc)})"
         | 
| 134 134 | 
             
              end
         | 
| 135 135 |  | 
| 136 | 
            +
              it "should render multiple calls to locally assigned expressions" do
         | 
| 137 | 
            +
                js = build do
         | 
| 138 | 
            +
                  selector = jQuery('#content').find('.note')
         | 
| 139 | 
            +
                  selector.hide!
         | 
| 140 | 
            +
                  selector.html 'some text'
         | 
| 141 | 
            +
                end
         | 
| 142 | 
            +
                js.strip.should == "jQuery(\"#content\").find(\".note\").hide();\njQuery(\"#content\").find(\".note\").html(\"some text\")"
         | 
| 143 | 
            +
              end
         | 
| 144 | 
            +
             | 
| 145 | 
            +
              it "should support multiple nested functions" do
         | 
| 146 | 
            +
                js = build do
         | 
| 147 | 
            +
                  jQuery('.note').fadeIn do
         | 
| 148 | 
            +
                    delay 1000 do
         | 
| 149 | 
            +
                      jQuery('.note').hide!
         | 
| 150 | 
            +
                    end
         | 
| 151 | 
            +
                  end
         | 
| 152 | 
            +
                end
         | 
| 153 | 
            +
                js.strip.should == ''
         | 
| 154 | 
            +
              end
         | 
| 155 | 
            +
             | 
| 136 156 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rbjs
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.10. | 
| 4 | 
            +
              version: 0.10.3
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,11 +9,11 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2012- | 
| 12 | 
            +
            date: 2012-03-22 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: json
         | 
| 16 | 
            -
              requirement: & | 
| 16 | 
            +
              requirement: &70186833414720 !ruby/object:Gem::Requirement
         | 
| 17 17 | 
             
                none: false
         | 
| 18 18 | 
             
                requirements:
         | 
| 19 19 | 
             
                - - ! '>='
         | 
| @@ -21,7 +21,7 @@ dependencies: | |
| 21 21 | 
             
                    version: '0'
         | 
| 22 22 | 
             
              type: :runtime
         | 
| 23 23 | 
             
              prerelease: false
         | 
| 24 | 
            -
              version_requirements: * | 
| 24 | 
            +
              version_requirements: *70186833414720
         | 
| 25 25 | 
             
            description: Remote Javascript Builder for Ruby on Rails
         | 
| 26 26 | 
             
            email:
         | 
| 27 27 | 
             
            - buhrmi@gmail.com
         |