ez 1.3.0 → 1.5.0.2
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/CHANGELOG.md +8 -0
- data/README.md +8 -14
- data/lib/ez.rb +11 -17
- data/lib/ez/domain_modeler.rb +6 -2
- data/lib/ez/model.rb +1 -11
- data/lib/ez/schema_modifier.rb +25 -15
- data/lib/ez/version.rb +1 -1
- data/lib/tasks/ez_tasks.rake +2 -2
- metadata +4 -39
- data/lib/ez/apis.rb +0 -26
- data/lib/ez/controller.rb +0 -19
- data/lib/ez/dispatcher.rb +0 -28
- data/lib/ez/mapper.rb +0 -22
- data/lib/ez/view_helpers.rb +0 -18
- data/lib/generators/ez/resource/USAGE +0 -35
- data/lib/generators/ez/resource/migration.rb +0 -15
- data/lib/generators/ez/resource/resource_generator.rb +0 -143
- data/lib/generators/ez/resource/templates/bootstrapped/edit.html.erb +0 -26
- data/lib/generators/ez/resource/templates/bootstrapped/index.html.erb +0 -42
- data/lib/generators/ez/resource/templates/bootstrapped/new.html.erb +0 -26
- data/lib/generators/ez/resource/templates/bootstrapped/show.html.erb +0 -11
- data/lib/generators/ez/resource/templates/controller.rb +0 -70
- data/lib/generators/ez/resource/templates/dried/_form.html.erb +0 -13
- data/lib/generators/ez/resource/templates/dried/bootstrapped/_form.html.erb +0 -21
- data/lib/generators/ez/resource/templates/dried/bootstrapped/edit.html.erb +0 -5
- data/lib/generators/ez/resource/templates/dried/bootstrapped/index.html.erb +0 -42
- data/lib/generators/ez/resource/templates/dried/bootstrapped/new.html.erb +0 -5
- data/lib/generators/ez/resource/templates/dried/bootstrapped/show.html.erb +0 -11
- data/lib/generators/ez/resource/templates/dried/controller.rb +0 -72
- data/lib/generators/ez/resource/templates/dried/edit.html.erb +0 -3
- data/lib/generators/ez/resource/templates/dried/index.html.erb +0 -40
- data/lib/generators/ez/resource/templates/dried/new.html.erb +0 -3
- data/lib/generators/ez/resource/templates/dried/show.html.erb +0 -9
- data/lib/generators/ez/resource/templates/edit.html.erb +0 -24
- data/lib/generators/ez/resource/templates/index.html.erb +0 -40
- data/lib/generators/ez/resource/templates/migration.rb +0 -15
- data/lib/generators/ez/resource/templates/model.rb +0 -2
- data/lib/generators/ez/resource/templates/new.html.erb +0 -22
- data/lib/generators/ez/resource/templates/show.html.erb +0 -9
- data/lib/generators/ez/style/USAGE +0 -31
- data/lib/generators/ez/style/style_generator.rb +0 -34
- data/lib/generators/ez/style/templates/layout.html.erb +0 -66
- data/lib/generators/ez/user/templates/user_controller.rb +0 -68
- data/lib/generators/ez/user/user_generator.rb +0 -91
- data/lib/generators/ez/views/USAGE +0 -33
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 1489c438d97d79208d963c25252fded0a1abaf9e
         | 
| 4 | 
            +
              data.tar.gz: 784a7645ba2e2a63bc37942b9dbeb6eba536a857
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: ae85e1d114644062bcf66924b8d231bce256dc9782cd9b11d96aa81cf470e69d1c6ba7cb1cec963f18ecf170b5873ce12898873a2c964166147e17616b029a06
         | 
| 7 | 
            +
              data.tar.gz: 6dab9bc2e6bf81859a2d7e3eef8f8696141405a045826f81b739686ea7df4aabeb5763917820b463ee59ca6b1ae6113385249f2e901b9e8e98fdad30dee900e2
         | 
    
        data/CHANGELOG.md
    ADDED
    
    | @@ -0,0 +1,8 @@ | |
| 1 | 
            +
            *Version 1.5.0.2*
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            - Rails 5 compatibility
         | 
| 4 | 
            +
            - Column deletion, model deletion, and column renaming applied in dev and test environments only
         | 
| 5 | 
            +
            - Warning! Column type changes are allowed in ALL environments.
         | 
| 6 | 
            +
            - Starting the console no longer evaluates `models.yml` file.  You must run `reload!` to apply any changes.
         | 
