happy 0.1.0.pre13 → 0.1.0.pre14
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/README.md +48 -53
 - data/lib/happy/context.rb +2 -6
 - data/lib/happy/controller.rb +6 -17
 - data/lib/happy/version.rb +1 -1
 - data/lib/happy.rb +20 -0
 - data/spec/controller/actions_spec.rb +3 -1
 - data/spec/controller/routing_spec.rb +13 -15
 - data/spec/controller_spec.rb +7 -3
 - data/spec/happy_spec.rb +2 -2
 - data/spec/spec_helper.rb +1 -5
 - metadata +22 -22
 
    
        data/README.md
    CHANGED
    
    | 
         @@ -16,13 +16,11 @@ Furthermore, the way Happy handles incoming requests is vastly different from ho 
     | 
|
| 
       16 
16 
     | 
    
         
             
            # config.ru
         
     | 
| 
       17 
17 
     | 
    
         
             
            require 'happy'
         
     | 
| 
       18 
18 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
               
     | 
| 
       21 
     | 
    
         
            -
                'Hello world'
         
     | 
| 
       22 
     | 
    
         
            -
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
            Happy.route do
         
     | 
| 
      
 20 
     | 
    
         
            +
              'Hello world'
         
     | 
| 
       23 
21 
     | 
    
         
             
            end
         
     | 
| 
       24 
22 
     | 
    
         | 
| 
       25 
     | 
    
         
            -
            run  
     | 
| 
      
 23 
     | 
    
         
            +
            run Happy
         
     | 
| 
       26 
