dice_bag 0.9.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 60e5efa65c58bb068ea937851e75ace6470f3b0c
4
- data.tar.gz: 56c46bf21478f61b2af8e5a3d689fc0204a4ef73
3
+ metadata.gz: a3aaa7d13ff48bfcf766fb7559829edab19fb14a
4
+ data.tar.gz: a35210f3327b715bf8bf77140558bb58dc33ed1c
5
5
  SHA512:
6
- metadata.gz: 27e0e05915afc78875d92a57a1587f5efd75282f9985c124f28f6cbd59db012e77e75d2b51e97e8ab6d11ca5917774c0a1641c98a928d2d9ab63e704c6fb9df7
7
- data.tar.gz: 95970fb430a7b7fac1c662d6b27033d5db905be6598f9aea21bc802366e1d19345241c62af9fa1a49dd307723cd134b49240f574cb6c0dca038b33ec514c8fd0
6
+ metadata.gz: 0a864f3e35d47e30bcaf4d31c7804467e1b7d3f783f858b665d081e478051368092cf822a4b01b4ddda72bd4730bd908eafeee67a5863aaf1155dd0e4001a790
7
+ data.tar.gz: fbae72a262f02e8c7f3d100a579582503b9bf7f67fe505479fbf38640ab08bab3a06c9595e92a86327bb51ab54fdfc69f31da1ed00d695104ec4dacd5d0fdcdc
@@ -3,12 +3,19 @@ require 'dice_bag/project'
3
3
  require 'dice_bag/config_file'
4
4
  require 'dice_bag/template_file'
5
5
  require 'dice_bag/default_template_file'
6
+ require 'thor'
6
7
 
7
8
  module DiceBag
8
9
  #This class seems a candidate to be converted to Thor, the problem is that we need to run
9
10
  #in the same process than the rake task so all the gems are loaded before dice_bag
10
11
  #is called and dice_bag can find what software is used in this project
11
12
  class Command
13
+ include Thor::Base
14
+ include Thor::Actions
15
+
16
+ def self.source_root
17
+ Dir.pwd
18
+ end
12
19
 
13
20
  def write_all(params = {})
14
21
  Project.templates_to_generate.each do |template|
@@ -25,15 +32,14 @@ module DiceBag
25
32
  end
26
33
 
27
34
 
28
- def generate_all_templates
35
+ def generate_all_templates(force=false)
29
36
  AvailableTemplates.all.each do |template|
30
- generate_template(template)
37
+ generate_template(template, force)
31
38
  end
32
39
  end
33
40
 
34
- def generate_template(default_template)
35
- default_template.assert_existence
36
- default_template.create_file
41
+ def generate_template(default_template, force=false)
42
+ copy_file default_template.file, default_template.destination, force: force
37
43
  end
38
44
 
39
45
  end
@@ -18,24 +18,8 @@ module DiceBag
18
18
  @filename = File.basename(name)
19
19
  @file = name
20
20
  @template_location = location
21
+ @destination = File.join(Project.root, @template_location, @filename)
21
22
  end
22
23
 
23
- def create_file
24
- contents = read_template(@file)
25
- rooted_template_location = File.join(Project.root, @template_location)
26
- FileUtils.mkdir_p(rooted_template_location)
27
- template_file = File.join(rooted_template_location, @filename)
28
- File.open(template_file, 'w') do |file|
29
- file.puts(contents)
30
- end
31
- puts "new template file generated in #{template_file}.
32
- execute 'rake config:all' to get the corresponding configuration file."
33
- end
34
-
35
- def read_template(template)
36
- # Some templates need the name of the project. We put a placeholder
37
- # PROJECT_NAME there, it gets substituted by the real name of the project here
38
- File.readlines(template).join.gsub("PROJECT_NAME", Project.name)
39
- end
40
24
  end
41
25
  end
@@ -4,7 +4,7 @@ require 'dice_bag/version'
4
4
  # configuration files, templates files in the project an templates files shipped with dicebag
5
5
  module DiceBag
6
6
  module DiceBagFile
7
- attr_reader :file, :filename
7
+ attr_reader :file, :filename, :destination
8
8
  @@overwrite_all = false
9
9
 
10
10
  def assert_existence
@@ -22,16 +22,22 @@ namespace :config do
22
22
  DiceBag::Command.new.write(filename)
23
23
  end
24
24
 
25
- desc "Generate all configuration file templates needed by this project"
25
+ desc 'Generate all configuration file templates with interactive commands (use config:generate_all:force to replace all without asking for input)'
26
26
  task :generate_all do
27
- DiceBag::Command.new.generate_all_templates
27
+ DiceBag::Command.new.generate_all_templates(false)
28
28
  end
29
29
 
30
- desc "Generate just the specified template, optionally in the specified location"
30
+ namespace :generate_all do
31
+ task :force do
32
+ DiceBag::Command.new.generate_all_templates(true)
33
+ end
34
+ end
35
+
36
+ desc 'Generate specified template, optionally in the specified location with options to control file actions'
31
37
  task :generate, :filename, :location do |t, args|
32
38
  filename = args[:filename]
33
39
  location = args[:location]
34
- raise "A filename needs to be provided" if filename.nil?
35
- DiceBag::Command.new.generate_template(DiceBag::DefaultTemplateFile.new(filename,location))
40
+ raise 'A filename needs to be provided' if filename.nil?
41
+ DiceBag::Command.new.generate_template(DiceBag::DefaultTemplateFile.new(filename, location), false)
36
42
  end
37
43
  end
@@ -7,9 +7,9 @@
7
7
  # cache configuration code in config/environments/production.rb
8
8
 
9
9
  development: &default
10
- namespace: PROJECT_NAME
11
- host: localhost
12
- port: 11211
10
+ namespace: <%= configured.memcached_namespace || 'your_project_namespace' %>
11
+ host: <%= configured.memcached_host || 'localhost' %>
12
+ port: <%= configured.memcached_port || 11211 %>
13
13
  value_max_bytes: 52428800
14
14
  compress: true
15
15
 
@@ -7,10 +7,10 @@
7
7
  username: <%= configured[env].database_username || 'root' %>
8
8
  password: <%= configured[env].database_password %>
9
9
  host: <%= configured[env].database_host || 'localhost' %>
10
- pool: 5
11
- timeout: 5000
12
- encoding: utf8
13
- reconnect: false
10
+ pool: <%= configured[env].database_pool || 5 %>
11
+ timeout: <%= configured[env].database_timeout || 5000 %>
12
+ encoding: <%= configured[env].database_encoding || 'utf8' %>
13
+ reconnect: <%= configured[env].database_reconnect || false %>
14
14
  <% db_cert = configured[env].database_ssl_cert %>
15
15
  <%= db_cert ? "sslca: #{db_cert}" : '' %>
16
16
  <% end %>
@@ -1,3 +1,3 @@
1
1
  module DiceBag
2
- VERSION = '0.9.0'
2
+ VERSION = '1.0.0'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dice_bag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Smith
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-08-13 00:00:00.000000000 Z
12
+ date: 2015-12-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -25,6 +25,34 @@ dependencies:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: thor
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '0.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '0.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: diff-lcs
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '1.0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '1.0'
28
56
  - !ruby/object:Gem::Dependency
29
57
  name: aruba
30
58
  requirement: !ruby/object:Gem::Requirement
@@ -119,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
147
  version: '0'
120
148
  requirements: []
121
149
  rubyforge_project:
122
- rubygems_version: 2.2.2
150
+ rubygems_version: 2.4.8
123
151
  signing_key:
124
152
  specification_version: 4
125
153
  summary: Dice Bag is a library of rake tasks for configuring web apps in the style