erector-rails4 0.0.2 → 0.0.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Gemfile.lock +1 -1
- data/lib/erector/cache.rb +1 -13
- data/lib/erector/inline.rb +1 -12
- data/lib/erector/rails.rb +9 -79
- data/lib/erector/version.rb +1 -3
- data/spec/dummy/app/helpers/application_helper.rb +6 -1
- data/spec/dummy/spec/rails_helpers_spec.rb +34 -16
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: cf70db8bc4222c447f5b7d613fd029da5936df19
         | 
| 4 | 
            +
              data.tar.gz: b584d63e1e6a78cb7ea1da565859e210a42735c3
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 09e3d1a72dda9f47c330b52b929c3ba51b95b011929cd72a1b5e6eb2f84d36028842c77da94e48040346e8204e73752f9f273cca7ce137b1d3bd1ce58efb6722
         | 
| 7 | 
            +
              data.tar.gz: 611d90b3a8949e4fca8ea50d887de30aae31bcb54d505aaab870e6a22b159624c31292854249ebb554cbe2349406c10b8881063ce2ff2f64f1e17cf9ef2992b3
         | 
    
        data/.ruby-version
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            2.0.0
         | 
| 1 | 
            +
            2.0.0-p353
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/lib/erector/cache.rb
    CHANGED
    
    | @@ -18,19 +18,7 @@ module Erector | |
| 18 18 | 
             
                end
         | 
| 19 19 |  | 
| 20 20 | 
             
                def transform_key(args)
         | 
| 21 | 
            -
                   | 
| 22 | 
            -
                    if x.is_a?(Hash)
         | 
| 23 | 
            -
                      transformed = {}
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                      x.each do |k, v|
         | 
| 26 | 
            -
                        transformed[k] = v.respond_to?(:cache_key) ? v.cache_key : v
         | 
| 27 | 
            -
                      end
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                      transformed
         | 
| 30 | 
            -
                    else
         | 
| 31 | 
            -
                      x
         | 
| 32 | 
            -
                    end
         | 
| 33 | 
            -
                  }
         | 
| 21 | 
            +
                  ActiveSupport::Cache.expand_cache_key(args.reject { |x| x.nil? }, 'erector')
         | 
| 34 22 | 
             
                end
         | 
| 35 23 |  | 
| 36 24 | 
             
              end
         | 
    
        data/lib/erector/inline.rb
    CHANGED
    
    | @@ -2,7 +2,7 @@ module Erector | |
| 2 2 | 
             
              def self.inline(*args, &block)
         | 
| 3 3 | 
             
                InlineWidget.new(*args, &block)
         | 
| 4 4 | 
             
              end
         | 
| 5 | 
            -
             | 
| 5 | 
            +
             | 
| 6 6 | 
             
              module Inline
         | 
| 7 7 | 
             
                # Executes the widget's block (the one that was passed in the
         | 
| 8 8 | 
             
                # constructor). Since "self" is pointing to the new widget, the block does
         | 
| @@ -17,17 +17,6 @@ module Erector | |
| 17 17 | 
             
                  # note that instance_eval seems to pass in self as a parameter to the block
         | 
| 18 18 | 
             
                  instance_eval(&block) if block
         | 
| 19 19 | 
             
                end
         | 
| 20 | 
            -
                
         | 
| 21 | 
            -
                private
         | 
| 22 | 
            -
                # This is part of the sub-widget/parent feature (see #widget method).
         | 
| 23 | 
            -
                def method_missing(name, *args, &block)
         | 
| 24 | 
            -
                  if parent && parent.respond_to?(name)
         | 
| 25 | 
            -
                    block ||= lambda {} # captures self HERE
         | 
| 26 | 
            -
                    parent.send(name, *args, &block)
         | 
| 27 | 
            -
                  else
         | 
| 28 | 
            -
                    super
         | 
| 29 | 
            -
                  end
         | 
| 30 | 
            -
                end
         | 
| 31 20 | 
             
              end
         | 
| 32 21 |  | 
| 33 22 | 
             
              class InlineWidget < Widget
         | 
    
        data/lib/erector/rails.rb
    CHANGED
    
    | @@ -43,16 +43,6 @@ module Erector | |
| 43 43 | 
             
                    end
         | 
| 44 44 | 
             
                  end
         | 
| 45 45 |  | 
| 46 | 
            -
                  # Wrappers for rails helpers that produce markup. Erector needs to
         | 
| 47 | 
            -
                  # manually emit their result.
         | 
| 48 | 
            -
                  def def_simple_rails_helper(method_name)
         | 
| 49 | 
            -
                    module_eval <<-METHOD_DEF, __FILE__, __LINE__+1
         | 
| 50 | 
            -
                      def #{method_name}(*args, &block)
         | 
| 51 | 
            -
                        text helpers.#{method_name}(*args, &block)
         | 
| 52 | 
            -
                      end
         | 
| 53 | 
            -
                    METHOD_DEF
         | 
| 54 | 
            -
                  end
         | 
| 55 | 
            -
             | 
| 56 46 | 
             
                  def def_rails_form_helper(method_name, explicit_builder = nil)
         | 