24 
     | 
    
         
             
            ```
         
     | 
| 
       27 
25 
     | 
    
         | 
| 
       28 
26 
     | 
    
         
             
            How about something a little bit closer to reality?
         
     | 
| 
         @@ -31,62 +29,59 @@ How about something a little bit closer to reality? 
     | 
|
| 
       31 
29 
     | 
    
         
             
            # config.ru
         
     | 
| 
       32 
30 
     | 
    
         
             
            require 'happy'
         
     | 
| 
       33 
31 
     | 
    
         | 
| 
       34 
     | 
    
         
            -
             
     | 
| 
       35 
     | 
    
         
            -
               
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
                layout 'application.erb'
         
     | 
| 
       38 
     | 
    
         
            -
             
     | 
| 
       39 
     | 
    
         
            -
                # Happily deal with sub-paths!
         
     | 
| 
       40 
     | 
    
         
            -
                path 'hello' do
         
     | 
| 
       41 
     | 
    
         
            -
                  # Let's use a different layout here.
         
     | 
| 
       42 
     | 
    
         
            -
                  layout 'hello_layout.erb'
         
     | 
| 
      
 32 
     | 
    
         
            +
            Happy.route do
         
     | 
| 
      
 33 
     | 
    
         
            +
              # Set a default layout for all responses!
         
     | 
| 
      
 34 
     | 
    
         
            +
              layout 'application.erb'
         
     | 
| 
       43 
35 
     | 
    
         | 
| 
       44 
     | 
    
         
            -
             
     | 
| 
       45 
     | 
    
         
            -
             
     | 
| 
       46 
     | 
    
         
            -
             
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
     | 
    
         
            -
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
              # Happily deal with sub-paths!
         
     | 
| 
      
 37 
     | 
    
         
            +
              path 'hello' do
         
     | 
| 
      
 38 
     | 
    
         
            +
                # Let's use a different layout here.
         
     | 
| 
      
 39 
     | 
    
         
            +
                layout 'hello_layout.erb'
         
     | 
| 
       49 
40 
     | 
    
         | 
| 
       50 
     | 
    
         
            -
             
     | 
| 
      
 41 
     | 
    
         
            +
                # Happily deal with parameters contained in paths!
         
     | 
| 
      
 42 
     | 
    
         
            +
                path :name do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  # Just return a string to happily render it!
         
     | 
| 
      
 44 
     | 
    
         
            +
                  "Hello, #{params['name']}"!
         
     | 
| 
       51 
45 
     | 
    
         
             
                end
         
     | 
| 
       52 
46 
     | 
    
         | 
| 
       53 
     | 
    
         
            -
                 
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                # How about passing control to another controller? In this instance,
         
     | 
| 
       56 
     | 
    
         
            -
                # we're invoking an instance of ResourceMounter, a controller class
         
     | 
| 
       57 
     | 
    
         
            -
                # that serves a model resource RESTful-Rails-style. We'll save a 
         
     | 
| 
       58 
     | 
    
         
            -
                # reference to the controller for later.
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                articles = ResourceMounter.new(:class => Article)
         
     | 
| 
       61 
     | 
    
         
            -
                articles.perform
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                # Or use the shortcut: invoke :resource_mounter, :class => Article
         
     | 
| 
       64 
     | 
    
         
            -
             
     | 
| 
       65 
     | 
    
         
            -
                # This block of code is executed for every request, so you can do
         
     | 
| 
       66 
     | 
    
         
            -
                # some crazy stuff here, including only defining specific paths
         
     | 
| 
       67 
     | 
    
         
            -
                # when certain conditions are given. Just write Ruby! :)
         
     | 
| 
       68 
     | 
    
         
            -
                
         
     | 
| 
       69 
     | 
    
         
            -
                if context.user_is_admin?
         
     | 
| 
       70 
     | 
    
         
            -
                  path 'delete_everything' do
         
     | 
| 
       71 
     | 
    
         
            -
                    Article.delete_all
         
     | 
| 
       72 
     | 
    
         
            -
             
     | 
| 
       73 
     | 
    
         
            -
                    # How about rendering a view template and passing
         
     | 
| 
       74 
     | 
    
         
            -
                    # variables to it?
         
     | 
| 
       75 
     | 
    
         
            -
                    render 'admin_message.erb',
         
     | 
| 
       76 
     | 
    
         
            -
                      :message => 'You just deleted everything. Grats!'
         
     | 
| 
       77 
     | 
    
         
            -
                  end
         
     | 
| 
       78 
     | 
    
         
            -
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
                "Silly user, didn't provide a name!"
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
       79 
49 
     | 
    
         | 
| 
       80 
     | 
    
         
            -
             
     | 
| 
       81 
     | 
    
         
            -
             
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
             
     | 
| 
       84 
     | 
    
         
            -
             
     | 
| 
      
 50 
     | 
    
         
            +
              # Now let's do something a little bit more exciting!
         
     | 
| 
      
 51 
     | 
    
         
            +
              #
         
     | 
| 
      
 52 
     | 
    
         
            +
              # How about passing control to another controller? In this instance,
         
     | 
| 
      
 53 
     | 
    
         
            +
              # we're invoking an instance of ResourceMounter, a controller class
         
     | 
| 
      
 54 
     | 
    
         
            +
              # that serves a model resource RESTful-Rails-style. We'll save a 
         
     | 
| 
      
 55 
     | 
    
         
            +
              # reference to the controller for later.
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              articles = ResourceMounter.new(:class => Article)
         
     | 
| 
      
 58 
     | 
    
         
            +
              articles.perform
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
              # Or use the shortcut: invoke :resource_mounter, :class => Article
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
              # This block of code is executed for every request, so you can do
         
     | 
| 
      
 63 
     | 
    
         
            +
              # some crazy stuff here, including only defining specific paths
         
     | 
| 
      
 64 
     | 
    
         
            +
              # when certain conditions are given. Just write Ruby! :)
         
     | 
| 
      
 65 
     | 
    
         
            +
              
         
     | 
| 
      
 66 
     | 
    
         
            +
              if context.user_is_admin?
         
     | 
| 
      
 67 
     | 
    
         
            +
                path 'delete_everything' do
         
     | 
| 
      
 68 
     | 
    
         
            +
                  Article.delete_all
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  # How about rendering a view template and passing
         
     | 
| 
      
 71 
     | 
    
         
            +
                  # variables to it?
         
     | 
| 
      
 72 
     | 
    
         
            +
                  render 'admin_message.erb',
         
     | 
| 
      
 73 
     | 
    
         
            +
                    :message => 'You just deleted everything. Grats!'
         
     | 
| 
      
 74 
     | 
    
         
            +
                end
         
     | 
| 
       85 
75 
     | 
    
         
             
              end
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
              # If we reach this point, the request still hasn't been handled, so
         
     | 
| 
      
 78 
     | 
    
         
            +
              # the user must by trying to access the root URL. How about a redirect
         
     | 
| 
      
 79 
     | 
    
         
            +
              # to the URL of the previously invoked controller?
         
     | 
| 
      
 80 
     | 
    
         
            +
              
         
     | 
| 
      
 81 
     | 
    
         
            +
              redirect! articles.root_url
         
     | 
| 
       86 
82 
     | 
    
         
             
            end
         
     | 
| 
       87 
83 
     | 
    
         | 
| 
       88 
     | 
    
         
            -
             
     | 
| 
       89 
     | 
    
         
            -
            run MyApp
         
     | 
| 
      
 84 
     | 
    
         
            +
            run Happy
         
     | 
| 
       90 
85 
     | 
    
         
             
            ```
         
     | 