| 7 | 
            +
            - Focused on domain modeling only. Removed old controller filters, generators, and view helpers.
         | 
| 8 | 
            +
            - Removed dead code.
         | 
    
        data/README.md
    CHANGED
    
    | @@ -1,9 +1,11 @@ | |
| 1 1 | 
             
            # EZ
         | 
| 2 2 |  | 
| 3 | 
            -
            **Version 1. | 
| 3 | 
            +
            **Version 1.5.0.2**
         | 
| 4 4 |  | 
| 5 5 | 
             
            *For educational purposes only.*
         | 
| 6 6 |  | 
| 7 | 
            +
            Tested against Rails 5.0.2 and Rails 4.2.6.
         | 
| 8 | 
            +
             | 
| 7 9 | 
             
            Easy domain modeling in Rails without migrations.  Applies instant schema changes based on a file named `db/models.yml`.  Diffs are determined automatically and applied to the database.  Embraces Rails column naming conventions by providing happy-path default types for most columns.
         | 
| 8 10 |  | 
| 9 11 | 
             
            Also, enhances the rails console and provides extra ActiveRecord helper methods.
         | 
| @@ -40,10 +42,10 @@ to generate a skeleton `db/models.yml` that you should edit. | |
| 40 42 | 
             
            ### 1. Domain Modeling Enhancements
         | 
| 41 43 |  | 
| 42 44 | 
             
            * This gem enhances `db:migrate` to incorporate the `db/models.yml` file automatically.
         | 
| 43 | 
            -
            * Run `rake db:migrate` to initially generate a file named `db/models.yml`.  It will have some self-documenting comments inside of it.
         | 
| 44 | 
            -
            * Just run `rake db:migrate` whenever you modify `db/models.yml`.
         | 
| 45 | 
            -
            *  | 
| 46 | 
            -
            *  | 
| 45 | 
            +
            * Run `rails db:migrate` (Rails 5.x) or `rake db:migrate` (Rails 4.x) to initially generate a file named `db/models.yml`.  It will have some self-documenting comments inside of it.
         | 
| 46 | 
            +
            * Just run `rails db:migrate` (or `rake db:migrate`) whenever you modify `db/models.yml`.
         | 
| 47 | 
            +
            * Using `reload!` inside the rails console is an alternative to the `db:migrate` task.
         | 
| 48 | 
            +
            * Pending migrations will be run *after* running table updates based on the `db/models.yml` file.
         | 
| 47 49 |  | 
| 48 50 |  | 
| 49 51 | 
             
            **Syntax Guide for `db/models.yml`**
         | 
| @@ -160,16 +162,8 @@ Author | |
| 160 162 |  | 
| 161 163 | 
             
            ### 3. Beginner-friendly "It Just Works" console
         | 
| 162 164 |  | 
| 163 | 
            -
            * Starting `rails console` will automatically apply any pending database changes, followed by any traditional migrations.
         | 
| 164 165 | 
             
            * Solves the "no connection" message in Rails >= 4.0.1 (if you try to inspect a model without making a query first) by establishing an initial connection to the development database.
         | 
| 165 166 | 
             
            * Shows helpful instructions when console starts, including the list of model classes found in the application.
         | 
| 166 167 | 
             
            * Uses Hirb for table-like display. (Requires Hirb ~> 0.7.1)
         | 
| 167 168 | 
             
            * Patches Hirb to allow nice table output for `ActiveRecord::Relation` lists (i.e. result of `.all`, `.where`) and hash-like output for single ActiveRecord objects, such as the result of `.find_by(:title => 'Apollo 13')`.
         | 
| 168 | 
            -
            * `reload!` will  | 
| 169 | 
            -
             | 
| 170 | 
            -
             | 
| 171 | 
            -
            ### 4. Controller and View Enhancements
         | 
| 172 | 
            -
             | 
| 173 | 
            -
            * Easier JSON API calls by calling `EZ.from_api(url)`; returns parsed Ruby hash (or array, etc.)
         | 
