postmod 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 +4 -4
- data/bin/postmod +6 -1
- data/lib/postmod/create.rb +21 -0
- data/lib/postmod/generate/model.rb +53 -0
- data/project_template/Gemfile +9 -0
- data/project_template/db/config.yml +6 -4
- metadata +31 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 606b9bd1ad3fb80f86c9758beb347f5abc4d1189
|
4
|
+
data.tar.gz: ede68944108a10ced83d986471efea50fbb5e890
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b489bd4d200947bc2078daa64de7115d62f1afd2391698d2bbbd8693d4feece6ed680467f46ada9a0b8d659e3f50a0dd3f4b392aa97e37caa703f19ed754f7fa
|
7
|
+
data.tar.gz: 7d0dcd2bfc224350044762c9feb2d07e37081a067994295d875f69f953ae800b1986b99727ea97290367e24f39b8c276bc05f18d92f6d788607740977487682c
|
data/bin/postmod
CHANGED
data/lib/postmod/create.rb
CHANGED
@@ -7,6 +7,8 @@ module Postmod
|
|
7
7
|
def call
|
8
8
|
create_project
|
9
9
|
create_lib
|
10
|
+
create_db
|
11
|
+
create_bin
|
10
12
|
create_api
|
11
13
|
create_web
|
12
14
|
create_spec
|
@@ -17,6 +19,8 @@ module Postmod
|
|
17
19
|
def create_project
|
18
20
|
FileUtils.mkdir(project_path)
|
19
21
|
FileUtils.cp_r(Dir.glob(project_template_path + "/*"), project_path)
|
22
|
+
FileUtils.cp_r(Dir.glob(project_template_path + "/*"), project_path)
|
23
|
+
File.write("#{project_path}/.ruby-version", '2.2.2')
|
20
24
|
File.write("#{project_path}/.ruby-version", '2.2.2')
|
21
25
|
end
|
22
26
|
|
@@ -24,6 +28,23 @@ module Postmod
|
|
24
28
|
Postmod::Generate::Module.("#{project_path}/lib/#{project_name}")
|
25
29
|
end
|
26
30
|
|
31
|
+
def create_db
|
32
|
+
db_config_file = Mustache.new
|
33
|
+
db_config_file.template_file = "#{project_path}/db/config.yml"
|
34
|
+
db_config_file_content = db_config_file.render(app_name: project_name)
|
35
|
+
|
36
|
+
File.write("#{project_path}/db/config.yml", db_config_file_content)
|
37
|
+
end
|
38
|
+
|
39
|
+
def create_bin
|
40
|
+
|
41
|
+
File.open("#{project_path}/bin/console", 'w') do |console_file|
|
42
|
+
console_file.puts '#!/usr/bin/env ruby'
|
43
|
+
console_file.puts "#{project_name.capitalize}.pry"
|
44
|
+
end
|
45
|
+
`chmod u+x #{project_path}/bin/console`
|
46
|
+
end
|
47
|
+
|
27
48
|
def create_api
|
28
49
|
api_file_content = File.readlines("#{project_template_path}/api/api.rb")
|
29
50
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'active_support/core_ext/string/inflections'
|
2
|
+
require "rails/generators"
|
3
|
+
|
4
|
+
module Postmod::Generate
|
5
|
+
Model = Postmod::Action.new(:model_path, :options) do
|
6
|
+
|
7
|
+
def call
|
8
|
+
create_ruby_file
|
9
|
+
create_migration
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def create_ruby_file
|
15
|
+
File.open(model_filename, 'w') do |file|
|
16
|
+
file.puts model_content
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_migration
|
21
|
+
Rails::Generators.invoke(
|
22
|
+
"active_record:migration",
|
23
|
+
[migration_name] + migration_options,
|
24
|
+
destination_root: Pathname.new(".")
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
def migration_options
|
29
|
+
[options, "created_at:timestamps", "updated_at:timestamps"].flatten
|
30
|
+
end
|
31
|
+
|
32
|
+
def model_content
|
33
|
+
<<ACTION_FILE
|
34
|
+
class #{model_name} < ActiveRecord::Base
|
35
|
+
|
36
|
+
end
|
37
|
+
ACTION_FILE
|
38
|
+
end
|
39
|
+
|
40
|
+
def migration_name
|
41
|
+
"create_#{model_path.split('/').last}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def model_name
|
45
|
+
model_path.gsub(/^.*lib\//, '').camelize
|
46
|
+
end
|
47
|
+
|
48
|
+
def model_filename
|
49
|
+
model_path + '.rb'
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
end
|
data/project_template/Gemfile
CHANGED
@@ -6,7 +6,16 @@ group :web do
|
|
6
6
|
gem 'chaplin', git: 'git://github.com/victormours/chaplin.git'
|
7
7
|
end
|
8
8
|
|
9
|
+
group :lib do
|
10
|
+
gem 'pg'
|
11
|
+
end
|
12
|
+
|
9
13
|
group :data_store do
|
10
14
|
gem 'activerecord'
|
11
15
|
gem 'standalone_migrations'
|
12
16
|
end
|
17
|
+
|
18
|
+
group :development do
|
19
|
+
gem 'dotenv'
|
20
|
+
gem 'pry'
|
21
|
+
end
|
@@ -1,11 +1,13 @@
|
|
1
1
|
development:
|
2
|
-
adapter:
|
3
|
-
|
2
|
+
adapter: postgresql
|
3
|
+
encoding: utf8
|
4
|
+
host: localhost
|
5
|
+
username: {{app_name}}
|
6
|
+
database: {{app_name}}_dev
|
4
7
|
pool: 5
|
5
8
|
timeout: 5000
|
6
9
|
|
7
10
|
test: &test
|
8
|
-
|
9
|
-
database: test.sqlite3
|
11
|
+
database: {{app_name}}_test
|
10
12
|
pool: 5
|
11
13
|
timeout: 5000
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: postmod
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Mours
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chaplin
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: standalone_migrations
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rspec
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,6 +66,20 @@ dependencies:
|
|
52
66
|
- - ">="
|
53
67
|
- !ruby/object:Gem::Version
|
54
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec-preloader
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
84
|
name: rake
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -121,6 +149,7 @@ files:
|
|
121
149
|
- lib/postmod/create.rb
|
122
150
|
- lib/postmod/generate.rb
|
123
151
|
- lib/postmod/generate/action.rb
|
152
|
+
- lib/postmod/generate/model.rb
|
124
153
|
- lib/postmod/generate/module.rb
|
125
154
|
- project_template/Gemfile
|
126
155
|
- project_template/Procfile
|