| 
       91 
86 
     | 
    
         | 
| 
       92 
87 
     | 
    
         | 
    
        data/lib/happy/context.rb
    CHANGED
    
    | 
         @@ -5,8 +5,8 @@ module Happy 
     | 
|
| 
       5 
5 
     | 
    
         
             
              class Context
         
     | 
| 
       6 
6 
     | 
    
         
             
                include Helpers
         
     | 
| 
       7 
7 
     | 
    
         | 
| 
       8 
     | 
    
         
            -
                attr_reader   :request, : 
     | 
| 
       9 
     | 
    
         
            -
                attr_accessor :layout, :controller
         
     | 
| 
      
 8 
     | 
    
         
            +
                attr_reader   :request, :previous_path, :remaining_path
         
     | 
| 
      
 9 
     | 
    
         
            +
                attr_accessor :layout, :controller, :response
         
     | 
| 
       10 
10 
     | 
    
         
             
                delegate      :params, :session, :to => :request
         
     | 
| 
       11 
11 
     | 
    
         | 
| 
       12 
12 
     | 
    
         
             
                def initialize(request, response)
         
     | 
| 
         @@ -30,10 +30,6 @@ module Happy 
     | 
|
| 
       30 
30 
     | 
    
         
             
                  self.controller = old_controller
         
     | 
| 
       31 
31 
     | 
    
         
             
                end
         
     | 
| 
       32 
32 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                def response=(r)
         
     | 
| 
       34 
     | 
    
         
            -
                  @response = r
         
     | 
| 
       35 
     | 
    
         
            -
                end
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
33 
     | 
    
         
             
              private
         
     | 
| 
       38 
34 
     | 
    
         | 
| 
       39 
35 
     | 
    
         
             
                class << self
         
     | 
    
        data/lib/happy/controller.rb
    CHANGED
    
    | 
         @@ -46,31 +46,20 @@ module Happy 
     | 
|
| 
       46 
46 
     | 
    
         
             
                end
         
     | 
| 
       47 
47 
     | 
    
         | 
| 
       48 
48 
     | 
    
         
             
                def context
         
     | 
| 
       49 
     | 
    
         
            -
                  @env['happy.context'] ||=  
     | 
| 
      
 49 
     | 
    
         
            +
                  @env['happy.context'] ||= Happy::Context.from_env(@env)
         
     | 
| 
       50 
50 
     | 
    
         
             
                end
         
     | 
| 
       51 
51 
     | 
    
         | 
| 
       52 
52 
     | 
    
         
             
                def route
         
     | 
| 
       53 
     | 
    
         
            -
                   
     | 
| 
      
 53 
     | 
    
         
            +
                  # override this in subclasses
         
     | 
| 
       54 
54 
     | 
    
         
             
                end
         
     | 
| 
       55 
55 
     | 
    
         | 
| 
       56 
56 
     | 
    
         
             
                class << self
         
     | 
| 
       57 
     | 
    
         
            -
                   
     | 
| 
       58 
     | 
    
         
            -
             
     | 
| 
       59 
     | 
    
         
            -
                   
     | 
| 
       60 
     | 
    
         
            -
                    @route_blk = blk
         
     | 
| 
       61 
     | 
    
         
            -
                  end
         
     | 
| 
       62 
     | 
    
         
            -
             
     | 
| 
       63 
     | 
    
         
            -
                  def context(&blk)
         
     | 
| 
       64 
     | 
    
         
            -
                    context_class.class_exec(&blk)
         
     | 
| 
       65 
     | 
    
         
            -
                  end
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                  def context_class
         
     | 
