mobilis 0.0.4 → 0.0.5

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: a79181b97bf2572ac73e8dce659320884665aa649e955970d95bda0251c295dc
4
- data.tar.gz: 303979cb4e400a188c6ca99d75f8c8857b4926661287e485b0999f0341f30611
3
+ metadata.gz: b6f70c5988047af743d26f24694bdbf9894f7a6b5d05666987617aaf55fccd93
4
+ data.tar.gz: 185119c7a513b48f0d8ff991f2d79c40b43890b0fcf016624f786f8ba1383b45
5
5
  SHA512:
6
- metadata.gz: 561a375e73c458745e72415ab88ee6e19d7fe7b299a576ee2a619bc5e66e45ff4f25d763f8a58a2d8465661c6f861b6e5e1642c2e3f2da7084c57a5c5dbe2b2a
7
- data.tar.gz: 02aabfdd670aeb2d7138b3507d36f15e4c2009656430ac9ec73c6829627f0e87f52949e8b9ce0d911786c24ed685e2ee1396a97a4cb98bb60fc829e2a0f26940
6
+ metadata.gz: 6678e0445f6a8d777bc6f6c5280b7abacac3b61cb9b545cd51fc4a5ada43696a4815a2fa1fff553e8b3a2646b36550b12ec157437a78027225de87e63a20b650
7
+ data.tar.gz: ac072bd7e4bebca33480d3817aba9920869033d142d562f4908c6ca0c1a1a592f005ef834ffab4a025ea2b99e24741f534869e6daac49d2c3c461040bfc59c01
data/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  ## [Unreleased]
2
2
 
3
+ ## [0.0.5] - 2022-12-09
4
+ - fixed a bug when loading a project that made the rails builder not update
5
+ - fixed permissions of wait-until, which means rails projects will wait until the database
6
+ is available to run migrations and start the server
7
+ - reworked a lot of the screens to be less cluttered and make more sense
8
+ - fixed unit tests to not hardcode my username in the test
9
+ - bumped redis version
10
+
3
11
  ## [0.0.4] - 2022-09-11
4
12
 
5
13
  - Added command line options load and build
@@ -99,7 +99,7 @@ def redis_service service
99
99
  attributes = @project.attributes
100
100
  port_key = "#{service.name}_internal_port_no".to_sym
101
101
  {
102
- "image" => "redis:6.2-alpine",
102
+ "image" => "redis:7.0.5-alpine",
103
103
  "restart" => "always",
104
104
  "command" => "redis-server --save 20 1 --loglevel warning --requirepass #{ service.password }",
105
105
  "environment" => [
@@ -26,28 +26,37 @@ state_machine :state, initial: :intialize do
26
26
  end
27
27
 
28
28
  event :go_add_omakase_stack_rails_project do
29
- transition [:main_menu] => :add_omakase_stack_rails_project
29
+ transition [:add_project_menu] => :add_omakase_stack_rails_project
30
30
  end
31
31
 
32
32
  event :go_add_prime_stack_rails_project do
33
- transition [:main_menu] => :add_prime_stack_rails_project
33
+ transition [:add_project_menu] => :add_prime_stack_rails_project
34
34
  end
35
35
 
36
36
  event :go_add_postgresql_instance do
37
- transition [:main_menu] => :add_postgresql_instance
37
+ transition [:add_project_menu] => :add_postgresql_instance
38
+ end
39
+
40
+ event :go_add_project_menu do
41
+ transition [:main_menu] => :add_project_menu
42
+ end
43
+
44
+ event :go_edit_project_menu do
45
+ transition [:main_menu] => :edit_project_menu
38
46
  end
39
47
 
40
48
  event :go_add_mysql_instance do
41
- transition [:main_menu] => :add_mysql_instance
49
+ transition [:add_project_menu] => :add_mysql_instance
42
50
  end
43
51
 
44
52
  event :go_add_redis_instance do
45
- transition [:main_menu] => :add_redis_instance
53
+ transition [:add_project_menu] => :add_redis_instance
46
54
  end
47
55
 
48
56
  event :go_back do
49
- transition [:edit_rails_project] => :main_menu
57
+ transition [:edit_rails_project] => :edit_project_menu
50
58
  transition [:edit_generic_project] => :main_menu
59
+ transition [:add_project_menu] => :main_menu
51
60
  end
52
61
 
53
62
  event :go_add_rack_project do
@@ -56,12 +65,7 @@ state_machine :state, initial: :intialize do
56
65
 
57
66
  event :go_edit_rails_project do
58
67
  transition [
59
- :add_omakase_stack_rails_project,
60
- :add_prime_stack_rails_project,
61
- :edit_rails_controller,
62
- :edit_rails_model,
63
- :toggle_rails_api_mode,
64
- :main_menu
68
+ :edit_project_menu, :add_omakase_stack_rails_project, :add_prime_stack_rails_project
65
69
  ] => :edit_rails_project
66
70
  end
67
71
 
@@ -99,6 +103,7 @@ state_machine :state, initial: :intialize do
99
103
 
100
104
  event :go_edit_links_select_project do
101
105
  transition [:main_menu] => :edit_links_select_project
106
+ transition [:edit_links] => :edit_links_select_project
102
107
  end
103
108
 
104
109
  event :go_edit_links do
@@ -119,10 +124,55 @@ state_machine :state, initial: :intialize do
119
124
  puts
120
125
  end
121
126
  def choices
122
- project_choices = projects.map do |project|
123
- { name: "Edit '#{ project.name }' project", value: -> { @selected_rails_project = project ; go_edit_rails_project } }
127
+ menu_items = [
128
+ { name: "reload all code", value: -> { reload! }},
129
+ { name: "[m] Add project", value: -> { go_add_project_menu }},
130
+ { name: "[m] Edit existing project", value: -> { go_edit_project_menu }}
131
+ ]
132
+ if projects.length > 1
133
+ menu_items.concat([
134
+ { name: "[m] edit links", value: -> { go_edit_links_select_project }}
135
+ ])
124
136
  end
137
+ if projects.length > 0
138
+ menu_items.concat([
139
+ { name: "Save mproj.json", value: -> { go_save_project }},
140
+ { name: "Generate", value: -> { go_generate }},
141
+ { name: "Build", value: -> { go_build }}
142
+ ])
143
+ end
144
+ menu_items
145
+ end
146
+ def action = false
147
+ end
148
+
149
+ state :edit_project_menu do
150
+ def display
151
+ puts
152
+ tp.set :max_width, 160
153
+ tp projects, 'name', 'type', 'options': lambda {|p| p.options.join ", "}
154
+ puts
155
+ end
156
+ def choices
157
+ [
158
+ {name: "return to Main Menu", value: -> { go_main_menu }},
159
+ *(projects.map { |project| { name: "Edit '#{ project.name }' project", value: -> { @selected_rails_project = project ; go_edit_rails_project } } })
160
+ ]
161
+ end
162
+ def action = false
163
+ end
164
+
165
+ state :add_project_menu do
166
+ def display
167
+ puts
168
+ tp.set :max_width, 160
169
+ tp projects, 'name', 'type', 'options': lambda {|p| p.options.join ", "}
170
+ puts
171
+ end
172
+
173
+ def choices
125
174
  [
175
+ {name: "return to Main Menu", value: -> { go_main_menu }},
126
176
  {name: "Add prime stack rails project", value: -> { go_add_prime_stack_rails_project }},
127
177
  {name: "Add omakase stack rails project", value: -> { go_add_omakase_stack_rails_project }},
128
178
  {name: "Add rack3 project", value: -> { go_add_rack_project }},
@@ -138,12 +188,7 @@ state_machine :state, initial: :intialize do
138
188
  #{ name: "Add couchdb instance", value: -> { go_add_couchdb_instance }},
139
189
  #{ name: "Add kafka instance", value: -> { go_add_kafka_instance }},
140
190
  #{ name: "Add graphql instance", value: -> { go_add_grapql_instance }},
141
- #{ name: "Add gitlab instance w/workers", value: -> { go_add_gitlab_instance }},
142
- *project_choices,
143
- { name: "edit links", value: -> { go_edit_links_select_project }},
144
- { name: "Save mproj.json", value: -> { go_save_project }},
145
- { name: "Generate", value: -> { go_generate }},
146
- { name: "Build", value: -> { go_build }}
191
+ #{ name: "Add gitlab instance w/workers", value: -> { go_add_gitlab_instance }}
147
192
  ]
148
193
  end
149
194
  def action = false
@@ -179,7 +224,7 @@ state_machine :state, initial: :intialize do
179
224
  end
180
225
  end
181
226
  @selected_project.set_links selected
182
- go_main_menu
227
+ go_edit_links_select_project
183
228
  end
184
229
  end
185
230
 
@@ -217,7 +262,8 @@ state_machine :state, initial: :intialize do
217
262
 
218
263
  state :add_prime_stack_rails_project do
219
264
  def display
220
- spacer
265
+ puts "Creates a new rails project, using the prime stack"
266
+ puts "includes rspec haml factory_bot"
221
267
  end
222
268
  def choices = false
223
269
  def action
@@ -229,7 +275,7 @@ state_machine :state, initial: :intialize do
229
275
 
230
276
  state :add_rack_project do
231
277
  def display
232
- spacer
278
+ puts "Creates a new rack project, with a minimal script"
233
279
  end
234
280
  def choices = false
235
281
  def action
@@ -392,5 +438,19 @@ def blank_space
392
438
  puts ""
393
439
  end
394
440
 
441
+ def reload!(print = true)
442
+ puts 'Reloading ...' if print
443
+ # Main project directory.
444
+ root_dir = File.expand_path('../..', __dir__)
445
+ # Directories within the project that should be reloaded.
446
+ reload_dirs = %w{lib}
447
+ # Loop through and reload every file in all relevant project directories.
448
+ reload_dirs.each do |dir|
449
+ Dir.glob("#{root_dir}/#{dir}/**/*.rb").each { |f| load(f) }
450
+ end
451
+ # Return true when complete.
452
+ true
453
+ end
454
+
395
455
  end
396
456
  end
@@ -99,17 +99,15 @@ source "https://rubygems.org"
99
99
  # FIXME
100
100
  #git_source(:github) { |repo| "https://github.com/repo.git" }
101
101
 
102
- ruby "3.1.2"
103
-
104
- gem "rails", "~> 7.0.3", ">= 7.0.3.1"
105
- gem "sqlite3", "~> 1.4"
106
- gem "puma", "~> 5.0"
102
+ gem "rails"
103
+ gem "sqlite3"
104
+ gem "puma"
107
105
  gem "jbuilder"
108
- gem "redis", "~> 4.0"
106
+ gem "redis"
109
107
  gem "kredis"
110
- gem "bcrypt", "~> 3.1.7"
108
+ gem "bcrypt"
111
109
  gem "bootsnap", require: false
112
- gem "image_processing", "~> 1.2"
110
+ gem "image_processing"
113
111
  gem "rack-cors"
114
112
  gem "pg"
115
113
  gem "mysql2"
@@ -130,7 +128,7 @@ end
130
128
 
131
129
  def has_rails_project?
132
130
  projects.each do |p|
133
- return true if p.type == :rails
131
+ return true if p.type.to_sym == :rails
134
132
  end
135
133
  return false
136
134
  end
@@ -126,7 +126,7 @@ def generate_Dockerfile
126
126
  FROM ruby:latest
127
127
  RUN apt-get update -qq && apt-get install -y nodejs postgresql-client default-mysql-client dos2unix
128
128
  WORKDIR /myapp
129
- COPY wait-until /myapp/wait-until
129
+ COPY --chmod=0755 wait-until /myapp/wait-until
130
130
  COPY Gemfile /myapp/Gemfile
131
131
  COPY Gemfile.lock /myapp/Gemfile.lock
132
132
  RUN bundle install
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Mobilis
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.5"
5
5
  end
data/mobilis.gemspec ADDED
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/mobilis/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "mobilis"
7
+ spec.version = Mobilis::VERSION
8
+ spec.authors = ["Meleneth"]
9
+ spec.email = ["meleneth@gmail.com"]
10
+
11
+ spec.summary = "Generate and scaffold multiple projects and a docker compose file"
12
+ spec.homepage = "https://github.com/meleneth/mobilis"
13
+ spec.required_ruby_version = ">= 2.6.0"
14
+ spec.licenses = ['MIT']
15
+ #spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
16
+
17
+ spec.metadata["homepage_uri"] = spec.homepage
18
+ spec.metadata["source_code_uri"] = "https://github.com/meleneth/mobilis"
19
+ spec.metadata["changelog_uri"] = "https://github.com/meleneth/mobilis/CHANGELOG.md"
20
+
21
+ # Specify which files should be added to the gem when it is released.
22
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
23
+ spec.files = Dir.chdir(__dir__) do
24
+ `git ls-files -z`.split("\x0").reject do |f|
25
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
26
+ end
27
+ end
28
+ spec.bindir = "exe"
29
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
30
+ spec.require_paths = ["lib"]
31
+ spec.executables << 'mobilis'
32
+
33
+ # Uncomment to register a new dependency of your gem
34
+ spec.add_dependency "awesome_print"
35
+ spec.add_dependency "optimist"
36
+ spec.add_dependency "pry"
37
+ spec.add_dependency "state_machine"
38
+ spec.add_dependency "table_print"
39
+ spec.add_dependency "tty-prompt"
40
+
41
+ spec.add_development_dependency "super_diff"
42
+
43
+ # spec.add_dependency "example-gem", "~> 1.0"
44
+
45
+ # For more information and examples about making a new gem, check out our
46
+ # guide at: https://bundler.io/guides/creating_gem.html
47
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mobilis
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Meleneth
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-09-12 00:00:00.000000000 Z
11
+ date: 2022-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: awesome_print
@@ -141,6 +141,7 @@ files:
141
141
  - lib/mobilis/rails_project.rb
142
142
  - lib/mobilis/redis_instance.rb
143
143
  - lib/mobilis/version.rb
144
+ - mobilis.gemspec
144
145
  - sig/mobilis.rbs
145
146
  homepage: https://github.com/meleneth/mobilis
146
147
  licenses: