apotomo 1.2.6 → 1.3.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.
- checksums.yaml +4 -4
- data/CHANGES.textile +4 -0
- data/Gemfile +2 -0
- data/README.md +10 -11
- data/lib/apotomo/railtie.rb +4 -8
- data/lib/apotomo/version.rb +1 -1
- data/lib/apotomo/widget.rb +33 -33
- metadata +24 -74
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: f65804220c4a86e32ec48fd0966e1fc89922c598
         | 
| 4 | 
            +
              data.tar.gz: 780bf3c9e9f688c4c2bbd4879dfdfa6edd540d94
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 9dee577216e9fb9a740e464fd9fcebe549d77b9f654004cbb73141924dc00a580f4bc4d6a953085216dfe5087eafbe18e36f1744bd0f2383692b279c0a53af5d
         | 
| 7 | 
            +
              data.tar.gz: e2d28c8832a7640e8a7bec5e50a723bcf1887074c7c7cb8e38364a9817d27ad3827a77e58da9bc22e092d9b70506b6d00c8b232e82a24c8a78cf8bd74b6b86e8
         | 
    
        data/CHANGES.textile
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | @@ -2,7 +2,6 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            **Web Components for Rails.**
         | 
| 4 4 |  | 
| 5 | 
            -
            [](http://travis-ci.org/apotonick/apotomo)
         | 
| 6 5 |  | 
| 7 6 | 
             
            ## Overview
         | 
| 8 7 |  | 
| @@ -10,7 +9,7 @@ Do you need an _interactive user interface_ for your Rails application? A cool R | |
| 10 9 |  | 
| 11 10 | 
             
            Is your controller gettin' fat? And your partial-helper-AJAX pile is getting out of control?
         | 
| 12 11 |  | 
| 13 | 
            -
            Do you want a framework to make the implementation easier? _You want Apotomo._ | 
| 12 | 
            +
            Do you want a framework to make the implementation easier? _You want Apotomo._
         | 
| 14 13 |  | 
| 15 14 | 
             
            **Apotomo** is based on [Cells](http://github.com/apotonick/cells), the popular View Components framework for Rails.
         | 
| 16 15 |  | 
| @@ -23,7 +22,7 @@ Easy as hell. You just need Ruby 1.9.3/2.0.0 and Rails 3/4. | |
| 23 22 | 
             
            Add Apotomo to your `Gemfile`:
         | 
| 24 23 |  | 
| 25 24 | 
             
            ```ruby
         | 
| 26 | 
            -
            gem  | 
| 25 | 
            +
            gem 'apotomo'
         | 
| 27 26 | 
             
            ```
         | 
| 28 27 |  | 
| 29 28 | 
             
            ## Example
         | 
| @@ -60,7 +59,7 @@ You now tell your controller about the new widget. | |
| 60 59 |  | 
| 61 60 | 
             
            ```ruby
         | 
| 62 61 | 
             
            class PostsController < ApplicationController
         | 
| 63 | 
            -
             | 
| 62 | 
            +
             | 
| 64 63 | 
             
              has_widgets do |root|
         | 
| 65 64 | 
             
                root << widget(:comments, :post => @post)
         | 
| 66 65 | 
             
              end
         | 
| @@ -77,7 +76,7 @@ Rendering usually happens in your controller view, `app/views/posts/show.html.ha | |
| 77 76 | 
             
            %p
         | 
| 78 77 | 
             
              = @post.body
         | 
| 79 78 | 
             
            %p
         | 
| 80 | 
            -
              = render_widget :comments
         | 
| 79 | 
            +
              = render_widget :comments, post: @post
         | 
| 81 80 | 
             
            ```
         | 
| 82 81 |  | 
| 83 82 | 
             
            ## Write the widget
         | 
| @@ -87,7 +86,7 @@ A widget is like a cell which is like a mini-controller. | |
| 87 86 | 
             
            ```ruby
         | 
| 88 87 | 
             
            class CommentsWidget < Apotomo::Widget
         | 
| 89 88 | 
             
              responds_to_event :post
         | 
| 90 | 
            -
             | 
| 89 | 
            +
             | 
| 91 90 | 
             
              def display(args)
         | 
| 92 91 | 
             
                @comments = args[:post].comments # the parameter from outside.
         | 
| 93 92 |  | 
| @@ -97,13 +96,13 @@ class CommentsWidget < Apotomo::Widget | |
| 97 96 |  | 
| 98 97 | 
             
            Having `display` as the default state when rendering, this method collects comments to show and renders its view.
         | 
| 99 98 |  | 
| 100 | 
            -
            And look at line 2 - if encountering a `:post` event we invoke `#post`, which is simply another state. How cool is that? | 
| 99 | 
            +
            And look at line 2 - if encountering a `:post` event we invoke `#post`, which is simply another state. How cool is that?
         | 
| 101 100 |  | 
| 102 101 | 
             
            ```ruby
         | 
| 103 102 | 
             
              def post(event)
         | 
| 104 103 | 
             
                @comment = Comment.new :post_id => event[:post_id]
         | 
| 105 104 | 
             
                @comment.update_attributes event[:comment] # a bit like params[].
         | 
| 106 | 
            -
             | 
| 105 | 
            +
             | 
| 107 106 | 
             
                update :state => :display
         | 
| 108 107 | 
             
              end
         | 
| 109 108 | 
             
            end
         | 
| @@ -128,7 +127,7 @@ Take a look at the widget's view `display.html.haml`. | |
| 128 127 | 
             
              %ul
         | 
| 129 128 | 
             
                - for comment in @comments
         | 
| 130 129 | 
             
                  %li= comment.text
         | 
| 131 | 
            -
             | 
| 130 | 
            +
             | 
| 132 131 | 
             
              = form_for :comment, :url => url_for_event(:post), :remote => true do |f|
         | 
| 133 132 | 
             
                = f.text_field :text
         | 
| 134 133 | 
             
                = f.submit
         | 
| @@ -179,11 +178,11 @@ class CommentsWidgetTest < Apotomo::TestCase | |
| 179 178 | 
             
              has_widgets do |root|
         | 
| 180 179 | 
             
                root << widget(:comments, :post => @pervert_post)
         | 
| 181 180 | 
             
              end
         | 
| 182 | 
            -
             | 
| 181 | 
            +
             | 
| 183 182 | 
             
              def test_render
         | 
| 184 183 | 
             
                render_widget :comments
         | 
| 185 184 | 
             
                assert_select "li#me"
         | 
| 186 | 
            -
             | 
| 185 | 
            +
             | 
| 187 186 | 
             
                trigger :post, :comment => {:text => "Sex on the beach"}
         | 
| 188 187 | 
             
                assert_response 'alert("Hey, you wanted to submit a pervert comment!");'
         | 
| 189 188 | 
             
              end
         | 
    
        data/lib/apotomo/railtie.rb
    CHANGED
    
    | @@ -5,20 +5,16 @@ module Apotomo | |
| 5 5 | 
             
                rake_tasks do
         | 
| 6 6 | 
             
                  load "apotomo/apotomo.rake"
         | 
| 7 7 | 
             
                end
         | 
| 8 | 
            -
             | 
| 9 | 
            -
                # As we are a Railtie only, the routes won't be loaded automatically. Beside that, we want our | 
| 8 | 
            +
             | 
| 9 | 
            +
                # As we are a Railtie only, the routes won't be loaded automatically. Beside that, we want our
         | 
| 10 10 | 
             
                # route to be the very first (otherwise #resources might supersede it).
         | 
| 11 11 | 
             
                initializer 'apotomo.prepend_routes', :after => :add_routing_paths do |app|
         | 
| 12 12 | 
             
                  app.routes_reloader.paths.unshift(File.dirname(__FILE__) + "/../../config/routes.rb")
         | 
| 13 13 | 
             
                end
         | 
| 14 | 
            -
             | 
| 14 | 
            +
             | 
| 15 15 | 
             
                # Include a lazy loader via has_widgets.
         | 
| 16 16 | 
             
                initializer 'apotomo.add_has_widgets' do |app|
         | 
| 17 17 | 
             
                  ActionController::Base.extend Apotomo::Rails::ControllerMethodsLoader
         | 
| 18 18 | 
             
                end
         | 
| 19 | 
            -
             | 
| 20 | 
            -
                initializer 'apotomo.setup_view_paths', :after => 'cells.setup_view_paths' do |app|
         | 
| 21 | 
            -
                  Apotomo::Widget.setup_view_paths!
         | 
| 22 | 
            -
                end
         | 
| 23 | 
            -
              end 
         | 
| 19 | 
            +
              end
         | 
| 24 20 | 
             
            end
         | 
    
        data/lib/apotomo/version.rb
    CHANGED
    
    
    
        data/lib/apotomo/widget.rb
    CHANGED
    
    | @@ -30,16 +30,16 @@ module Apotomo | |
| 30 30 | 
             
              #   def display
         | 
| 31 31 | 
             
              #     @cheese = options[:favorites].first
         | 
| 32 32 | 
             
              #
         | 
| 33 | 
            -
              # 2. Request data from forms etc. is available through <tt>event.data</tt> in the triggered states. | 
| 33 | 
            +
              # 2. Request data from forms etc. is available through <tt>event.data</tt> in the triggered states.
         | 
| 34 34 | 
             
              # Use the <tt>#[]</tt> shortcut to access values directly.
         | 
| 35 35 | 
             
              #
         | 
| 36 36 | 
             
              #   def update(evt)
         | 
| 37 37 | 
             
              #     @cheese = Cheese.find evt[:cheese_id]
         | 
| 38 38 | 
             
              class Widget < Cell::Rails
         | 
| 39 | 
            -
                 | 
| 40 | 
            -
             | 
| 39 | 
            +
                self.view_paths = "app/widgets"
         | 
| 40 | 
            +
             | 
| 41 41 | 
             
                include Hooks
         | 
| 42 | 
            -
             | 
| 42 | 
            +
             | 
| 43 43 | 
             
                # Use this for setup code you're calling in every state. Almost like a +before_filter+ except that it's
         | 
| 44 44 | 
             
                # invoked after the initialization in #has_widgets.
         | 
| 45 45 | 
             
                #
         | 
| @@ -51,60 +51,60 @@ module Apotomo | |
| 51 51 | 
             
                #     end
         | 
| 52 52 | 
             
                define_hook :after_initialize
         | 
| 53 53 | 
             
                define_hook :has_widgets
         | 
| 54 | 
            -
             | 
| 54 | 
            +
             | 
| 55 55 | 
             
                attr_writer :visible
         | 
| 56 | 
            -
             | 
| 56 | 
            +
             | 
| 57 57 | 
             
                include TreeNode
         | 
| 58 | 
            -
             | 
| 58 | 
            +
             | 
| 59 59 | 
             
                include Onfire
         | 
| 60 | 
            -
             | 
| 60 | 
            +
             | 
| 61 61 | 
             
                include EventMethods
         | 
| 62 62 | 
             
                include WidgetShortcuts
         | 
| 63 63 | 
             
                include JavascriptMethods
         | 
| 64 | 
            -
             | 
| 64 | 
            +
             | 
| 65 65 | 
             
                helper Apotomo::Rails::ViewHelper
         | 
| 66 66 | 
             
                helper Apotomo::Rails::ActionViewMethods
         | 
| 67 | 
            -
             | 
| 67 | 
            +
             | 
| 68 68 | 
             
                abstract!
         | 
| 69 69 | 
             
                undef :display  # We don't want #display to be listed in #internal_methods.
         | 
| 70 | 
            -
             | 
| 70 | 
            +
             | 
| 71 71 | 
             
                attr_reader :name
         | 
| 72 72 | 
             
                alias_method :widget_id, :name
         | 
| 73 73 |  | 
| 74 74 | 
             
                attr_reader :options
         | 
| 75 | 
            -
             | 
| 75 | 
            +
             | 
| 76 76 | 
             
                after_initialize do
         | 
| 77 77 | 
             
                  run_hook :has_widgets, self
         | 
| 78 78 | 
             
                end
         | 
| 79 | 
            -
             | 
| 80 | 
            -
             | 
| 79 | 
            +
             | 
| 80 | 
            +
             | 
| 81 81 | 
             
                def initialize(parent, id, options={})
         | 
| 82 82 | 
             
                  super(parent)  # TODO: do that as long as cells do need a parent_controller.
         | 
| 83 83 | 
             
                  @options      = options
         | 
| 84 84 | 
             
                  @name         = id
         | 
| 85 85 | 
             
                  @visible      = true
         | 
| 86 | 
            -
             | 
| 86 | 
            +
             | 
| 87 87 | 
             
                  setup_tree_node(parent)
         | 
| 88 | 
            -
             | 
| 88 | 
            +
             | 
| 89 89 | 
             
                  run_hook :after_initialize, self
         | 
| 90 90 | 
             
                end
         | 
| 91 | 
            -
             | 
| 91 | 
            +
             | 
| 92 92 | 
             
                def parent_controller
         | 
| 93 93 | 
             
                  # i hope we'll get rid of any parent_controller dependency, soon.
         | 
| 94 94 | 
             
                  root? ? @parent_controller : root.parent_controller
         | 
| 95 95 | 
             
                end
         | 
| 96 | 
            -
             | 
| 96 | 
            +
             | 
| 97 97 | 
             
                def visible?
         | 
| 98 98 | 
             
                  @visible
         | 
| 99 99 | 
             
                end
         | 
| 100 | 
            -
             | 
| 100 | 
            +
             | 
| 101 101 | 
             
                # Invokes +state+ and hopefully returns the rendered content.
         | 
| 102 102 | 
             
                def invoke(state, *args)
         | 
| 103 | 
            -
                  return render_state(state, *args) if method(state).arity != 0 # TODO: remove check and make trigger states receive the evt default. | 
| 103 | 
            +
                  return render_state(state, *args) if method(state).arity != 0 # TODO: remove check and make trigger states receive the evt default.
         | 
| 104 104 | 
             
                  render_state(state)
         | 
| 105 105 | 
             
                end
         | 
| 106 | 
            -
             | 
| 107 | 
            -
                # Renders and returns a view for the current state. That's why it is usually called at the end of | 
| 106 | 
            +
             | 
| 107 | 
            +
                # Renders and returns a view for the current state. That's why it is usually called at the end of
         | 
| 108 108 | 
             
                # a state method.
         | 
| 109 109 | 
             
                #
         | 
| 110 110 | 
             
                # ==== Options
         | 
| @@ -113,7 +113,7 @@ module Apotomo | |
| 113 113 | 
             
                # Example:
         | 
| 114 114 | 
             
                #  class MouseWidget < Apotomo::Widget
         | 
| 115 115 | 
             
                #    def eat
         | 
| 116 | 
            -
                #      render | 
| 116 | 
            +
                #      render
         | 
| 117 117 | 
             
                #    end
         | 
| 118 118 | 
             
                #
         | 
| 119 119 | 
             
                # render the view <tt>eat.haml</tt>.
         | 
| @@ -124,27 +124,27 @@ module Apotomo | |
| 124 124 | 
             
                def render(*args, &block)
         | 
| 125 125 | 
             
                  super
         | 
| 126 126 | 
             
                end
         | 
| 127 | 
            -
             | 
| 127 | 
            +
             | 
| 128 128 | 
             
                # Returns the widget named +widget_id+ if it's a descendent or self.
         | 
| 129 129 | 
             
                def find_widget(widget_id)
         | 
| 130 130 | 
             
                  find {|node| node.name.to_s == widget_id.to_s}
         | 
| 131 131 | 
             
                end
         | 
| 132 | 
            -
             | 
| 132 | 
            +
             | 
| 133 133 | 
             
                def address_for_event(type, options={})
         | 
| 134 134 | 
             
                  options.reverse_merge!  :source     => name,
         | 
| 135 135 | 
             
                                          :type       => type,
         | 
| 136 | 
            -
                                          :controller => parent_controller.controller_path  # DISCUSS: dependency to parent_controller. | 
| 136 | 
            +
                                          :controller => parent_controller.controller_path  # DISCUSS: dependency to parent_controller.
         | 
| 137 137 | 
             
                end
         | 
| 138 | 
            -
             | 
| 138 | 
            +
             | 
| 139 139 | 
             
                def url_for_event(type, options={})
         | 
| 140 | 
            -
                  apotomo_event_path address_for_event(type, options) | 
| 140 | 
            +
                  apotomo_event_path address_for_event(type, options)
         | 
| 141 141 | 
             
                end
         | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 142 | 
            +
             | 
| 143 | 
            +
             | 
| 144 144 | 
             
                def self.controller_path
         | 
| 145 145 | 
             
                  @controller_path ||= name.sub(/Widget$/, '').underscore unless anonymous?
         | 
| 146 146 | 
             
                end
         | 
| 147 | 
            -
             | 
| 147 | 
            +
             | 
| 148 148 | 
             
                # Renders the +widget+ (instance or id).
         | 
| 149 149 | 
             
                def render_widget(widget_id, state=:display, *args)
         | 
| 150 150 | 
             
                  if widget_id.kind_of?(Widget)
         | 
| @@ -152,9 +152,9 @@ module Apotomo | |
| 152 152 | 
             
                  else
         | 
| 153 153 | 
             
                    widget = find_widget(widget_id) or raise "Couldn't render non-existent widget `#{widget_id}`"
         | 
| 154 154 | 
             
                  end
         | 
| 155 | 
            -
             | 
| 155 | 
            +
             | 
| 156 156 | 
             
                  widget.invoke(state, *args)
         | 
| 157 157 | 
             
                end
         | 
| 158 158 | 
             
              end
         | 
| 159 159 | 
             
            end
         | 
| 160 | 
            -
             | 
| 160 | 
            +
             | 
    
        metadata
    CHANGED
    
    | @@ -1,125 +1,125 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: apotomo
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Nick Sutterer
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014-03 | 
| 11 | 
            +
            date: 2014-06-03 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: cells
         | 
| 15 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 16 16 | 
             
                requirements:
         | 
| 17 | 
            -
                - -  | 
| 17 | 
            +
                - - '>='
         | 
| 18 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 19 19 | 
             
                    version: 3.6.7
         | 
| 20 20 | 
             
              type: :runtime
         | 
| 21 21 | 
             
              prerelease: false
         | 
| 22 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 23 23 | 
             
                requirements:
         | 
| 24 | 
            -
                - -  | 
| 24 | 
            +
                - - '>='
         | 
| 25 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 26 26 | 
             
                    version: 3.6.7
         | 
| 27 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 28 28 | 
             
              name: onfire
         | 
| 29 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 30 30 | 
             
                requirements:
         | 
| 31 | 
            -
                - -  | 
| 31 | 
            +
                - - ~>
         | 
| 32 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 33 33 | 
             
                    version: 0.2.0
         | 
| 34 34 | 
             
              type: :runtime
         | 
| 35 35 | 
             
              prerelease: false
         | 
| 36 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 37 37 | 
             
                requirements:
         | 
| 38 | 
            -
                - -  | 
| 38 | 
            +
                - - ~>
         | 
| 39 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 40 40 | 
             
                    version: 0.2.0
         | 
| 41 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 42 42 | 
             
              name: hooks
         | 
| 43 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 44 44 | 
             
                requirements:
         | 
| 45 | 
            -
                - -  | 
| 45 | 
            +
                - - ~>
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: 0.4.0
         | 
| 48 48 | 
             
              type: :runtime
         | 
| 49 49 | 
             
              prerelease: false
         | 
| 50 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ~>
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 54 | 
             
                    version: 0.4.0
         | 
| 55 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 56 56 | 
             
              name: rake
         | 
| 57 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 59 | 
            +
                - - '>='
         | 
| 60 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 61 | 
             
                    version: '0'
         | 
| 62 62 | 
             
              type: :development
         | 
| 63 63 | 
             
              prerelease: false
         | 
| 64 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 65 65 | 
             
                requirements:
         | 
| 66 | 
            -
                - -  | 
| 66 | 
            +
                - - '>='
         | 
| 67 67 | 
             
                  - !ruby/object:Gem::Version
         | 
| 68 68 | 
             
                    version: '0'
         | 
| 69 69 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 70 70 | 
             
              name: slim
         | 
| 71 71 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 72 72 | 
             
                requirements:
         | 
| 73 | 
            -
                - -  | 
| 73 | 
            +
                - - '>='
         | 
| 74 74 | 
             
                  - !ruby/object:Gem::Version
         | 
| 75 75 | 
             
                    version: '0'
         | 
| 76 76 | 
             
              type: :development
         | 
| 77 77 | 
             
              prerelease: false
         | 
| 78 78 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 79 | 
             
                requirements:
         | 
| 80 | 
            -
                - -  | 
| 80 | 
            +
                - - '>='
         | 
| 81 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 82 82 | 
             
                    version: '0'
         | 
| 83 83 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 84 84 | 
             
              name: haml
         | 
| 85 85 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 86 86 | 
             
                requirements:
         | 
| 87 | 
            -
                - -  | 
| 87 | 
            +
                - - '>='
         | 
| 88 88 | 
             
                  - !ruby/object:Gem::Version
         | 
| 89 89 | 
             
                    version: '0'
         | 
| 90 90 | 
             
              type: :development
         | 
| 91 91 | 
             
              prerelease: false
         | 
| 92 92 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 93 93 | 
             
                requirements:
         | 
| 94 | 
            -
                - -  | 
| 94 | 
            +
                - - '>='
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 96 | 
             
                    version: '0'
         | 
| 97 97 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 98 98 | 
             
              name: tzinfo
         | 
| 99 99 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 100 | 
             
                requirements:
         | 
| 101 | 
            -
                - -  | 
| 101 | 
            +
                - - '>='
         | 
| 102 102 | 
             
                  - !ruby/object:Gem::Version
         | 
| 103 103 | 
             
                    version: '0'
         | 
| 104 104 | 
             
              type: :development
         | 
| 105 105 | 
             
              prerelease: false
         | 
| 106 106 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 107 | 
             
                requirements:
         | 
| 108 | 
            -
                - -  | 
| 108 | 
            +
                - - '>='
         | 
| 109 109 | 
             
                  - !ruby/object:Gem::Version
         | 
| 110 110 | 
             
                    version: '0'
         | 
| 111 111 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 112 112 | 
             
              name: minitest
         | 
| 113 113 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 114 114 | 
             
                requirements:
         | 
| 115 | 
            -
                - -  | 
| 115 | 
            +
                - - ~>
         | 
| 116 116 | 
             
                  - !ruby/object:Gem::Version
         | 
| 117 117 | 
             
                    version: 4.7.5
         | 
| 118 118 | 
             
              type: :development
         | 
| 119 119 | 
             
              prerelease: false
         | 
| 120 120 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 121 121 | 
             
                requirements:
         | 
| 122 | 
            -
                - -  | 
| 122 | 
            +
                - - ~>
         | 
| 123 123 | 
             
                  - !ruby/object:Gem::Version
         | 
| 124 124 | 
             
                    version: 4.7.5
         | 
| 125 125 | 
             
            description: Web component framework for Rails providing widgets that trigger events
         | 
| @@ -130,8 +130,8 @@ executables: [] | |
| 130 130 | 
             
            extensions: []
         | 
| 131 131 | 
             
            extra_rdoc_files: []
         | 
| 132 132 | 
             
            files:
         | 
| 133 | 
            -
            -  | 
| 134 | 
            -
            -  | 
| 133 | 
            +
            - .gitignore
         | 
| 134 | 
            +
            - .travis.yml
         | 
| 135 135 | 
             
            - CHANGES.textile
         | 
| 136 136 | 
             
            - Gemfile
         | 
| 137 137 | 
             
            - README.md
         | 
| @@ -231,68 +231,18 @@ require_paths: | |
| 231 231 | 
             
            - lib
         | 
| 232 232 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 233 233 | 
             
              requirements:
         | 
| 234 | 
            -
              - -  | 
| 234 | 
            +
              - - '>='
         | 
| 235 235 | 
             
                - !ruby/object:Gem::Version
         | 
| 236 236 | 
             
                  version: '0'
         | 
| 237 237 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 238 238 | 
             
              requirements:
         | 
| 239 | 
            -
              - -  | 
| 239 | 
            +
              - - '>='
         | 
| 240 240 | 
             
                - !ruby/object:Gem::Version
         | 
| 241 241 | 
             
                  version: '0'
         | 
| 242 242 | 
             
            requirements: []
         | 
| 243 243 | 
             
            rubyforge_project: 
         | 
| 244 | 
            -
            rubygems_version: 2.2. | 
| 244 | 
            +
            rubygems_version: 2.2.2
         | 
| 245 245 | 
             
            signing_key: 
         | 
| 246 246 | 
             
            specification_version: 4
         | 
| 247 247 | 
             
            summary: Web components for Rails.
         | 
| 248 | 
            -
            test_files:
         | 
| 249 | 
            -
            - test/apotomo_test.rb
         | 
| 250 | 
            -
            - test/dummy/Rakefile
         | 
| 251 | 
            -
            - test/dummy/app/controllers/application_controller.rb
         | 
| 252 | 
            -
            - test/dummy/app/helpers/application_helper.rb
         | 
| 253 | 
            -
            - test/dummy/app/views/layouts/application.html.erb
         | 
| 254 | 
            -
            - test/dummy/config.ru
         | 
| 255 | 
            -
            - test/dummy/config/application.rb
         | 
| 256 | 
            -
            - test/dummy/config/boot.rb
         | 
| 257 | 
            -
            - test/dummy/config/database.yml
         | 
| 258 | 
            -
            - test/dummy/config/environment.rb
         | 
| 259 | 
            -
            - test/dummy/config/environments/development.rb
         | 
| 260 | 
            -
            - test/dummy/config/environments/production.rb
         | 
| 261 | 
            -
            - test/dummy/config/environments/test.rb
         | 
| 262 | 
            -
            - test/dummy/config/initializers/backtrace_silencers.rb
         | 
| 263 | 
            -
            - test/dummy/config/initializers/inflections.rb
         | 
| 264 | 
            -
            - test/dummy/config/initializers/mime_types.rb
         | 
| 265 | 
            -
            - test/dummy/config/initializers/secret_token.rb
         | 
| 266 | 
            -
            - test/dummy/config/initializers/session_store.rb
         | 
| 267 | 
            -
            - test/dummy/config/locales/en.yml
         | 
| 268 | 
            -
            - test/dummy/config/routes.rb
         | 
| 269 | 
            -
            - test/dummy/db/test.sqlite3
         | 
| 270 | 
            -
            - test/dummy/public/404.html
         | 
| 271 | 
            -
            - test/dummy/public/422.html
         | 
| 272 | 
            -
            - test/dummy/public/500.html
         | 
| 273 | 
            -
            - test/dummy/public/favicon.ico
         | 
| 274 | 
            -
            - test/dummy/public/stylesheets/.gitkeep
         | 
| 275 | 
            -
            - test/event_handler_test.rb
         | 
| 276 | 
            -
            - test/event_methods_test.rb
         | 
| 277 | 
            -
            - test/event_test.rb
         | 
| 278 | 
            -
            - test/invoke_event_handler_test.rb
         | 
| 279 | 
            -
            - test/javascript_generator_test.rb
         | 
| 280 | 
            -
            - test/rails/caching_test.rb
         | 
| 281 | 
            -
            - test/rails/controller_methods_test.rb
         | 
| 282 | 
            -
            - test/rails/rails_integration_test.rb
         | 
| 283 | 
            -
            - test/rails/view_helper_test.rb
         | 
| 284 | 
            -
            - test/rails/widget_generator_test.rb
         | 
| 285 | 
            -
            - test/render_test.rb
         | 
| 286 | 
            -
            - test/request_processor_test.rb
         | 
| 287 | 
            -
            - test/test_case_methods.rb
         | 
| 288 | 
            -
            - test/test_case_test.rb
         | 
| 289 | 
            -
            - test/test_helper.rb
         | 
| 290 | 
            -
            - test/tree_node_test.rb
         | 
| 291 | 
            -
            - test/widget_shortcuts_test.rb
         | 
| 292 | 
            -
            - test/widget_test.rb
         | 
| 293 | 
            -
            - test/widgets/mouse/eat.erb
         | 
| 294 | 
            -
            - test/widgets/mouse/eating.html.erb
         | 
| 295 | 
            -
            - test/widgets/mouse/educate.html.erb
         | 
| 296 | 
            -
            - test/widgets/mouse/feed.html.erb
         | 
| 297 | 
            -
            - test/widgets/mouse/make_me_squeak.html.erb
         | 
| 298 | 
            -
            - test/widgets/mouse/snuggle.html.erb
         | 
| 248 | 
            +
            test_files: []
         |