who_am_i 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cd78ba2e07002c41c67d3d85128e49b1bcd40b1b
4
- data.tar.gz: 4998e54c08a6a47deed886df900ca7f6d84b3a36
3
+ metadata.gz: 288863730bbd33ec0a782b65eb247bf38d8c7d38
4
+ data.tar.gz: 27ac823f61dfecff9099f5da67aa11449d521ca0
5
5
  SHA512:
6
- metadata.gz: df44e63b4e02bf2196a61304eb0a4e93dce311df8ce4e5784582cfe17309a10bdbf0e1a07995b29edd94c90a6af5175e4a28cca97716a88f2d23f83780857a66
7
- data.tar.gz: 1dee087a0dfb42f29f514e9d9c10c407ce13439b7396bff1a8f9d828d0112b7c38e06c825663b0912c9139fc8bbda4825fa27d170298c041b72df6ce6609d7e6
6
+ metadata.gz: dc4b1779e3649746e7d4de71bbfa5235166bdfea8c1af754fd6c446f6546d75dbffa80d1ec8f979bb61ec15b10dcedfe042dcf2a5ace1942cdb346a6fef491db
7
+ data.tar.gz: 5699729dd05db062fa99a7b4bc40dbab2cd8215dd9e9e057e3ea6ced5d52a209e6ab85c602a14dec5a690b198f539b011c394d8523772a980da37ae7e8052f90
data/README.md CHANGED
@@ -23,7 +23,7 @@ Add this line to your application's Gemfile:
23
23
 
24
24
  ```ruby
25
25
  group :development do
26
- gem "who_am_i", require: false
26
+ gem "who_am_i"
27
27
  end
28
28
  ```
29
29
 
@@ -31,21 +31,13 @@ And then execute:
31
31
 
32
32
  $ bundle
33
33
 
34
- In your `Rakefile`:
35
-
36
- ```ruby
37
- require "who_am_i/rake"
38
-
39
- # ...
40
- # after `Rails.application.load_tasks`
41
- WhoAmI.load_rake_tasks
42
- ```
43
-
44
34
 
45
35
  ## Usage
46
36
 
47
37
  Run `rake who_am_i` to update your model files.
48
38
 
39
+ By default, `who_am_i` also runs after migrating your database.
40
+
49
41
 
50
42
  ## Development
51
43
 
@@ -0,0 +1,9 @@
1
+ module WhoAmI
2
+ class Railtie < Rails::Railtie
3
+ railtie_name :who_am_i
4
+
5
+ rake_tasks do
6
+ load "who_am_i/tasks.rake"
7
+ end
8
+ end
9
+ end
@@ -1,8 +1,8 @@
1
1
  module WhoAmI
2
2
  class TableColumnInfo
3
- def initialize(basic_model_class:, column:)
4
- @basic_model_class = basic_model_class
3
+ def initialize(table_name:, column:)
5
4
  @column = column
5
+ @primary_key = ActiveRecord::Base.get_primary_key(@table_name)
6
6
  end
7
7
 
8
8
  def name
@@ -27,11 +27,11 @@ module WhoAmI
27
27
  end
28
28
 
29
29
  def primary_key?
30
- case @basic_model_class.primary_key
30
+ case @primary_key
31
31
  when Array
32
- @basic_model_class.primary_key.include?(name)
32
+ @primary_key.include?(name)
33
33
  when String
34
- @basic_model_class.primary_key == name
34
+ @primary_key == name
35
35
  else
36
36
  false
37
37
  end
@@ -8,24 +8,18 @@ module WhoAmI
8
8
 
9
9
  def columns
10
10
  @columns ||=
11
- basic_model_class.columns.map do |column|
12
- TableColumnInfo.new(basic_model_class: basic_model_class, column: column)
11
+ begin
12
+ columns_hash =
13
+ ActiveRecord::Base.connection.schema_cache.columns_hash(@table_name)
14
+
15
+ columns_hash.values.map do |column|
16
+ TableColumnInfo.new(table_name: @table_name, column: column)
17
+ end
13
18
  end
14
19
  end
15
20
 
16
21
  def indices
17
- @indices ||=
18
- basic_model_class.connection.indexes(@table_name)
19
- end
20
-
21
- private
22
-
23
- def basic_model_class
24
- @basic_model_class ||=
25
- begin
26
- table = @table_name
27
- Class.new(ActiveRecord::Base) { self.table_name = table }
28
- end
22
+ @indices ||= ActiveRecord::Base.connection.indexes(@table_name)
29
23
  end
30
24
  end
31
25
  end
@@ -1,3 +1,3 @@
1
1
  module WhoAmI
2
- VERSION = "0.0.3".freeze
2
+ VERSION = "0.0.4".freeze
3
3
  end
data/lib/who_am_i.rb CHANGED
@@ -32,3 +32,7 @@ require "who_am_i/function/resolve_table"
32
32
  require "who_am_i/function/compute_comment"
33
33
  require "who_am_i/function/compute_content"
34
34
  require "who_am_i/function/write_model"
35
+
36
+ if defined?(Rails)
37
+ require "who_am_i/railtie"
38
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: who_am_i
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zach Ahn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-01-08 00:00:00.000000000 Z
11
+ date: 2018-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -248,7 +248,7 @@ files:
248
248
  - lib/who_am_i/function/resolve_table.rb
249
249
  - lib/who_am_i/function/setup_environment.rb
250
250
  - lib/who_am_i/function/write_model.rb
251
- - lib/who_am_i/rake.rb
251
+ - lib/who_am_i/railtie.rb
252
252
  - lib/who_am_i/refinement/hash_dig.rb
253
253
  - lib/who_am_i/refinement/yield_self.rb
254
254
  - lib/who_am_i/table_column_info.rb
data/lib/who_am_i/rake.rb DELETED
@@ -1,6 +0,0 @@
1
- module WhoAmI
2
- def self.load_rake_tasks
3
- require "who_am_i"
4
- load(File.expand_path("tasks.rake", __dir__))
5
- end
6
- end