insights_export 0.1.2 → 0.2.0

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: 0b42d105de9ac7aaafa961ebf104a413760b091e
4
- data.tar.gz: d237aeba717b603cb8f4f6539d965603e9965d91
3
+ metadata.gz: 246b8d0d36e3a7edcfcefd0eee4905267b413bdf
4
+ data.tar.gz: 5130abb2f2042dfa39b67fd10183fd673ddce823
5
5
  SHA512:
6
- metadata.gz: 5b355b4cf31785b416a95ed9b834dcc6a1322e4494f13daa14193a0745ba5ce1ba3fd81294d88cdd928b5553f91ef140076d2200c1c2ca835e2cec406f9aedc9
7
- data.tar.gz: ed664c5367c7adb8bc614cf9b84bf643311f11dc6fa89dea42708645fa1a46ac7aae27a226b82711288ea94692ad58f083a1f1e97f9f33a990f12cb5d3b1c273
6
+ metadata.gz: f6317ec7dbd143bf3739a5d4757dd8470e8f93b09ae630d05b313c35545d36a45561fb99580f578596fca0f8a7e6d9906208ba3e23fa2e1e85e2132740e96229
7
+ data.tar.gz: b8174fbec18cb8090db116908fe8cab72e94ffbc8a0be8ff51e8701569f17e02f452b22c1dfa32335bfd31cc02b6da461e0fffd827f8cde4c916fb7aef54616c
data/README.md CHANGED
@@ -1,3 +1,23 @@
1
1
  # insights_export
2
2
 
3
- For use with [insights](https://github.com/mariusandra/insights)
3
+ For use with [insights](https://github.com/mariusandra/insights). Read the installation instructions [here](https://github.com/mariusandra/insights).
4
+
5
+ ## Configuration
6
+
7
+ To configure the gem, create a file like `config/initializers/insights_export.rb` with this content:
8
+
9
+ ```rb
10
+ InsightsExport.configure do |config|
11
+ # The path to the export file
12
+ # Defaults to "#{Rails.root}/config/insights.yml"
13
+ config.export_path = "#{Rails.root}/config/insights2.yml"
14
+
15
+ # Export only models in this list
16
+ # Array of strings to filter or blank to export all.
17
+ config.only_models = []
18
+
19
+ # Exclude these models from the export
20
+ # Array of strings to filter or blank to export all.
21
+ config.except_models = []
22
+ end
23
+ ```
@@ -0,0 +1,33 @@
1
+ module InsightsExport
2
+ class Configuration
3
+ # The path to the export file
4
+ # Defaults to "#{Rails.root}/config/insights.yml"
5
+ attr_accessor :export_path
6
+
7
+ # Export only models in this list
8
+ # Array of strings to filter or empty array to export all.
9
+ attr_accessor :only_models
10
+
11
+ # Exclude these models from the export
12
+ # Array of strings to filter or empty array to export all.
13
+ attr_accessor :except_models
14
+
15
+ def initialize
16
+ @export_path = "#{Rails.root}/config/insights.yml"
17
+ @only_models = []
18
+ @except_models = []
19
+ end
20
+ end
21
+
22
+ def self.configuration
23
+ @configuration ||= Configuration.new
24
+ end
25
+
26
+ def self.configuration=(config)
27
+ @configuration = config
28
+ end
29
+
30
+ def self.configure
31
+ yield configuration
32
+ end
33
+ end
@@ -1,7 +1,7 @@
1
1
  module InsightsExport
2
2
  class ExportModels
3
3
  def self.config_file
4
- "#{Rails.root}/config/insights.yml"
4
+ InsightsExport.configuration.export_path
5
5
  end
6
6
 
7
7
  def self.load
@@ -53,6 +53,20 @@ module InsightsExport
53
53
 
54
54
  models = ActiveRecord::Base.descendants
55
55
 
56
+ # models to include
57
+ only_models = InsightsExport.configuration.only_models
58
+ if only_models.present?
59
+ models = models.select { |m| m.to_s.in?(only_models) }
60
+ end
61
+
62
+ # models to exclude
63
+ except_models = InsightsExport.configuration.except_models
64
+ if except_models.present?
65
+ models = models.reject { |m| m.to_s.in?(except_models) }
66
+ end
67
+
68
+ model_strings = models.map(&:to_s)
69
+
56
70
  models.map do |model|
57
71
  begin
58
72
  columns_hash = model.columns_hash
@@ -102,6 +116,8 @@ module InsightsExport
102
116
  }
103
117
 
104
118
  model.reflections.each do |association_name, reflection|
119
+ next unless model_strings.include?(reflection.class_name)
120
+
105
121
  if reflection.macro == :belongs_to
106
122
  # reflection.class_name # User
107
123
  # reflection.foreign_key # user_id
@@ -1,3 +1,3 @@
1
1
  module InsightsExport
2
- VERSION = '0.1.2'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -1,3 +1,4 @@
1
+ require 'insights_export/configuration'
1
2
  require 'insights_export/export_models'
2
3
 
3
4
  require 'insights_export/railtie' if defined?(Rails)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: insights_export
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marius Andra
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-17 00:00:00.000000000 Z
11
+ date: 2017-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -36,6 +36,7 @@ files:
36
36
  - README.md
37
37
  - insights_export.gemspec
38
38
  - lib/insights_export.rb
39
+ - lib/insights_export/configuration.rb
39
40
  - lib/insights_export/export_models.rb
40
41
  - lib/insights_export/railtie.rb
41
42
  - lib/insights_export/version.rb