blueprinter-rb 1.1.1 → 1.1.2

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.
@@ -3,39 +3,31 @@
3
3
  module Blueprinter
4
4
  module Generators
5
5
  class BlueprintGenerator < ::Rails::Generators::NamedBase
6
- desc "Generates blueprint for ActiveRecord model with the given NAME."
6
+ desc 'Generates blueprint for ActiveRecord model with the given NAME.'
7
7
 
8
8
  attr_accessor :options
9
9
 
10
- source_root File.expand_path("../templates", __FILE__)
10
+ source_root File.expand_path('templates', __dir__)
11
11
 
12
+ class_option :blueprints_dir, default: 'app/blueprints', desc: 'path to new blueprint', aliases: '-d'
12
13
 
14
+ class_option :identifier, default: nil,
15
+ desc: 'Add an identifer to the generated blueprint, either uses :id or your specified value', aliases: '-i', banner: 'id'
13
16
 
14
- class_option :blueprints_dir, default: "app/blueprints", desc: "path to new blueprint", aliases: "-d"
17
+ class_option :fields, type: :array, default: [], desc: 'Manually add specified fields'
15
18
 
19
+ class_option :detect_fields, type: :boolean, default: false,
20
+ desc: 'Introspect on the model to set fields in the generated blueprint. Will be merged with any manually specified'
16
21
 
22
+ class_option :associations, type: :array, default: [], desc: 'Manually add specified associations', aliases: '-a'
17
23
 
18
- class_option :identifier, default: nil, desc: "Add an identifer to the generated blueprint, either uses :id or your specified value", aliases: "-i", banner: "id"
19
-
20
-
21
-
22
- class_option :fields, type: :array, default: [], desc: "Manually add specified fields"
23
-
24
- class_option :detect_fields, type: :boolean, default: false, desc: "Introspect on the model to set fields in the generated blueprint. Will be merged with any manually specified"
25
-
26
-
27
-
28
- class_option :associations, type: :array, default: [], desc: "Manually add specified associations", aliases: "-a"
29
-
30
- class_option :detect_associations, type: :boolean, default: false, desc: "Introspect on the model to set associations in the generated blueprint. Will be merged with any manually specified"
31
-
32
-
33
-
34
- class_option :wrap_at, type: :numeric, default: 80, desc: "Maximum length of generated fields line", aliases: "-w"
35
-
36
- class_option :indentation, type: :string, default: "two", desc: "Indentation of generated file", banner: "two|four|tab"
24
+ class_option :detect_associations, type: :boolean, default: false,
25
+ desc: 'Introspect on the model to set associations in the generated blueprint. Will be merged with any manually specified'
37
26
 
27
+ class_option :wrap_at, type: :numeric, default: 80, desc: 'Maximum length of generated fields line', aliases: '-w'
38
28
 
29
+ class_option :indentation, type: :string, default: 'two', desc: 'Indentation of generated file',
30
+ banner: 'two|four|tab'
39
31
 
40
32
  remove_class_option :skip_namespace
41
33
 
@@ -44,30 +36,28 @@ module Blueprinter
44
36
  end
45
37
 
46
38
  def create_blueprint
47
- template "blueprint.rb", File.join(path, "#{file_path}_blueprint.rb")
39
+ template 'blueprint.rb', File.join(path, "#{file_path}_blueprint.rb")
48
40
  end
49
41
 
50
-
51
-
52
42
  private
53
43
 
54
44
  def path
55
- options["blueprints_dir"]
45
+ options['blueprints_dir']
56
46
  end
57
47
 
58
48
  def identifier_symbol
59
- if options['identifier']
60
- options['identifier'] == "identifier" ? :id : options['identifier']
61
- end
49
+ return unless options['identifier']
50
+
51
+ options['identifier'] == 'identifier' ? :id : options['identifier']
62
52
  end
63
53
 
64
54
  def fields
65
- fs = if options["detect_fields"]
66
- Array.new(options["fields"]).concat(introspected_fields)
55
+ fs = if options['detect_fields']
56
+ Array.new(options['fields']).concat(introspected_fields)
67
57
  else
68
- options["fields"]
58
+ options['fields']
69
59
  end
70
- fs.reject {|f| f.blank? }.uniq
60
+ fs.reject(&:blank?).uniq
71
61
  end
72
62
 
73
63
  def introspected_fields
@@ -77,30 +67,29 @@ module Blueprinter
77
67
  # split at wrap_at chars, two indentations