| 
       68 
     | 
    
         
            -
                    Happy::Context
         
     | 
| 
       69 
     | 
    
         
            -
                  end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
      
 57 
     | 
    
         
            +
                  # Create a new subclass of Happy::Controller, using the provided
         
     | 
| 
      
 58 
     | 
    
         
            +
                  # block for defining class methods et al.
         
     | 
| 
      
 59 
     | 
    
         
            +
                  #
         
     | 
| 
       71 
60 
     | 
    
         
             
                  def build(&blk)
         
     | 
| 
       72 
61 
     | 
    
         
             
                    Class.new(self).tap do |klass|
         
     | 
| 
       73 
     | 
    
         
            -
                      klass. 
     | 
| 
      
 62 
     | 
    
         
            +
                      klass.class_eval(&blk) if blk
         
     | 
| 
       74 
63 
     | 
    
         
             
                    end
         
     | 
| 
       75 
64 
     | 
    
         
             
                  end
         
     | 
| 
       76 
65 
     | 
    
         
             
                end
         
     | 
    
        data/lib/happy/version.rb
    CHANGED
    
    
    
        data/lib/happy.rb
    CHANGED
    
    | 
         @@ -11,4 +11,24 @@ module Happy 
     | 
|
| 
       11 
11 
     | 
    
         
             
              def self.env
         
     | 
| 
       12 
12 
     | 
    
         
             
                ActiveSupport::StringInquirer.new(ENV['RACK_ENV'] || 'development')
         
     | 
| 
       13 
13 
     | 
    
         
             
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
              # Creates a new Happy::Controller class, using the provided block as
         
     | 
| 
      
 16 
     | 
    
         
            +
              # its routing block.
         
     | 
| 
      
 17 
     | 
    
         
            +
              #
         
     | 
| 
      
 18 
     | 
    
         
            +
              def self.route(&blk)
         
     | 
| 
      
 19 
     | 
    
         
            +
                @last_controller_class_created = Class.new(Happy::Controller).tap do |klass|
         
     | 
| 
      
 20 
     | 
    
         
            +
                  klass.send(:define_method, :route, &blk)
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
              # Run the provided block against Happy::Context. Use this to add new
         
     | 
| 
      
 25 
     | 
    
         
            +
              # methods to the request context class.
         
     | 
| 
      
 26 
     | 
    
         
            +
              #
         
     | 
| 
      
 27 
     | 
    
         
            +
              def self.context(&blk)
         
     | 
| 
      
 28 
     | 
    
         
            +
                Context.class_exec(&blk)
         
     | 
| 
      
 29 
     | 
    
         
            +
              end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
              def self.call(env)
         
     | 
| 
      
 32 
     | 
    
         
            +
                @last_controller_class_created.try(:call, env) or raise "Please use Happy.route to define some routes."
         
     | 
| 
      
 33 
     | 
    
         
            +
              end
         
     | 
| 
       14 
34 
     | 
    
         
             
            end
         
     | 
| 
         @@ -4,22 +4,20 @@ module Happy 
     | 
|
| 
       4 
4 
     | 
    
         
             
              describe Controller::Routing do
         
     | 
| 
       5 
5 
     | 
    
         
             
                describe '#path' do
         
     | 
| 
       6 
6 
     | 
    
         
             
                  subject do
         
     | 
| 
       7 
     | 
    
         
            -
                     
     | 