| 174 | 
            -
            * Built-in view helper `<%= weather %>` and `EZ.weather` for classroom demo of a JSON API, to get quick hash and avoid gory details.  (Relies on http://openweathermap.org).  Default location is Evanston.  Can pass location: `<%= weather('San Diego, CA') %>`.  The `<%= weather %>` helper just delegates to `EZ.weather`.
         | 
| 175 | 
            -
            * Adds view helper `map` to display a static Google map of any address. Example: `<%= map('Millenium Park, Chicago, IL') %>`
         | 
| 169 | 
            +
            * `reload!` will force a schema update from the console.
         | 
    
        data/lib/ez.rb
    CHANGED
    
    | @@ -1,21 +1,19 @@ | |
| 1 1 | 
             
            require "ez/version"
         | 
| 2 | 
            -
            # require 'ez/dispatcher.rb'
         | 
| 3 | 
            -
            # require 'ez/mapper.rb'
         | 
| 4 | 
            -
            require 'ez/controller.rb'
         | 
| 5 | 
            -
             | 
| 6 | 
            -
            require 'ez/apis.rb'
         | 
| 7 2 | 
             
            require 'ez/domain_modeler.rb'
         | 
| 8 3 | 
             
            require 'ez/model.rb'
         | 
| 9 | 
            -
            require 'ez/view_helpers.rb'
         | 
| 10 4 |  | 
| 11 | 
            -
            require 'hirb' if Rails.env.development?
         | 
| 5 | 
            +
            require 'hirb' if (Rails.env.development? || Rails.env.test?)
         | 
| 12 6 |  | 
| 13 7 | 
             
            module EZ
         | 
| 14 8 | 
             
              module Console
         | 
| 15 | 
            -
                def reload!(print=true)
         | 
| 9 | 
            +
                def reload!(print = true)
         | 
| 16 10 | 
             
                  puts "Reloading code..." if print
         | 
| 17 | 
            -
                   | 
| 18 | 
            -
             | 
| 11 | 
            +
                  if Rails::VERSION::MAJOR < 5
         | 
| 12 | 
            +
                    ActionDispatch::Reloader.cleanup!
         | 
| 13 | 
            +
                    ActionDispatch::Reloader.prepare!
         | 
| 14 | 
            +
                  else
         | 
| 15 | 
            +
                    Rails.application.reloader.reload!
         | 
| 16 | 
            +
                  end
         | 
| 19 17 |  | 
| 20 18 | 
             
                  puts "Updating tables (if necessary) ..." if print
         | 
| 21 19 | 
             
                  old_level = ActiveRecord::Base.logger.level
         | 
| @@ -40,7 +38,7 @@ module EZ | |
| 40 38 |  | 
| 41 39 | 
             
                console do |app|
         | 
| 42 40 | 
             
                  Rails::ConsoleMethods.send :prepend, EZ::Console
         | 
| 43 | 
            -
                  Hirb.enable(pager: false) if ::Rails.env.development? && defined?(Hirb)
         | 
| 41 | 
            +
                  Hirb.enable(pager: false) if ::(Rails.env.development? || Rails.env.test?) && defined?(Hirb)
         | 
| 44 42 |  | 
| 45 43 | 
             
                  old_level = ActiveRecord::Base.logger.level
         | 
| 46 44 | 
             
                  ActiveRecord::Base.logger.level = Logger::WARN
         | 
| @@ -70,11 +68,7 @@ module EZ | |
| 70 68 |  | 
| 71 69 | 
             
                initializer "ez" do
         | 
| 72 70 |  | 
| 73 | 
            -
                   | 
| 74 | 
            -
                    include EZ::ViewHelpers
         | 
| 75 | 
            -
                  end
         | 
| 76 | 
            -
             | 
| 77 | 
            -
                  # tables = ActiveRecord::Base.connection.tables - ['schema_migrations']
         | 
| 71 | 
            +
                  # tables = ActiveRecord::Base.connection.data_sources - ['schema_migrations', 'ar_internal_metadata']
         | 
| 78 72 | 
             
                  # models.each { |m| m.constantize.magic_associations }
         | 
| 79 73 | 
             
                  # Rails.application.routes.draw do
         | 
| 80 74 | 
             
                  #   tables.each do |table_name|
         | 
| @@ -82,7 +76,7 @@ module EZ | |
| 82 76 | 
             
                  #   end
         | 
| 83 77 | 
             
                  # end
         | 
| 84 78 |  | 
| 85 | 
            -
                  if Rails.env.development?
         | 
| 79 | 
            +
                  if (Rails.env.development? || Rails.env.test?)
         | 
| 86 80 | 
             
                    module ::Hirb
         | 
| 87 81 | 
             
                      # A Formatter object formats an output object (using Formatter.format_output) into a string based on the views defined
         | 
| 88 82 | 
             
                      # for its class and/or ancestry.
         | 
    
        data/lib/ez/domain_modeler.rb
    CHANGED
    
    | @@ -1,6 +1,9 @@ | |
| 1 1 | 
             
            require_relative 'schema_modifier'
         | 
| 2 2 |  | 
| 3 3 | 
             
            module EZ
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              COLUMN_TRUE_VALUES = [true, 1, '1', 't', 'T', 'true', 'TRUE']
         | 
| 6 | 
            +
             | 
| 4 7 | 
             
              # The DomainModeler class implements the db/models.yml file syntax
         | 
| 5 8 | 
             
              # and provides a hash of the domain model specification.
         | 
| 6 9 |  | 
| @@ -10,7 +13,7 @@ module EZ | |
| 10 13 | 
             
                DEFAULT_VALUE_REGEXES = [/\s*\((.+)?\)/, /\s+(.+)?\s*/, /,\s*default:\s*(.+)?\s*/]
         | 
| 11 14 |  | 
| 12 15 | 
             
                def self.models
         | 
| 13 | 
            -
                  tables = ActiveRecord::Base.connection. | 
| 16 | 
            +
                  tables = ActiveRecord::Base.connection.data_sources - ['schema_migrations', 'ar_internal_metadata']
         | 
| 14 17 | 
             
                  tables.map { |t| t.classify }
         | 
| 15 18 | 
             
                end
         | 
| 16 19 |  | 
| @@ -50,6 +53,7 @@ module EZ | |
| 50 53 | 
             
              #
         | 
| 51 54 | 
             
              # Default column values can be specified like this:
         | 
| 52 55 | 
             
              #    price: integer(0)
         | 
| 56 | 
            +
              #    hardcover: boolean(false)
         | 
| 53 57 | 
             
              #
         | 
| 54 58 | 
             
              # Have fun!
         | 
| 55 59 |  | 
| @@ -146,7 +150,7 @@ module EZ | |
| 146 150 | 
             
                  default_column_value = default_column_value.to_f if default_column_value.present? && column_type == 'float'
         | 
| 147 151 |  | 
| 148 152 | 
             
                  if column_type == 'boolean'
         | 
| 149 | 
            -
                    default_column_value = default_column_value.present? && default_column_value. | 
| 153 | 
            +
                    default_column_value = default_column_value.present? && default_column_value.in?(EZ::COLUMN_TRUE_VALUES)
         | 
| 150 154 | 
             
                  end
         | 
| 151 155 |  | 
| 152 156 | 
             
                  @spec[model][column_name] = { type: column_type, default: default_column_value}
         | 
    
        data/lib/ez/model.rb
    CHANGED
    
    | @@ -1,15 +1,5 @@ | |
| 1 1 | 
             
            class ActiveRecord::Base
         | 
| 2 2 |  | 
| 3 | 
            -
              def self.magic_associations
         | 
| 4 | 
            -
                x = self.column_names.select { |n| n.ends_with? '_id' }
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                x.each do |fk|
         | 
| 7 | 
            -
                  assoc_name = fk[0, fk.length - 3]
         | 
| 8 | 
            -
                  belongs_to assoc_name.to_sym
         | 
| 9 | 
            -
                  assoc_name.classify.constantize.send(:has_many, self.name.underscore.pluralize.to_sym, dependent: :destroy)
         | 
| 10 | 
            -
                end
         | 
| 11 | 
            -
              end
         | 
| 12 | 
            -
             | 
| 13 3 | 
             
              def inspect
         | 
| 14 4 | 
             
                "#<#{self.class.name} #{attributes}>"
         | 
| 15 5 | 
             
              end
         | 
| @@ -45,7 +35,7 @@ class ActiveRecord::Base | |
| 45 35 | 
             
              end
         | 
| 46 36 |  | 
| 47 37 | 
             
              def self.dump_tables_to_ez
         | 
| 48 | 
            -
                (connection. | 
| 38 | 
            +
                (connection.data_sources - ['schema_migrations', 'ar_internal_metadata']).each do |table|
         | 
| 49 39 | 
             
                  puts table.classify.constantize.to_ez
         | 
| 50 40 | 
             
                end
         | 
| 51 41 | 
             
              end
         | 
    
        data/lib/ez/schema_modifier.rb
    CHANGED
    
    | @@ -47,7 +47,7 @@ module EZ | |
| 47 47 |  | 
| 48 48 |  | 
| 49 49 | 
             
                def tables
         | 
| 50 | 
            -
                  @tables ||= (db. | 
| 50 | 
            +
                  @tables ||= (db.data_sources - ['schema_migrations', 'ar_internal_metadata'])
         | 
| 51 51 | 
             
                end
         | 
| 52 52 |  | 
| 53 53 | 
             
                def missing_model?(model_name)
         | 
| @@ -73,54 +73,58 @@ module EZ | |
| 73 73 | 
             
                  @changed = true
         | 
| 74 74 | 
             
                end
         | 
| 75 75 |  | 
| 76 | 
            -
                def add_missing_columns(model_name,  | 
| 76 | 
            +
                def add_missing_columns(model_name, spec_columns, assume_missing = false)
         | 
| 77 77 | 
             
                  table_name = model_name.tableize
         | 
| 78 78 | 
             
                  db_columns = db.columns(table_name)
         | 
| 79 79 |  | 
| 80 | 
            -
                   | 
| 81 | 
            -
                    col_type =  | 
| 82 | 
            -
                    col_default =  | 
| 80 | 
            +
                  spec_columns.each do |col_name, col_spec|
         | 
| 81 | 
            +
                    col_type = col_spec[:type].to_sym
         | 
| 82 | 
            +
                    col_default = col_spec[:default]
         | 
| 83 83 | 
             
                    db_col = !assume_missing && (db_columns.detect { |dbc| dbc.name == col_name })
         | 
| 84 84 |  | 
| 85 85 | 
             
                    if !db_col
         | 
| 86 86 | 
             
                      if !assume_missing
         | 
| 87 | 
            -
                        display_change "Adding new column '#{col_name}' as #{col_type}  | 
| 87 | 
            +
                        display_change "Adding new column '#{col_name}' as #{col_type} in model #{model_name}"
         | 
| 88 88 | 
             
                      end
         | 
| 89 89 | 
             
                      opts = { default: col_default }
         | 
| 90 | 
            -
                      opts[:limit] =  | 
| 90 | 
            +
                      opts[:limit] = col_spec[:limit] if col_spec[:limit]
         | 
| 91 91 | 
             
                      db.add_column(table_name, col_name.to_sym, col_type.to_sym, opts)  unless @dry_run
         | 
| 92 | 
            -
                      if  | 
| 92 | 
            +
                      if col_spec[:index]
         | 
| 93 93 | 
             
                        display_change "  (adding database index for '#{col_name}')"
         | 
| 94 94 | 
             
                        db.add_index table_name, col_name.to_sym unless @dry_run
         | 
| 95 95 | 
             
                      end
         | 
| 96 96 | 
             
                    else
         | 
| 97 97 | 
             
                      if db_col.type != col_type
         | 
| 98 | 
            -
                        display_change "Changing column type for #{col_name} to #{col_type}  | 
| 98 | 
            +
                        display_change "Changing column type for #{col_name} to #{col_type} in model #{model_name}"
         | 
| 99 99 | 
             
                      end
         | 
| 100 100 |  | 
| 101 101 | 
             
                      # puts "#{table_name} #{col_name}: #{db_col.default} and #{col_default}"
         | 
| 102 | 
            -
                      if  | 
| 102 | 
            +
                      if col_type == :boolean
         | 
| 103 | 
            +
                        db_col_default = db_col.default.in?(EZ::COLUMN_TRUE_VALUES)
         | 
| 104 | 
            +
                      end
         | 
| 105 | 
            +
             | 
| 106 | 
            +
                      if db_col_default != col_default
         | 
| 103 107 | 
             
                        displayable_value = col_default
         | 
| 104 108 | 
             
                        displayable_value = "NULL" if col_default.nil?
         | 
| 105 | 
            -
                        display_change "Applying new default value  | 
| 109 | 
            +
                        display_change "Applying new default value `#{displayable_value}` for #{col_name} attrbute in model #{model_name}"
         | 
| 106 110 | 
             
                      end
         | 
| 107 111 |  | 
| 108 112 | 
             
                      if (db_col.type != col_type) || (db_col.default != col_default)
         | 
| 109 113 | 
             
                          opts = { default: col_default }
         | 
| 110 | 
            -
                          opts[:limit] =  | 
| 114 | 
            +
                          opts[:limit] = col_spec[:limit] if col_spec[:limit]
         | 
| 111 115 | 
             
                          db.change_column(table_name, col_name.to_sym, col_type.to_sym, opts)  unless @dry_run
         | 
| 112 116 | 
             
                      end
         | 
| 113 117 | 
             
                    end
         | 
| 114 118 | 
             
                  end
         | 
| 115 119 | 
             
                end
         | 
| 116 120 |  | 
| 117 | 
            -
                def add_model(model_name,  | 
| 121 | 
            +
                def add_model(model_name, spec_columns)
         | 
| 118 122 | 
             
                  table_name = model_name.tableize
         | 
| 119 123 | 
             
                  display_change "Defining new table for model '#{model_name}'."
         | 
| 120 124 | 
             
                  db.create_table table_name  unless @dry_run
         | 
| 121 | 
            -
                  add_missing_columns model_name,  | 
| 125 | 
            +
                  add_missing_columns model_name, spec_columns, true
         | 
| 122 126 | 
             
                  filename = "app/models/#{model_name.underscore}.rb"
         | 
| 123 | 
            -
                   | 
| 127 | 
            +
                  if (Rails.env.development? || Rails.env.test?) && !File.exists?(filename)
         | 
| 124 128 | 
             
                    display_change "Creating new model file: #{filename}"
         | 
| 125 129 | 
             
                    File.open(filename, "w") do |f|
         | 
| 126 130 | 
             
                      f.puts "class #{model_name} < ActiveRecord::Base"
         | 
| @@ -130,11 +134,15 @@ module EZ | |
| 130 134 | 
             
                end
         | 
| 131 135 |  | 
| 132 136 | 
             
                def remove_dead_schema
         | 
| 137 | 
            +
                  return unless Rails.env.development? || Rails.env.test?
         | 
| 138 | 
            +
             | 
| 133 139 | 
             
                  remove_dead_tables
         | 
| 134 140 | 
             
                  remove_dead_columns
         | 
| 135 141 | 
             
                end
         | 
| 136 142 |  | 
| 137 143 | 
             
                def remove_dead_columns
         | 
| 144 | 
            +
                  return unless Rails.env.development? || Rails.env.test?
         | 
| 145 | 
            +
             | 
| 138 146 | 
             
                  tables.each do |table_name|
         | 
| 139 147 | 
             
                    model_name = table_name.classify.to_s
         | 
| 140 148 |  | 
| @@ -161,6 +169,8 @@ module EZ | |
| 161 169 | 
             
                end
         | 
| 162 170 |  | 
| 163 171 | 
             
                def remove_dead_tables
         | 
| 172 | 
            +
                  return unless Rails.env.development? || Rails.env.test?
         | 
| 173 | 
            +
             | 
| 164 174 | 
             
                  tables_we_need = @spec.keys.map { |model| model.tableize }
         | 
| 165 175 | 
             
                  dead_tables = tables - tables_we_need
         | 
| 166 176 |  | 
    
        data/lib/ez/version.rb
    CHANGED
    
    
    
        data/lib/tasks/ez_tasks.rake
    CHANGED
    
    | @@ -35,7 +35,7 @@ namespace :ez do | |
| 35 35 | 
             
            # Typical column choices are: string, text, integer, boolean, date, time, and datetime.
         | 
| 36 36 | 
             
            #
         | 
| 37 37 | 
             
            #
         | 
| 38 | 
            -
            #  | 
| 38 | 
            +
            # About Default Values
         | 
| 39 39 | 
             
            # ----------------------------------------------------
         | 
| 40 40 | 
             
            # Default column values can be specified like this:
         | 
| 41 41 | 
             
            #    price: integer(0)
         | 
| @@ -73,7 +73,7 @@ EOS | |
| 73 73 | 
             
              task :tables => [:environment] do
         | 
| 74 74 | 
             
                if File.exists?('db/models.yml')
         | 
| 75 75 | 
             
                  if EZ::DomainModeler.update_tables
         | 
| 76 | 
            -
                    Rake::Task["db:schema:dump"].invoke  | 
| 76 | 
            +
                    Rake::Task["db:schema:dump"].invoke if (Rails.env.development? || Rails.env.test?)
         | 
| 77 77 | 
             
                  end
         | 
| 78 78 | 
             
                else
         | 
| 79 79 | 
             
                  Rake::Task["ez:generate_yml"].invoke
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: ez
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.5.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jeff Cohen
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date:  | 
| 11 | 
            +
            date: 2017-03-12 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: hirb
         | 
| @@ -66,52 +66,17 @@ extensions: [] | |
| 66 66 | 
             
            extra_rdoc_files: []
         | 
| 67 67 | 
             
            files:
         | 
| 68 68 | 
             
            - ".gitignore"
         | 
| 69 | 
            +
            - CHANGELOG.md
         | 
| 69 70 | 
             
            - Gemfile
         | 
| 70 71 | 
             
            - LICENSE.txt
         | 
| 71 72 | 
             
            - README.md
         | 
| 72 73 | 
             
            - Rakefile
         | 
| 73 74 | 
             
            - ez.gemspec
         | 
| 74 75 | 
             
            - lib/ez.rb
         | 
| 75 | 
            -
            - lib/ez/apis.rb
         | 
| 76 | 
            -
            - lib/ez/controller.rb
         | 
| 77 | 
            -
            - lib/ez/dispatcher.rb
         | 
| 78 76 | 
             
            - lib/ez/domain_modeler.rb
         | 
| 79 | 
            -
            - lib/ez/mapper.rb
         | 
| 80 77 | 
             
            - lib/ez/model.rb
         | 
| 81 78 | 
             
            - lib/ez/schema_modifier.rb
         | 
| 82 79 | 
             
            - lib/ez/version.rb
         | 
| 83 | 
            -
            - lib/ez/view_helpers.rb
         | 
| 84 | 
            -
            - lib/generators/ez/resource/USAGE
         | 
| 85 | 
            -
            - lib/generators/ez/resource/migration.rb
         | 
| 86 | 
            -
            - lib/generators/ez/resource/resource_generator.rb
         | 
| 87 | 
            -
            - lib/generators/ez/resource/templates/bootstrapped/edit.html.erb
         | 
| 88 | 
            -
            - lib/generators/ez/resource/templates/bootstrapped/index.html.erb
         | 
| 89 | 
            -
            - lib/generators/ez/resource/templates/bootstrapped/new.html.erb
         | 
| 90 | 
            -
            - lib/generators/ez/resource/templates/bootstrapped/show.html.erb
         | 
| 91 | 
            -
            - lib/generators/ez/resource/templates/controller.rb
         | 
| 92 | 
            -
            - lib/generators/ez/resource/templates/dried/_form.html.erb
         | 
| 93 | 
            -
            - lib/generators/ez/resource/templates/dried/bootstrapped/_form.html.erb
         | 
| 94 | 
            -
            - lib/generators/ez/resource/templates/dried/bootstrapped/edit.html.erb
         | 
| 95 | 
            -
            - lib/generators/ez/resource/templates/dried/bootstrapped/index.html.erb
         | 
| 96 | 
            -
            - lib/generators/ez/resource/templates/dried/bootstrapped/new.html.erb
         | 
| 97 | 
            -
            - lib/generators/ez/resource/templates/dried/bootstrapped/show.html.erb
         | 
| 98 | 
            -
            - lib/generators/ez/resource/templates/dried/controller.rb
         | 
| 99 | 
            -
            - lib/generators/ez/resource/templates/dried/edit.html.erb
         | 
| 100 | 
            -
            - lib/generators/ez/resource/templates/dried/index.html.erb
         | 
| 101 | 
            -
            - lib/generators/ez/resource/templates/dried/new.html.erb
         | 
| 102 | 
            -
            - lib/generators/ez/resource/templates/dried/show.html.erb
         | 
| 103 | 
            -
            - lib/generators/ez/resource/templates/edit.html.erb
         | 
| 104 | 
            -
            - lib/generators/ez/resource/templates/index.html.erb
         | 
| 105 | 
            -
            - lib/generators/ez/resource/templates/migration.rb
         | 
| 106 | 
            -
            - lib/generators/ez/resource/templates/model.rb
         | 
| 107 | 
            -
            - lib/generators/ez/resource/templates/new.html.erb
         | 
| 108 | 
            -
            - lib/generators/ez/resource/templates/show.html.erb
         | 
| 109 | 
            -
            - lib/generators/ez/style/USAGE
         | 
| 110 | 
            -
            - lib/generators/ez/style/style_generator.rb
         | 
| 111 | 
            -
            - lib/generators/ez/style/templates/layout.html.erb
         | 
| 112 | 
            -
            - lib/generators/ez/user/templates/user_controller.rb
         | 
| 113 | 
            -
            - lib/generators/ez/user/user_generator.rb
         | 
| 114 | 
            -
            - lib/generators/ez/views/USAGE
         | 
| 115 80 | 
             
            - lib/tasks/ez_tasks.rake
         | 
| 116 81 | 
             
            homepage: http://www.jeffcohenonline.com/ez
         | 
| 117 82 | 
             
            licenses:
         | 
| @@ -133,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 133 98 | 
             
                  version: '0'
         | 
| 134 99 | 
             
            requirements: []
         | 
| 135 100 | 
             
            rubyforge_project: 
         | 
| 136 | 
            -
            rubygems_version: 2. | 
| 101 | 
            +
            rubygems_version: 2.5.1
         | 
| 137 102 | 
             
            signing_key: 
         | 
| 138 103 | 
             
            specification_version: 4
         | 
| 139 104 | 
             
            summary: For educational purposes only.
         | 
    
        data/lib/ez/apis.rb
    DELETED
    
    | @@ -1,26 +0,0 @@ | |
| 1 | 
            -
            require 'json'
         | 
| 2 | 
            -
            require 'open-uri'
         | 
| 3 | 
            -
             | 
| 4 | 
            -
            module EZ
         | 
| 5 | 
            -
             | 
| 6 | 
            -
              def self.weather(location = 'Evanston, IL')
         | 
| 7 | 
            -
                # Only cache up to 30 locations to avoid abuse
         | 
| 8 | 
            -
                @wx = {} unless @wx && @wx.keys.count < 30
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                # Cache based on location
         | 
| 11 | 
            -
                @wx[location] ||= begin
         | 
| 12 | 
            -
                  puts "Getting the current weather from openweathermap.org..."
         | 
| 13 | 
            -
                  wx = from_api("http://api.openweathermap.org/data/2.5/weather?q=#{location}&units=imperial")
         | 
| 14 | 
            -
                  @wx[location] = wx[:main]
         | 
| 15 | 
            -
                end
         | 
| 16 | 
            -
             | 
| 17 | 
            -
              end
         | 
| 18 | 
            -
             | 
| 19 | 
            -
              def self.from_api(uri_string)
         | 
| 20 | 
            -
                uri = URI.parse(URI.escape(uri_string))
         | 
| 21 | 
            -
                string = open(uri).read
         | 
| 22 | 
            -
                JSON.parse(string, symbolize_names: true)
         | 
| 23 | 
            -
              end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
            end
         | 
| 26 | 
            -
             | 
    
        data/lib/ez/controller.rb
    DELETED
    
    | @@ -1,19 +0,0 @@ | |
| 1 | 
            -
            module ActionController
         | 
| 2 | 
            -
              class Base
         | 
| 3 | 
            -
             | 
| 4 | 
            -
                if Rails.env.development?
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                  # before_action :ez_update_tables
         | 
| 7 | 
            -
             | 
| 8 | 
            -
                  def ez_update_tables
         | 
| 9 | 
            -
                    Rails.cache.fetch('ez-generate-yml') do
         | 
| 10 | 
            -
                      EZ::DomainModeler.generate_models_yml
         | 
| 11 | 
            -
                    end
         | 
| 12 | 
            -
                    EZ::DomainModeler.update_tables(true)
         | 
| 13 | 
            -
                    EZ::DomainModeler.dump_schema
         | 
| 14 | 
            -
                  end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
                end
         | 
| 17 | 
            -
             | 
| 18 | 
            -
              end
         | 
| 19 | 
            -
            end
         | 
    
        data/lib/ez/dispatcher.rb
    DELETED
    
    | @@ -1,28 +0,0 @@ | |
| 1 | 
            -
            # require_relative './jeff_controller.rb'
         | 
| 2 | 
            -
             | 
| 3 | 
            -
            # module ActionDispatch
         | 
| 4 | 
            -
            #   module Routing
         | 
| 5 | 
            -
            #     class RouteSet
         | 
| 6 | 
            -
            #       class Dispatcher
         | 
| 7 | 
            -
            #         def controller(params, default_controller=true)
         | 
| 8 | 
            -
            #           if params && params.key?(:controller)
         | 
| 9 | 
            -
            #             controller_param = params[:controller]
         | 
| 10 | 
            -
            #             controller_reference(controller_param)
         | 
| 11 | 
            -
            #           end
         | 
| 12 | 
            -
            #         rescue NameError => e
         | 
| 13 | 
            -
            #           raise ActionController::RoutingError, e.message, e.backtrace if default_controller
         | 
| 14 | 
            -
            #         end
         | 
| 15 | 
            -
             | 
| 16 | 
            -
            #         def controller_reference(controller_param)
         | 
| 17 | 
            -
            #           begin
         | 
| 18 | 
            -
            #             const_name = @controller_class_names[controller_param] ||= "#{controller_param.camelize}Controller"
         | 
| 19 | 
            -
            #             ActiveSupport::Dependencies.constantize(const_name)
         | 
| 20 | 
            -
            #           rescue NameError => e
         | 
| 21 | 
            -
            #             Kernel.class_eval("class ::#{const_name} < ApplicationController; end")
         | 
| 22 | 
            -
            #             ActiveSupport::Dependencies.constantize("::#{const_name}")
         | 
| 23 | 
            -
            #           end
         | 
| 24 | 
            -
            #         end
         | 
| 25 | 
            -
            #       end
         | 
| 26 | 
            -
            #     end
         | 
| 27 | 
            -
            #   end
         | 
| 28 | 
            -
            # end
         |