insights_export 0.1.2 → 0.2.0

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