grape_bunch 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: d5302ebbefbc5b59c4919bc823f8af23880894d1
4
- data.tar.gz: ef7eb3a2fdfaeaa49249219d7a585d1b1b3a01fc
3
+ metadata.gz: b4045a9c2ad1c96eda572a6c08a23984f7cb593f
4
+ data.tar.gz: 64be5181757d0c741804470dd5aaaa9da5d090d7
5
5
  SHA512:
6
- metadata.gz: a58f9d48428606b1bc01b0afaa868cb80db27d3eebef55adad84b5bd7074cfd8394c1f680e18c16fce4e16196730c5cfcb5998cb5abad0878affc5e5b4180105
7
- data.tar.gz: c8fcf6e12e7dd87d72d7edc1dad2d81e0756f9162926fec9b57f6458fddddb1eda3dd78c9a45f6f13cea8d9b1c8a0b65542fe764f6fb5fd5ba82925a0ad791db
6
+ metadata.gz: 54e22e5bb11aa45e2c6174f6787729df4c5baacbb267d0f320f8ff0fdde13287914eb2204a1b30eea1f4df1ed3f5f4b660f96ad1ca918d1bcf671c1cc7cbb1a2
7
+ data.tar.gz: 7460141525bdf485c81f0ba4fac9ec01b4b2a10cbb95691e385ff2c4a9400a3efb00ebcc27a93280770e4f3d5a7a12e4734e150b3433f7889aa0cfce5f06e7cb
@@ -0,0 +1,43 @@
1
+ require 'rails/generators/active_record'
2
+ require 'generators/grape_bunch/orm_helpers'
3
+
4
+ module ActiveRecord
5
+ module Generators
6
+ class GrapeBunchGenerator < ActiveRecord::Generators::Base
7
+ argument :attributes, type: :array, default: [], banner: "field:type field:type"
8
+
9
+ include GrapeBunch::Generators::OrmHelpers
10
+
11
+ source_root File.expand_path("../templates", __FILE__)
12
+
13
+ def copy_grape_bunch_migration
14
+ if (behavior == :invoke && model_exists?) || (behavior == :revoke && migration_exists?(table_name))
15
+ migration_template "migration_existing.rb", "db/migrate/add_grape_bunch_to_#{table_name}.rb", migration_version: migration_version
16
+ else
17
+ migration_template "migration.rb", "db/migrate/grape_bunch_create_#{table_name}.rb", migration_version: migration_version
18
+ end
19
+ end
20
+
21
+ def generate_model
22
+ invoke "active_record:model", [name], migration: false unless model_exists? && behavior == :invoke
23
+ end
24
+
25
+ def migration_data
26
+ <<RUBY
27
+ t.string :email, null: false, default: ""
28
+ RUBY
29
+ end
30
+
31
+ def rails5?
32
+ Rails.version.start_with? '5'
33
+ end
34
+
35
+
36
+ def migration_version
37
+ if rails5?
38
+ "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]"
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,15 @@
1
+ class GrapeBunchCreate<%= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :<%= table_name %> do |t|
4
+ <%= migration_data -%>
5
+
6
+ <% attributes.each do |attribute| -%>
7
+ t.<%= attribute.type %> :<%= attribute.name %>
8
+ <% end -%>
9
+
10
+ t.timestamps null: false
11
+ end
12
+
13
+ add_index :<%= table_name %>, :email, unique: true
14
+ end
15
+ end
@@ -0,0 +1,17 @@
1
+ class AddGrapeBunchTo<%= table_name.camelize %> < ActiveRecord::Migration<%= migration_version %>
2
+ def self.up
3
+ change_table :<%= table_name %> do |t|
4
+ <%= migration_data -%>
5
+
6
+ <% attributes.each do |attribute| -%>
7
+ t.<%= attribute.type %> :<%= attribute.name %>
8
+ <% end -%>
9
+ end
10
+
11
+ add_index :<%= table_name %>, :email, unique: true
12
+ end
13
+
14
+ def self.down
15
+ raise ActiveRecord::IrreversibleMigration
16
+ end
17
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails/generators/named_base'
2
+
3
+ module GrapeBunch
4
+ module Generators
5
+ class GrapeBunchGenerator < Rails::Generators::NamedBase
6
+ include Rails::Generators::ResourceHelpers
7
+
8
+ namespace "grape_bunch"
9
+ source_root File.expand_path("../templates", __FILE__)
10
+
11
+ desc "Generates a model with the given NAME (if one does not exist) with grape_bunch " <<
12
+ "configuration plus a migration file and grape_bunch routes."
13
+
14
+ hook_for :orm
15
+
16
+ # def add_grape_bunch_routes
17
+ # grape_bunch_route = "grape_bunch_for :#{plural_name}"
18
+ # grape_bunch_route << %Q(, class_name: "#{class_name}") if class_name.include?("::")
19
+ # grape_bunch_route << %Q(, skip: :all) unless options.routes?
20
+ # route grape_bunch_route
21
+ # end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ module GrapeBunch
2
+ module Generators
3
+ module OrmHelpers
4
+ def model_exists?
5
+ File.exist?(File.join(destination_root, model_path))
6
+ end
7
+
8
+ def migration_exists?(table_name)
9
+ Dir.glob("#{File.join(destination_root, migration_path)}/[0-9]*_*.rb").grep(/\d+_add_grape_bunch_to_#{table_name}.rb$/).first
10
+ end
11
+
12
+ def migration_path
13
+ @migration_path ||= File.join("db", "migrate")
14
+ end
15
+
16
+ def model_path
17
+ @model_path ||= File.join("app", "models", "#{file_path}.rb")
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module GrapeBunch
2
- VERSION = "0.0.3".freeze
2
+ VERSION = "0.0.4".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: grape_bunch
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
  - Mykyta Troianov
@@ -100,10 +100,15 @@ executables: []
100
100
  extensions: []
101
101
  extra_rdoc_files: []
102
102
  files:
103
+ - lib/generators/active_record/grape_bunch_generator.rb
104
+ - lib/generators/active_record/templates/migration.rb
105
+ - lib/generators/active_record/templates/migration_existing.rb
106
+ - lib/generators/grape_bunch/grape_bunch_generator.rb
103
107
  - lib/generators/grape_bunch/install_generator.rb
108
+ - lib/generators/grape_bunch/orm_helpers.rb
104
109
  - lib/grape_bunch.rb
105
110
  - lib/grape_bunch/version.rb
106
- homepage: https://github.com/NickTroy/grape_bunch
111
+ homepage: https://gitlab.com/NickTroy/grape_bunch.git
107
112
  licenses:
108
113
  - MIT
109
114
  metadata: {}