rubypitaya 2.8.0 → 2.9.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
  SHA256:
3
- metadata.gz: 29b7ecc7e113e398e9295133b97a79f04af607848ba185db0005027af86b70c9
4
- data.tar.gz: 6ae5d8f4b78041e30bf8d362f443ce18a22bdc3fd1f909afb037622b9b4201b1
3
+ metadata.gz: 4a6575a4e72c2225e88a02e48a02265797958d1ba5aba36d017bd576fd071c09
4
+ data.tar.gz: b502c84808a5372a6f354f860d5fd673a790851bcff700964b4da24a96c0f50f
5
5
  SHA512:
6
- metadata.gz: 0a4209c6106cca1ecd8f88cb7dc6db0615c4bb3e1455d5b4319a986cb76c96a9359edd2f1189292724e64b2f8e4b38f5156854f2ba42476fa1fda9d4ae68c1b1
7
- data.tar.gz: 4fee00de34828c2810b64f4af518987c48963e5a9b48dd2e25b46accd31413b852e5f41ebcd55f989c467a342212c3f9888c07114147fee98371e18772497986
6
+ metadata.gz: 89b94ffafd69e7216559fcbbd6f55f81a431d4f357771d5ca595ad25a32fcb4e5f0427d5ec21db982ca97f65a19bd3a08b5293ec933e52bd5ac3bcd4c8f26a7e
7
+ data.tar.gz: 6701e279dc7173a1dde84870d2b3728554649a748f36eb2583d0f45b6d5d25432f19de88dc742351f85f8cd81c415fdea414170acbfabd245bcf3a6bbb26c727
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'rubypitaya'
4
4
 
5
- COMMANDS = ['run', 'create']
5
+ COMMANDS = ['run', 'create', 'create-migration']
6
6
 
7
7
  def main
8
8
  if ARGV.size == 0 || !COMMANDS.include?(ARGV[0])
@@ -19,6 +19,10 @@ def main
19
19
  if command == 'create'
20
20
  command_create(ARGV)
21
21
  end
22
+
23
+ if command == 'create-migration'
24
+ command_create_migration(ARGV)
25
+ end
22
26
  end
23
27
 
24
28
  def command_run(argv)
@@ -40,11 +44,25 @@ def command_create(argv)
40
44
  puts "Project #{project_name} created!"
41
45
  end
42
46
 
47
+ def command_create_migration(argv)
48
+ if argv.size <= 1
49
+ show_help_create_migration()
50
+ exit(-1)
51
+ end
52
+
53
+ migration_name = argv[1]
54
+
55
+ migration_file_name = RubyPitaya::RubyPitaya.create_migration(migration_name)
56
+
57
+ puts "Migration #{migration_file_name} created!"
58
+ end
59
+
43
60
  def show_help
44
61
  puts 'Usage: $ rubypitaya [COMMAND]'
45
62
  puts 'COMMAND:'
46
- puts ' run: - Run server'
47
- puts ' create: - Create project'
63
+ puts ' run: - Run server'
64
+ puts ' create: - Create project'
65
+ puts ' create-migration: - Create migration'
48
66
  puts ''
49
67
  end
50
68
 
@@ -53,4 +71,9 @@ def show_help_create
53
71
  puts ''
54
72
  end
55
73
 
74
+ def show_help_create_migration
75
+ puts 'Usage: $ rubypitaya create-migration [migration_name]'
76
+ puts ''
77
+ end
78
+
56
79
  main
@@ -1,3 +1,5 @@
1
+ require 'erb'
2
+ require 'ostruct'
1
3
  require 'fileutils'
2
4
 
3
5
  require 'rubypitaya/core/main'
@@ -16,5 +18,24 @@ module RubyPitaya
16
18
 
17
19
  FileUtils.cp_r app_template_path, project_path
18
20
  end
21
+
22
+ def self.create_migration(migration_name)
23
+ migration_name = "#{migration_name}_migration" unless migration_name.underscore.end_with?('migration')
24
+ migration_timestamp = Time.now.utc.to_i
25
+ migration_file_name = "#{migration_timestamp}_#{migration_name.underscore}.rb"
26
+ migration_class_name = migration_name.camelcase
27
+
28
+ template_struct = OpenStruct.new(
29
+ class_name: migration_class_name,
30
+ )
31
+
32
+ template = File.open(Path::MIGRATION_TEMPLATE_PATH, &:read)
33
+ template_result = ERB.new(template).result(template_struct.instance_eval { binding })
34
+
35
+ migration_file_path = File.join(Path::MIGRATIONS_FOLDER_PATH, migration_file_name)
36
+ File.open(migration_file_path, 'w') { |f| f.write(template_result) }
37
+
38
+ migration_file_name
39
+ end
19
40
  end
20
41
  end
@@ -1,6 +1,6 @@
1
1
  source "https://rubygems.org"
2
2
 
3
- gem 'rubypitaya', '2.8.0'
3
+ gem 'rubypitaya', '2.9.0'
4
4
 
5
5
  group :development do
6
6
  gem 'pry', '0.12.2'
@@ -69,7 +69,7 @@ GEM
69
69
  rspec-support (~> 3.8.0)
70
70
  rspec-support (3.8.3)
71
71
  ruby2_keywords (0.0.2)
72
- rubypitaya (2.8.0)
72
+ rubypitaya (2.9.0)
73
73
  activerecord (= 6.0.2)
