api_scaffolding 1.0.3.1 → 1.1.1

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
  SHA256:
3
- metadata.gz: 9cf16a7cedbb1200b634e5b8c4e1a73c6b47931d6902bfebe6d95f54464de262
4
- data.tar.gz: 8bc2cead74432092c135b3f25ac0be29671b4cf8b311ef00b374c3b9f3483f44
3
+ metadata.gz: 05d4177d0d1647c9e33fabad826541f3cb421bc81911ef060e7d692b318e9149
4
+ data.tar.gz: a10eb54c5361723f8f9b1a95b5d41bc7419930fc644bd6493f2b56791aed9726
5
5
  SHA512:
6
- metadata.gz: f86d9eafb4a861573437f01e3b6230022da1d6ff97ccb0fe3806b04a7f0547d760a07970e81731acc410870f8379ad0177aa4d9c037dc140a14e07b43fac1d42
7
- data.tar.gz: 88c3120719bbcaf1ae49c5753b19ada845425f7c70bde3a9cd64fb7be58ec7e1d362389fedcbfe6eb3736b13abde8c1b439b718beab9988c4860dc501bb05cc8
6
+ metadata.gz: cc79b1f74e70b0e2a1defb1796b4fb9eba2f0dde4727b4f8b5db2e6b7bcdee3245d2b268a9a46df05c3084f56731b9f44e76b475113b5ba13210118438768723
7
+ data.tar.gz: 21f68f28a0932a22331a4aeb7577584582bf51904ba136aa7c9c09990783fc1f668343dbe13209f0bcbb9326236854ea653add6de1a88232d76052267a76e4b6
@@ -29,7 +29,7 @@ module ApiScaffold
29
29
  model.columns.map do |column|
30
30
  next if %w[name].exclude?(column.name)
31
31
 
32
- entity_field(column)
32
+ entity_field(column).force_encoding(Encoding::BINARY)
33
33
  end.compact.join(fields_separator)
34
34
  end
35
35
 
@@ -38,29 +38,40 @@ module ApiScaffold
38
38
  model.columns.map do |column|
39
39
  next if ApiScaffolding.config.entity_fields_exclusions.include?(column.name)
40
40
 
41
- entity_field(column)
41
+ entity_field(column).force_encoding(Encoding::BINARY)
42
42
  end.compact.join(fields_separator)
43
43
  end
44
44
 
45
45
  def fields_separator
46
46
  # разделение полей в генерируемом файле
47
- "\n" + (' ' * 4)
47
+ "\n\n" + (' ' * 4)
48
48
  end
49
49
 
50
50
  def entity_field(column)
51
+ # разделение для форматирования поля
52
+ separator = "\n" + (' ' * 11)
53
+
54
+ # описание поля
55
+ desc = column.comment
56
+ if column.type == :enum
57
+ desc += " (enum: #{column.sql_type})"
58
+ end
59
+
51
60
  case column.type
52
- when :string, :enum
53
- "expose :#{column.name}"
61
+ when :string
62
+ "expose :#{column.name},#{separator}documentation: { desc: '#{desc}' }"
63
+ when :enum
64
+ "expose :#{column.name},#{separator}documentation: { values: #{model}.#{column.name.pluralize}.values, desc: '#{desc}' }"
54
65
  when :integer
55
- "expose :#{column.name}, documentation: { type: 'Integer' }"
66
+ "expose :#{column.name},#{separator}documentation: { type: 'Integer', desc: '#{desc}' }"
56
67
  when :float
57
- "expose :#{column.name}, documentation: { type: 'Float' }"
68
+ "expose :#{column.name},#{separator}documentation: { type: 'Float', desc: '#{desc}' }"
58
69
  when :decimal
59
- "expose :#{column.name}, documentation: { type: 'Float', values: [#{decimal_example(column)}] }"
70
+ "expose :#{column.name},#{separator}documentation: { type: 'Float', values: [#{decimal_example(column)}], desc: '#{desc}' }"
60
71
  when :date
61
- "expose :#{column.name}, documentation: { type: 'Date' }"
72
+ "expose :#{column.name},#{separator}documentation: { type: 'Date', desc: '#{desc}' }"
62
73
  when :boolean
63
- "expose :#{column.name}, documentation: { type: 'Boolean' }"
74
+ "expose :#{column.name},#{separator}documentation: { type: 'Boolean', desc: '#{desc}' }"
64
75
  end
65
76
  end
66
77
 
@@ -37,11 +37,16 @@ module ApiScaffold
37
37
  when :decimal
38
38
  'Float'
39
39
  else
40
- column.type.capitalize
40
+ column.type.to_s.capitalize
41
41
  end
42
42
 
43
43
  # базовая строка
44
- line = "optional :#{column.name}, type: #{type}"
44
+ line = "optional :#{column.name}"
45
+
46
+ # добавление типа
47
+ if type != 'String'
48
+ line += ", type: #{type}"
49
+ end
45
50
 
46
51
  # добавление возможных значений enum
47
52
  if column.type == :enum
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api_scaffolding
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3.1
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Павел Бабин
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-31 00:00:00.000000000 Z
11
+ date: 2024-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: faker
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '3.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '6.0'
26
+ version: '3.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: grape
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -53,19 +53,19 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: 1.0.0
55
55
  - !ruby/object:Gem::Dependency
56
- name: faker
56
+ name: rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: '6.0'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: '6.0'
69
69
  description: Генерация контроллеров API и модулей с параметрами Grape и Grape Entity
70
70
  email: babin359@gmail.com
71
71
  executables: []