| 
       8 
     | 
    
         
            -
                       
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
                        path(' 
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
                          serve! "Please provide a name."
         
     | 
| 
       14 
     | 
    
         
            -
                        end
         
     | 
| 
       15 
     | 
    
         
            -
                        path('number-:num') { serve! "num = #{params['num']}" }
         
     | 
| 
       16 
     | 
    
         
            -
                        path('return-value') { 'moo?' }
         
     | 
| 
       17 
     | 
    
         
            -
                        path('resource') do
         
     | 
| 
       18 
     | 
    
         
            -
                          get { 'GET resource' }
         
     | 
| 
       19 
     | 
    
         
            -
                          post { 'POST resource' }
         
     | 
| 
       20 
     | 
    
         
            -
                        end
         
     | 
| 
       21 
     | 
    
         
            -
                        serve! "root"
         
     | 
| 
      
 7 
     | 
    
         
            +
                    Happy.route do
         
     | 
| 
      
 8 
     | 
    
         
            +
                      path('foo') { serve! 'bar' }
         
     | 
| 
      
 9 
     | 
    
         
            +
                      path('one', 'two') { serve! 'onetwo' }
         
     | 
| 
      
 10 
     | 
    
         
            +
                      path('hello') do
         
     | 
| 
      
 11 
     | 
    
         
            +
                        path(:name) { serve! "Hello #{params['name']}" }
         
     | 
| 
      
 12 
     | 
    
         
            +
                        serve! "Please provide a name."
         
     | 
| 
       22 
13 
     | 
    
         
             
                      end
         
     | 
| 
      
 14 
     | 
    
         
            +
                      path('number-:num') { serve! "num = #{params['num']}" }
         
     | 
| 
      
 15 
     | 
    
         
            +
                      path('return-value') { 'moo?' }
         
     | 
| 
      
 16 
     | 
    
         
            +
                      path('resource') do
         
     | 
| 
      
 17 
     | 
    
         
            +
                        get { 'GET resource' }
         
     | 
| 
      
 18 
     | 
    
         
            +
                        post { 'POST resource' }
         
     | 
| 
      
 19 
     | 
    
         
            +
                      end
         
     | 
| 
      
 20 
     | 
    
         
            +
                      serve! "root"
         
     | 
| 
       23 
21 
     | 
    
         
             
                    end
         
     | 
| 
       24 
22 
     | 
    
         
             
                  end
         
     | 
| 
       25 
23 
     | 
    
         | 
    
        data/spec/controller_spec.rb
    CHANGED
    
    | 
         @@ -3,11 +3,13 @@ require 'spec_helper' 
     | 
|
| 
       3 
3 
     | 
    
         
             
            module Happy
         
     | 
| 
       4 
4 
     | 
    
         
             
              describe Controller do
         
     | 
| 
       5 
5 
     | 
    
         
             
                subject do
         
     | 
| 
       6 
     | 
    
         
            -
                  Controller 
     | 
| 
       7 
     | 
    
         
            -
                    route 
     | 
| 
      
 6 
     | 
    
         
            +
                  class MyController < Happy::Controller
         
     | 
| 
      
 7 
     | 
    
         
            +
                    def route
         
     | 
| 
       8 
8 
     | 
    
         
             
                      serve! "it works"
         
     | 
| 
       9 
9 
     | 
    
         
             
                    end
         
     | 
| 
       10 
10 
     | 
    
         
             
                  end
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  MyController
         
     | 
| 
       11 
13 
     | 
    
         
             
                end
         
     | 
| 
       12 
14 
     | 
    
         | 
| 
       13 
15 
     | 
    
         
             
                it "is mountable as a Rack app" do
         
     | 
| 
         @@ -19,7 +21,9 @@ module Happy 
     | 
|
| 
       19 
21 
     | 
    
         
             
                describe ".build" do
         
     | 
| 
       20 
22 
     | 
    
         
             
                  subject do
         
     | 
| 
       21 
23 
     | 
    
         
             
                    Controller.build do
         
     | 
| 
       22 
     | 
    
         
            -
                      route 
     | 
| 
      
 24 
     | 
    
         
            +
                      def route
         
     | 
| 
      
 25 
     | 
    
         
            +
                        serve! "yay!"
         
     | 
| 
      
 26 
     | 
    
         
            +
                      end
         
     | 
| 
       23 
27 
     | 
    
         
             
                    end
         
     | 
| 
       24 
28 
     | 
    
         
             
                  end
         
     | 
| 
       25 
29 
     | 
    
         | 
    
        data/spec/happy_spec.rb
    CHANGED
    
    | 
         @@ -7,11 +7,11 @@ describe Happy do 
     | 
|
| 
       7 
7 
     | 
    
         
             
                end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                it "provides #development?, #production? etc." do
         
     | 
| 
       10 
     | 
    
         
            -
                  ENV 
     | 
| 
      
 10 
     | 
    
         
            +
                  ENV['RACK_ENV'] = 'development'
         
     | 
| 
       11 
11 
     | 
    
         
             
                  Happy.env.should be_development
         
     | 
| 
       12 
12 
     | 
    
         
             
                  Happy.env.should_not be_production
         
     | 
| 
       13 
13 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
                  ENV 
     | 
| 
      
 14 
     | 
    
         
            +
                  ENV['RACK_ENV'] = 'production'
         
     | 
| 
       15 
15 
     | 
    
         
             
                  Happy.env.should be_production
         
     | 
| 
       16 
16 
     | 
    
         
             
                  Happy.env.should_not be_development
         
     | 
| 
       17 
17 
     | 
    
         
             
                end
         
     | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: happy
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.1.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0.pre14
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: 6
         
     | 
| 
       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-06- 
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2012-06-07 00:00:00.000000000 Z
         
     | 
| 
       13 
13 
     | 
    
         
             
            dependencies:
         
     | 
| 
       14 
14 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       15 
15 
     | 
    
         
             
              name: activesupport
         
     | 
| 
       16 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: &70317632674040 !ruby/object:Gem::Requirement
         
     | 
| 
       17 
17 
     | 
    
         
             
                none: false
         
     | 
| 
       18 
18 
     | 
    
         
             
                requirements:
         
     | 
| 
       19 
19 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -21,10 +21,10 @@ dependencies: 
     | 
|
| 
       21 
21 
     | 
    
         
             
                    version: '3.1'
         
     | 
| 
       22 
22 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       23 
23 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       24 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 24 
     | 
    
         
            +
              version_requirements: *70317632674040
         
     | 
| 
       25 
25 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       26 
26 
     | 
    
         
             
              name: rack
         
     | 
| 
       27 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 27 
     | 
    
         
            +
              requirement: &70317632672560 !ruby/object:Gem::Requirement
         
     | 
| 
       28 
28 
     | 
    
         
             
                none: false
         
     | 
| 
       29 
29 
     | 
    
         
             
                requirements:
         
     | 
| 
       30 
30 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -32,10 +32,10 @@ dependencies: 
     | 
|
| 
       32 
32 
     | 
    
         
             
                    version: '1.4'
         
     | 
| 
       33 
33 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       34 
34 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       35 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 35 
     | 
    
         
            +
              version_requirements: *70317632672560
         
     | 
| 
       36 
36 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       37 
37 
     | 
    
         
             
              name: happy-helpers
         
     | 
| 
       38 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 38 
     | 
    
         
            +
              requirement: &70317632671280 !ruby/object:Gem::Requirement
         
     | 
| 
       39 
39 
     | 
    
         
             
                none: false
         
     | 
| 
       40 
40 
     | 
    
         
             
                requirements:
         
     | 
| 
       41 
41 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -43,10 +43,10 @@ dependencies: 
     | 
|
| 
       43 
43 
     | 
    
         
             
                    version: 0.1.0.pre9
         
     | 
| 
       44 
44 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       45 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       46 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: *70317632671280
         
     | 
| 
       47 
47 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       48 
48 
     | 
    
         
             
              name: allowance
         
     | 
| 
       49 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 49 
     | 
    
         
            +
              requirement: &70317632685880 !ruby/object:Gem::Requirement
         
     | 
| 
       50 
50 
     | 
    
         
             
                none: false
         
     | 
| 
       51 
51 
     | 
    
         
             
                requirements:
         
     | 
| 
       52 
52 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -54,10 +54,10 @@ dependencies: 
     | 
|
| 
       54 
54 
     | 
    
         
             
                    version: 0.1.1
         
     | 
| 
       55 
55 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       56 
56 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       57 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 57 
     | 
    
         
            +
              version_requirements: *70317632685880
         
     | 
| 
       58 
58 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       59 
59 
     | 
    
         
             
              name: happy-cli
         
     | 
| 
       60 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 60 
     | 
    
         
            +
              requirement: &70317632681080 !ruby/object:Gem::Requirement
         
     | 
| 
       61 
61 
     | 
    
         
             
                none: false
         
     | 
| 
       62 
62 
     | 
    
         
             
                requirements:
         
     | 
| 
       63 
63 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -65,10 +65,10 @@ dependencies: 
     | 
|
| 
       65 
65 
     | 
    
         
             
                    version: 0.1.0.pre1
         
     | 
| 
       66 
66 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       67 
67 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       68 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 68 
     | 
    
         
            +
              version_requirements: *70317632681080
         
     | 
| 
       69 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       70 
70 
     | 
    
         
             
              name: rake
         
     | 
| 
       71 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 71 
     | 
    
         
            +
              requirement: &70317632678780 !ruby/object:Gem::Requirement
         
     | 
| 
       72 
72 
     | 
    
         
             
                none: false
         
     | 
| 
       73 
73 
     | 
    
         
             
                requirements:
         
     | 
| 
       74 
74 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -76,10 +76,10 @@ dependencies: 
     | 
|
| 
       76 
76 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       77 
77 
     | 
    
         
             
              type: :development
         
     | 
| 
       78 
78 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       79 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 79 
     | 
    
         
            +
              version_requirements: *70317632678780
         
     | 
| 
       80 
80 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       81 
81 
     | 
    
         
             
              name: rspec
         
     | 
| 
       82 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 82 
     | 
    
         
            +
              requirement: &70317632703660 !ruby/object:Gem::Requirement
         
     | 
| 
       83 
83 
     | 
    
         
             
                none: false
         
     | 
| 
       84 
84 
     | 
    
         
             
                requirements:
         
     | 
| 
       85 
85 
     | 
    
         
             
                - - ~>
         
     | 
| 
         @@ -87,10 +87,10 @@ dependencies: 
     | 
|
| 
       87 
87 
     | 
    
         
             
                    version: '2.8'
         
     | 
| 
       88 
88 
     | 
    
         
             
              type: :development
         
     | 
| 
       89 
89 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       90 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 90 
     | 
    
         
            +
              version_requirements: *70317632703660
         
     | 
| 
       91 
91 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       92 
92 
     | 
    
         
             
              name: rspec-html-matchers
         
     | 
| 
       93 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 93 
     | 
    
         
            +
              requirement: &70317632702220 !ruby/object:Gem::Requirement
         
     | 
| 
       94 
94 
     | 
    
         
             
                none: false
         
     | 
| 
       95 
95 
     | 
    
         
             
                requirements:
         
     | 
| 
       96 
96 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -98,10 +98,10 @@ dependencies: 
     | 
|
| 
       98 
98 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       99 
99 
     | 
    
         
             
              type: :development
         
     | 
| 
       100 
100 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       101 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 101 
     | 
    
         
            +
              version_requirements: *70317632702220
         
     | 
| 
       102 
102 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       103 
103 
     | 
    
         
             
              name: rack-test
         
     | 
| 
       104 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 104 
     | 
    
         
            +
              requirement: &70317632701180 !ruby/object:Gem::Requirement
         
     | 
| 
       105 
105 
     | 
    
         
             
                none: false
         
     | 
| 
       106 
106 
     | 
    
         
             
                requirements:
         
     | 
| 
       107 
107 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -109,10 +109,10 @@ dependencies: 
     | 
|
| 
       109 
109 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       110 
110 
     | 
    
         
             
              type: :development
         
     | 
| 
       111 
111 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       112 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 112 
     | 
    
         
            +
              version_requirements: *70317632701180
         
     | 
| 
       113 
113 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       114 
114 
     | 
    
         
             
              name: watchr
         
     | 
| 
       115 
     | 
    
         
            -
              requirement: & 
     | 
| 
      
 115 
     | 
    
         
            +
              requirement: &70317632700160 !ruby/object:Gem::Requirement
         
     | 
| 
       116 
116 
     | 
    
         
             
                none: false
         
     | 
| 
       117 
117 
     | 
    
         
             
                requirements:
         
     | 
| 
       118 
118 
     | 
    
         
             
                - - ! '>='
         
     | 
| 
         @@ -120,7 +120,7 @@ dependencies: 
     | 
|
| 
       120 
120 
     | 
    
         
             
                    version: '0'
         
     | 
| 
       121 
121 
     | 
    
         
             
              type: :development
         
     | 
| 
       122 
122 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       123 
     | 
    
         
            -
              version_requirements: * 
     | 
| 
      
 123 
     | 
    
         
            +
              version_requirements: *70317632700160
         
     | 
| 
       124 
124 
     | 
    
         
             
            description: A happy little toolkit for writing web applications.
         
     | 
| 
       125 
125 
     | 
    
         
             
            email:
         
     | 
| 
       126 
126 
     | 
    
         
             
            - hendrik@mans.de
         
     |