74
74
  etcdv3 (= 0.10.2)
75
75
  eventmachine (= 1.2.7)
@@ -106,7 +106,7 @@ DEPENDENCIES
106
106
  listen (= 3.2.1)
107
107
  pry (= 0.12.2)
108
108
  rspec (= 3.8.0)
109
- rubypitaya (= 2.8.0)
109
+ rubypitaya (= 2.9.0)
110
110
 
111
111
  BUNDLED WITH
112
112
  1.17.2
@@ -28,6 +28,10 @@ console:
28
28
  bash:
29
29
  @docker-compose run --service-ports --rm rubypitaya bash
30
30
 
31
+ ## Create new migrgation. NAME=[migration-name]
32
+ create-migration:
33
+ @docker-compose run --service-ports --rm rubypitaya-console bundle exec rubypitaya create-migration $(NAME)
34
+
31
35
  ## Create database
32
36
  db-create:
33
37
  @docker-compose run --service-ports --rm rubypitaya bundle exec rake db:create
@@ -1,3 +1,5 @@
1
+ require 'rubypitaya/core/app/models/user'
2
+
1
3
  User.class_eval do
2
4
  # has_one :player
3
5
  end
@@ -6,18 +6,22 @@ require 'active_record'
6
6
  require 'rubypitaya'
7
7
  require 'rubypitaya/core/database_config'
8
8
 
9
+ # Database connection
9
10
  environment_name = ENV.fetch("RUBYPITAYA_ENV") { 'development' }
10
11
  database_config = RubyPitaya::DatabaseConfig.new(environment_name, RubyPitaya::Path::DATABASE_CONFIG_PATH)
11
12
  ActiveRecord::Base.establish_connection(database_config.connection_data)
12
13
  ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)
13
14
  ActiveSupport::LogSubscriber.colorize_logging = true
14
15
 
16
+ # Loading core files
15
17
  Gem.find_files('rubypitaya/**/*.rb').each do |path|
16
18
  require path unless path.end_with?('spec.rb') ||
17
19
  path.include?('db/migration') ||
20
+ path.include?('core/templates') ||
18
21
  path.include?('app-template')
19
22
  end
20
23
 
24
+ # Loading application files
21
25
  app_folder_paths = RubyPitaya::Path::Plugins::APP_FOLDER_PATHS + [RubyPitaya::Path::APP_FOLDER_PATH]
22
26
  app_folder_paths.each do |app_folder_path|
23
27
  app_files_path = File.join(app_folder_path, '**/*.rb')
@@ -28,7 +32,9 @@ app_folder_paths.each do |app_folder_path|
28
32
  end
29
33
  end
30
34
 
35
+ # Starting irb
31
36
  require 'irb'
32
37
  IRB.start(__FILE__)
33
38
 
39
+ # Closing database connection
34
40
  ActiveRecord::Base.connection.close
@@ -2,6 +2,7 @@ module RubyPitaya
2
2
 
3
3
  class Path
4
4
  APP_TEMPLATE_FOLDER_PATH = File.join(__dir__, '../app-template/')
5
+ MIGRATION_TEMPLATE_PATH = File.join(__dir__, 'templates/template_migration.rb.erb')
5
6
 
6
7
  DATABASE_CONFIG_PATH = File.join(Dir.pwd, 'config/database.yml')
7
8
 
@@ -15,6 +16,7 @@ module RubyPitaya
15
16
 
16
17
  HTTP_VIEWS_PATH = File.join(Dir.pwd, 'app/http/views')
17
18
 
19
+
18
20
  class Core
19
21
  APP_FOLDER_PATH = File.join(__dir__, 'app/')
20
22
  MIGRATIONS_FOLDER_PATH = File.join(__dir__, 'db/migration/')
@@ -0,0 +1,13 @@
1
+ require 'active_record'
2
+
3
+ class <%= class_name %> < ActiveRecord::Migration[5.1]
4
+
5
+ enable_extension 'pgcrypto'
6
+
7
+ def change
8
+ create_table :[table-name-here-in-plural], id: :uuid do |t|
9
+ # t.belongs_to :user, type: :uuid
10
+ t.timestamps null: false
11
+ end
12
+ end
13
+ end
@@ -1,3 +1,3 @@
1
1
  module RubyPitaya
2
- VERSION = '2.8.0'
2
+ VERSION = '2.9.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubypitaya
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.8.0
4
+ version: 2.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luciano Prestes Cavalcanti
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-10 00:00:00.000000000 Z
11
+ date: 2020-12-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - '='
95
95
  - !ruby/object:Gem::Version
96
96
  version: 2.1.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: ostruct
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '='
102
+ - !ruby/object:Gem::Version
103
+ version: 0.1.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '='
109
+ - !ruby/object:Gem::Version
110
+ version: 0.1.0
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: sinatra-contrib
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -285,6 +299,7 @@ files:
285
299
  - "./lib/rubypitaya/core/session.rb"
286
300
  - "./lib/rubypitaya/core/setup.rb"
287
301
  - "./lib/rubypitaya/core/status_codes.rb"
302
+ - "./lib/rubypitaya/core/templates/template_migration.rb.erb"
288
303
  - "./lib/rubypitaya/version.rb"
289
304
  - bin/rubypitaya
290
305
  homepage: https://gitlab.com/LucianoPC/ruby-pitaya