| 57 47 | 
             
                    module_eval <<-METHOD_DEF, __FILE__, __LINE__+1
         | 
| 58 48 | 
             
                      def #{method_name}(*args, &block)
         | 
| @@ -130,11 +120,17 @@ module Erector | |
| 130 120 | 
             
                  end
         | 
| 131 121 | 
             
                end
         | 
| 132 122 |  | 
| 133 | 
            -
                # Delegate to  | 
| 134 | 
            -
                #  | 
| 123 | 
            +
                # Delegate to both Rails and custom helpers via method_missing, 
         | 
| 124 | 
            +
                # and output return values that are html_safe
         | 
| 135 125 | 
             
                def method_missing(name, *args, &block)
         | 
| 136 126 | 
             
                  if helpers.respond_to?(name)
         | 
| 137 | 
            -
                    helpers.send(name, *args, &block)
         | 
| 127 | 
            +
                    return_value = helpers.send(name, *args, &block)
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                    if return_value.try(:html_safe?)
         | 
| 130 | 
            +
                      text return_value
         | 
| 131 | 
            +
                    else
         | 
| 132 | 
            +
                      return_value
         | 
| 133 | 
            +
                    end
         | 
| 138 134 | 
             
                  else
         | 
| 139 135 | 
             
                    super
         | 
| 140 136 | 
             
                  end
         | 
| @@ -146,72 +142,6 @@ module Erector | |
| 146 142 | 
             
                  super || helpers.respond_to?(name)
         | 
| 147 143 | 
             
                end
         | 
| 148 144 |  | 
| 149 | 
            -
                [
         | 
| 150 | 
            -
                  # UrlHelper
         | 
| 151 | 
            -
                  :link_to,
         | 
| 152 | 
            -
                  :button_to,
         | 
| 153 | 
            -
                  :link_to_unless_current,
         | 
| 154 | 
            -
                  :link_to_unless,
         | 
| 155 | 
            -
                  :link_to_if,
         | 
| 156 | 
            -
                  :mail_to,
         | 
| 157 | 
            -
             | 
| 158 | 
            -
                  # FormTagHelper
         | 
| 159 | 
            -
                  :form_tag,
         | 
| 160 | 
            -
                  :select_tag,
         | 
| 161 | 
            -
                  :text_field_tag,
         | 
| 162 | 
            -
                  :label_tag,
         | 
| 163 | 
            -
                  :hidden_field_tag,
         | 
| 164 | 
            -
                  :file_field_tag,
         | 
| 165 | 
            -
                  :password_field_tag,
         | 
| 166 | 
            -
                  :text_area_tag,
         | 
| 167 | 
            -
                  :check_box_tag,
         | 
| 168 | 
            -
                  :radio_button_tag,
         | 
| 169 | 
            -
                  :submit_tag,
         | 
| 170 | 
            -
                  :image_submit_tag,
         | 
| 171 | 
            -
                  :field_set_tag,
         | 
| 172 | 
            -
             | 
| 173 | 
            -
                  # FormHelper
         | 
| 174 | 
            -
                  :form_for,
         | 
| 175 | 
            -
                  :text_field,
         | 
| 176 | 
            -
                  :password_field,
         | 
| 177 | 
            -
                  :hidden_field,
         | 
| 178 | 
            -
                  :file_field,
         | 
| 179 | 
            -
                  :text_area,
         | 
| 180 | 
            -
                  :check_box,
         | 
| 181 | 
            -
                  :radio_button,
         | 
| 182 | 
            -
             | 
| 183 | 
            -
                  # AssetTagHelper
         | 
| 184 | 
            -
                  :auto_discovery_link_tag,
         | 
| 185 | 
            -
                  :javascript_include_tag,
         | 
| 186 | 
            -
                  :stylesheet_link_tag,
         | 
| 187 | 
            -
                  :favicon_link_tag,
         | 
| 188 | 
            -
                  :image_tag,
         | 
| 189 | 
            -
             | 
| 190 | 
            -
                  # ScriptaculousHelper
         | 
| 191 | 
            -
                  :sortable_element,
         | 
| 192 | 
            -
                  :sortable_element_js,
         | 
| 193 | 
            -
                  :text_field_with_auto_complete,
         | 
| 194 | 
            -
                  :draggable_element,
         | 
| 195 | 
            -
                  :drop_receiving_element,
         | 
| 196 | 
            -
             | 
| 197 | 
            -
                  # PrototypeHelper
         | 
| 198 | 
            -
                  :link_to_remote,
         | 
| 199 | 
            -
                  :button_to_remote,
         | 
| 200 | 
            -
                  :periodically_call_remote,
         | 
| 201 | 
            -
                  :form_remote_tag,
         | 
| 202 | 
            -
                  :submit_to_remote,
         | 
| 203 | 
            -
                  :update_page_tag,
         | 
| 204 | 
            -
             | 
| 205 | 
            -
                  # JavaScriptHelper
         | 
| 206 | 
            -
                  :javascript_tag,
         | 
| 207 | 
            -
             | 
| 208 | 
            -
                  # CsrfHelper
         | 
| 209 | 
            -
                  :csrf_meta_tag,
         | 
| 210 | 
            -
                  :csrf_meta_tags
         | 
| 211 | 
            -
                ].each do |method_name|
         | 
| 212 | 
            -
                  def_simple_rails_helper(method_name)
         | 
| 213 | 
            -
                end
         | 
| 214 | 
            -
             | 
| 215 145 | 
             
                [:form_for, :fields_for].each do |method_name|
         | 
| 216 146 | 
             
                  def_rails_form_helper(method_name)
         | 
| 217 147 | 
             
                end
         | 
    
        data/lib/erector/version.rb
    CHANGED
    
    
| @@ -18,14 +18,46 @@ describe Erector::Rails do | |
| 18 18 | 
             
                Erector::Rails.render(Erector.inline(&block), @controller.view_context)
         | 
| 19 19 | 
             
              end
         | 
| 20 20 |  | 
| 21 | 
            -
              describe "a non-output helper" do
         | 
| 21 | 
            +
              describe "a user-defined non-output helper" do
         | 
| 22 22 | 
             
                it "does not render to the output buffer" do
         | 
| 23 23 | 
             
                  test_render do
         | 
| 24 | 
            -
                    if  | 
| 24 | 
            +
                    if user_role_unsafe == 'admin'
         | 
| 25 25 | 
             
                      text 'foo'
         | 
| 26 26 | 
             
                    end
         | 
| 27 27 | 
             
                  end.should == %{foo}
         | 
| 28 28 | 
             
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                it "renders with the text method" do
         | 
| 31 | 
            +
                  test_render do
         | 
| 32 | 
            +
                    text user_role_unsafe
         | 
| 33 | 
            +
                  end.should == %{admin}
         | 
| 34 | 
            +
                end
         | 
| 35 | 
            +
             | 
| 36 | 
            +
                it "can be combined with a built-in method" do
         | 
| 37 | 
            +
                  test_render do
         | 
| 38 | 
            +
                    link_to user_role_unsafe, user_role_unsafe
         | 
| 39 | 
            +
                  end.should == %{<a href="admin">admin</a>}
         | 
| 40 | 
            +
                end
         | 
| 41 | 
            +
              end
         | 
| 42 | 
            +
             | 
| 43 | 
            +
              describe "a helper intended to output" do
         | 
| 44 | 
            +
                it "renders when called" do
         | 
| 45 | 
            +
                  test_render do
         | 
| 46 | 
            +
                    user_role_safe
         | 
| 47 | 
            +
                  end.should == %{admin}
         | 
| 48 | 
            +
                end
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                it "cannot be combined directly with a built-in method" do
         | 
| 51 | 
            +
                  test_render do
         | 
| 52 | 
            +
                    image_tag user_role_safe
         | 
| 53 | 
            +
                  end.should == %{admin<img src="" />}
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                it "can be combined with a built-in method by using capture" do
         | 
| 57 | 
            +
                  test_render do
         | 
| 58 | 
            +
                    image_tag capture {user_role_safe}
         | 
| 59 | 
            +
                  end.should == %{<img alt="Admin" src="/images/admin" />}
         | 
| 60 | 
            +
                end
         | 
| 29 61 | 
             
              end
         | 
| 30 62 |  | 
| 31 63 | 
             
              describe "#link_to" do
         | 
| @@ -168,20 +200,6 @@ describe Erector::Rails do | |
| 168 200 | 
             
                end
         | 
| 169 201 | 
             
              end
         | 
| 170 202 |  | 
| 171 | 
            -
              if defined?(ActionView::Helpers::ScriptaculousHelper)
         | 
| 172 | 
            -
                [:sortable_element,
         | 
| 173 | 
            -
                 :draggable_element,
         | 
| 174 | 
            -
                 :drop_receiving_element].each do |helper|
         | 
| 175 | 
            -
                  describe "##{helper}" do
         | 
| 176 | 
            -
                    it "renders helper js" do
         | 
| 177 | 
            -
                      test_render do
         | 
| 178 | 
            -
                        send(helper, "rails", :url => "/foo")
         | 
| 179 | 
            -
                      end.should =~ %r{<script type="text/javascript">.*</script>}m
         | 
| 180 | 
            -
                    end
         | 
| 181 | 
            -
                  end
         | 
| 182 | 
            -
                end
         | 
| 183 | 
            -
              end
         | 
| 184 | 
            -
             | 
| 185 203 | 
             
              describe "#render" do
         | 
| 186 204 | 
             
                it "renders text" do
         | 
| 187 205 | 
             
                  test_render do
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: erector-rails4
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.3
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Alex Chaffee
         | 
| @@ -13,7 +13,7 @@ authors: | |
| 13 13 | 
             
            autorequire: 
         | 
| 14 14 | 
             
            bindir: bin
         | 
| 15 15 | 
             
            cert_chain: []
         | 
| 16 | 
            -
            date: 2013-12- | 
| 16 | 
            +
            date: 2013-12-31 00:00:00.000000000 Z
         | 
| 17 17 | 
             
            dependencies:
         | 
| 18 18 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 19 19 | 
             
              name: rails
         |