78
68
  def formatted_fields
79
69
  two_indents = indent * 2
80
- fields_string = fields.reduce([]) do |memo, f|
81
- if !memo.last.nil?
70
+ fields_string = fields.each_with_object([]) do |f, memo|
71
+ if memo.last.nil?
72
+ memo << " :#{f},"
73
+ else
82
74
  now = "#{memo.last} :#{f},"
83
- if now.length > options["wrap_at"].to_i
75
+ if now.length > options['wrap_at'].to_i
84
76
  memo << ":#{f},"
85
77
  else
86
78
  memo[memo.length - 1] = now
87
79
  end
88
- else
89
- memo << " :#{f},"
90
80
  end
91
- memo
92
81
  end.join("\n#{two_indents}")
93
82
 
94
- fields_string[0,fields_string.length - 1]
83
+ fields_string[0, fields_string.length - 1]
95
84
  end
96
85
 
97
86
  def associations
98
- as = if options["detect_associations"]
99
- Array.new(options["associations"]).concat(introspected_associations.keys)
87
+ as = if options['detect_associations']
88
+ Array.new(options['associations']).concat(introspected_associations.keys)
100
89
  else
101
- options["associations"]
90
+ options['associations']
102
91
  end
103
- as.reject {|f| f.blank? }.uniq
92
+ as.reject(&:blank?).uniq
104
93
  end
105
94
 
106
95
  def introspected_associations
@@ -114,15 +103,13 @@ module Blueprinter
114
103
  def association_class(association_name)
115
104
  introspected_name = if introspected_associations[association_name].respond_to?(:klass)
116
105
  introspected_associations[association_name].klass.to_s
117
- else
118
- nil
119
106
  end
120
107
  "#{introspected_name || association_name.camelcase}Blueprint"
121
108
  end
122
109
 
123
110
  def indent
124
- user_intended = {two: " ", four: " ", tab:"\t"}[options["indentation"].intern]
125
- user_intended.nil? ? " " : user_intended
111
+ user_intended = { two: ' ', four: ' ', tab: "\t" }[options['indentation'].intern]
112
+ user_intended.nil? ? ' ' : user_intended
126
113
  end
127
114
  end
128
115
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueprinter-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ritikesh G
@@ -38,121 +38,9 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.4'
41
- - !ruby/object:Gem::Dependency
42
- name: factory_bot
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '6.2'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '6.2'
55
- - !ruby/object:Gem::Dependency
56
- name: pry
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.14'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.14'
69
- - !ruby/object:Gem::Dependency
70
- name: activerecord
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- version: '5.2'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - ">="
81
- - !ruby/object:Gem::Version
82
- version: '5.2'
83
- - !ruby/object:Gem::Dependency
84
- name: rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '3.12'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '3.12'
97
- - !ruby/object:Gem::Dependency
98
- name: rspec-rails
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '6.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '6.0'
111
- - !ruby/object:Gem::Dependency
112
- name: sqlite3
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '1.5'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '1.5'
125
- - !ruby/object:Gem::Dependency
126
- name: yard
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0.9'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '0.9'
139
- - !ruby/object:Gem::Dependency
140
- name: ammeter
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '1.1'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '1.1'
153
41
  description: Blueprinter is a JSON Object Presenter for Ruby that takes business objects
154
- and breaks them down into simple hashes and serializes them to JSON. It can be used
155
- in Rails in place of other serializers (like JBuilder or ActiveModelSerializers).
42
+ and breaksthem down into simple hashes and serializes them to JSON. It can be used
43
+ in Rails in place of otherserializers (like JBuilder or ActiveModelSerializers).
156
44
  It is designed to be simple, direct, and performant.
157
45
  email:
158
46
  - ritikeshsisodiya@gmail.com
@@ -161,6 +49,7 @@ extensions: []
161
49
  extra_rdoc_files: []
162
50
  files:
163
51
  - MIT-LICENSE
52
+ - README.md
164
53
  - lib/blueprinter.rb
165
54
  - lib/blueprinter/base.rb
166
55
  - lib/blueprinter/blueprinter_error.rb
@@ -186,7 +75,8 @@ files:
186
75
  homepage: https://github.com/blueprinter-ruby/blueprinter
187
76
  licenses:
188
77
  - MIT
189
- metadata: {}
78
+ metadata:
79
+ rubygems_mfa_required: 'true'
190
80
  post_install_message:
191
81
  rdoc_options: []
192
82
  require_paths: