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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3844bda1c37e3f512ca1054c00b3e3bbf95edd37
4
- data.tar.gz: 633cf298bc6ad17c8d98466eebd51cf8f555e6fd
3
+ metadata.gz: 606b9bd1ad3fb80f86c9758beb347f5abc4d1189
4
+ data.tar.gz: ede68944108a10ced83d986471efea50fbb5e890
5
5
  SHA512:
6
- metadata.gz: 8464504841d320f9735409b41594ea6911bd99c5abd83a68ada3fecf922f84aa293605da49e392e2482e636f4080b3530250de4b2dd2a1e070b333ac895acf41
7
- data.tar.gz: 99680d214bea92b5a8dc0850bf003376fbbc15d5f4f5c39411340917f8f3eba8f1695cbbd86c8924313ccc16debef3129970100d95d38830dfed1ac39bf7380c
6
+ metadata.gz: b489bd4d200947bc2078daa64de7115d62f1afd2391698d2bbbd8693d4feece6ed680467f46ada9a0b8d659e3f50a0dd3f4b392aa97e37caa703f19ed754f7fa
7
+ data.tar.gz: 7d0dcd2bfc224350044762c9feb2d07e37081a067994295d875f69f953ae800b1986b99727ea97290367e24f39b8c276bc05f18d92f6d788607740977487682c
data/bin/postmod CHANGED
@@ -15,4 +15,9 @@ action_name = subcommand.camelize
15
15
 
16
16
  action = "Postmod::#{action_name}".constantize
17
17
 
18
- action.(ARGV[1])
18
+ if subcommand == 'generate/model'
19
+ action.(ARGV[1], ARGV[2..-1])
20
+ lse
21
+ action.(*ARGV[1..-1])
22
+ end
23
+
@@ -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
@@ -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: sqlite3
3
- database: development.sqlite3
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
- adapter: sqlite3
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
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-08 00:00:00.000000000 Z
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