ez 0.7.0 → 0.8.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4fb76e812c1c8a823944c1b3739906c36fa395a
4
- data.tar.gz: 0309598ee5234909aa392de6c48a3a030dc6c151
3
+ metadata.gz: 030d63b20bce2d402a1c86b25d29347a8f054148
4
+ data.tar.gz: 9a2769fc8082c0f6e91777742d8cf17f30f4efaa
5
5
  SHA512:
6
- metadata.gz: dfbdadcad0ee1cecd738f78d904d92d7bb492cbbd6d268ca6ac6d7f79a74335c2bbb454685c2cc8a7b781a0a2b23646fa8982a301027bf1e842cca929fafb20a
7
- data.tar.gz: bb52d3f9716aa14f7fe293eee59420963c840088da74922518272d6890120e8279349b1fe50653cb8b5d2b8794d0963d2c238ca5df578668a764e0602cc342f1
6
+ metadata.gz: d8faeaa0c83a003fe4dae72571b8dba53e5dab4b1b2dd7b52615a702df0b4e592f5a5d1c2adb2431890309fd085b37f38b2b43cf616781b8f3a4fbd75b4a7871
7
+ data.tar.gz: 6374410d74cf294069485f1d09192f83cb66deb8ade16b250f6c771342af008e4f7d1861e1a95c8268fb4fd0d330f13ca89d08f671a269e1383ed66bd84dd4a3
data/README.md CHANGED
@@ -25,8 +25,13 @@ gem 'ez', group: 'development'
25
25
 
26
26
  * Run `rake ez:generate_yml` to generate a file named `db/models.yml`. It will have some self-documenting comments inside of it. This file is also automatically generated if you run `rake ez:tables` without an existing `models.yml` first.
27
27
  * Enables instant modeling without migrations via `models.yml` and `rake ez:tables`. If things get messed up, use `rake ez:reset_tables` to drop the entire db first.
28
+ * Columns default to type `string` if none is provided and the column name doesn't have a recognized suffix.
29
+ * Column names ending in `_id` are assumed to be of type `integer`.
30
+ * Column names ending in `_at` are assumed to be of type `datetime`.
31
+ * Column names ending in `_on` are assumed to be of type `date`.
32
+ * Boolean columns are assumed to be given a default of `false`.
28
33
  * Adds ActiveRecord::Base `.read` method to provide symmetry with `.create`, `.update`, and `.delete`
29
- * Adds ActiveRecord::Base `.sample` method to choose a random row
34
+ * Adds ActiveRecord::Base `.sample` method to choose a random row.
30
35
 
31
36
  ### 4. Controller and View Enhancements
32
37
 
@@ -34,6 +39,3 @@ gem 'ez', group: 'development'
34
39
  * 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`.
35
40
  * Adds controller and view helpers `current_user`, `user_signed_in?`, `sign_in_as`, and `sign_out` to avoid cookies/session hash details
36
41
  * Adds view helper `map` to display a quick static map of any address. Example: `<%= map('Millenium Park, Chicago, IL') %>`
37
-
38
-
39
-
data/lib/ez.rb CHANGED
@@ -6,15 +6,18 @@ require 'ez/domain_modeler.rb'
6
6
  require 'ez/controller.rb'
7
7
  require 'ez/model.rb'
8
8
  require 'ez/view_helpers.rb'
9
+ require 'hirb'
9
10
 
10
11
  module EZ
11
12
  class Railtie < Rails::Railtie
12
13
  rake_tasks do
13
14
  load "tasks/ez_tasks.rake"
14
15
  end
16
+
15
17
  console do
16
18
  Hirb.enable if defined?(Hirb)
17
19
 
20
+
18
21
  I18n.enforce_available_locales = false
19
22
  puts "Welcome to the Rails Console."
20
23
  puts "-" * 60
@@ -26,7 +29,7 @@ module EZ
26
29
  puts
27
30
  puts "Models: #{models.to_sentence}"
28
31
  puts
29
- puts "HINTS: "
32
+ puts "HINTS:"
30
33
  puts "* Type 'exit' (or press Ctrl-D) to when you're done."
31
34
  puts "* Press Ctrl-C if things seem to get stuck."
32
35
  puts "* Use the up/down arrows to repeat commands."
@@ -42,6 +45,14 @@ module EZ
42
45
  include EZ::ViewHelpers
43
46
  end
44
47
 
48
+ # tables = ActiveRecord::Base.connection.tables - ['schema_migrations']
49
+ # models.each { |m| m.constantize.magic_associations }
50
+ # Rails.application.routes.draw do
51
+ # tables.each do |table_name|
52
+ # resources table_name.to_sym
53
+ # end
54
+ # end
55
+
45
56
  module ::Hirb
46
57
  # A Formatter object formats an output object (using Formatter.format_output) into a string based on the views defined
47
58
  # for its class and/or ancestry.
@@ -23,7 +23,15 @@ module EZ
23
23
  @spec[model] = []
24
24
  columns.each do |column|
25
25
  if column.is_a?(String) || column.is_a?(Symbol)
26
- @spec[model] << { column.to_s => 'string' }
26
+ if column.to_s =~ /_id$/
27
+ @spec[model] << { column.to_s => 'integer' }
28
+ elsif column.to_s =~ /_at$/
29
+ @spec[model] << { column.to_s => 'datetime' }
30
+ elsif column.to_s =~ /_on$/
31
+ @spec[model] << { column.to_s => 'date' }
32
+ else
33
+ @spec[model] << { column.to_s => 'string' }
34
+ end
27
35
  elsif column.is_a?(Hash) && column.keys.count == 1
28
36
  @spec[model] << { column.keys.first.to_s => column.values.first.to_s }
29
37
  else
@@ -1,5 +1,15 @@
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
+
3
13
  def inspect
4
14
  "#<#{self.class.name} #{attributes}>"
5
15
  end
@@ -1,3 +1,3 @@
1
1
  module EZ
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.6"
3
3
  end
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: 0.7.0
4
+ version: 0.8.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Cohen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-14 00:00:00.000000000 Z
11
+ date: 2014-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hirb