who_am_i 0.0.3 → 0.0.4

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: 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