vagrant-impressbox 0.1.0 → 0.1.1

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: 7058d0e553b2b94d55a1a23dc84bef2256d969f4
4
- data.tar.gz: 7ad515e10500a70ede69ce1dc2796cd6e29cffd0
3
+ metadata.gz: eb87ddda30acb51620df45fb0b6af4651bcc38c4
4
+ data.tar.gz: aca4ba8308f4ecff748e252790798bf86ea2b875
5
5
  SHA512:
6
- metadata.gz: 68778fb8535b5b7826cea599470263320c4deba03513435883dda6a37d507a8b819420c379871ea3580eb7a1dab86907f650bdd7176dcefbd9cb7b06a98640ba
7
- data.tar.gz: 11bdfab2e693518a67a35409b610d88d3ac5c71d660acb7b4c11fd4da4780667353e3893dad11b2f47de98238dea16e81a1d94dd0ce612d42832a5e24c4d1f0f
6
+ metadata.gz: 665f819e3746fd938188f2259a04f54196ba23bbc43b0dd68efa8c1c98ae1be1486b92d597e56df3c92119607a3117da166061dc84468ec441ba07ef934a5f77
7
+ data.tar.gz: 84ea5a35a4cc74e587ee4c7e5219f3388615bf225ec5768956664643afe21353618690ec2be81d3e489f0d516f4182c3cb13e00b607a3f94145fbcd9cead7d4a
@@ -0,0 +1,16 @@
1
+ root = true
2
+
3
+ [*]
4
+ indent_style = space
5
+ indent_size = 2
6
+ end_of_line = lf
7
+ charset = utf-8
8
+ trim_trailing_whitespace = true
9
+ insert_final_newline = true
10
+
11
+ [*.{sh,markdown}]
12
+ indent_size = 4
13
+
14
+ [**.rb]
15
+ indent_style = space
16
+ indent_size = 2
data/README.md CHANGED
@@ -1,6 +1,4 @@
1
- # **!!! DOESN'T WORK YET. Please wait !!!**
2
-
3
- ------
1
+ [![Gem](https://img.shields.io/gem/dtv/vagrant-impressbox.svg)](https://rubygems.org/gems/vagrant-impressbox) [![Gem](https://img.shields.io/gem/v/vagrant-impressbox.svg)](https://rubygems.org/gems/vagrant-impressbox) [![license](https://img.shields.io/github/license/ImpressCMS/vagrant-impressbox.svg?maxAge=2592000)](License.txt)
4
2
 
5
3
  # ImpressBox
6
4
 
@@ -8,24 +6,34 @@ ImpressBox is plugin to make easier to configure virtual enviroment for Vagrant.
8
6
 
9
7
  ## Installation
10
8
 
11
- `vagrant plugin install impressbox`
9
+ Run below command from your command line:
10
+ `vagrant plugin install vagrant-impressbox`
12
11
 
13
12
  ## Usage
14
13
 
15
- `vagrant impressbox`
14
+ To use Impressbox plugin, you can run `vagrant impressbox` command from command line. It will create required configuration files. Also it's possible to use some options to modify default configuration files creation behavior:
16
15
 
17
- ## Development
16
+ vagrant impressbox [options]
18
17
 
19
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
18
+ -b, --box=BOX_NAME Box name for new box (default: ImpressCMS/DevBox-Ubuntu)
19
+ --ip=IP Defines IP (default: )
20
+ --url=HOSTNAME Hostname associated with this box (default: impresscms.dev)
21
+ --memory=RAM How much RAM (in megabytes)? (default: 512)
22
+ --cpus=CPU_NUMBER How much CPU? (default: 1)
23
+ -r, --recreate Recreates config instead of updating (so you don't need to delete first)
24
+ -f, --for=NAME This argument says that predefined config will be used when creating box. Possible names: impresscms
25
+
26
+ -h, --help Print this help
27
+
28
+ ## Development
20
29
 
21
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
30
+ If you want to try add something to this plugin, you need before starting do these things:
31
+ * Clone this repository
32
+ * Open command line in cloned directory
33
+ * Run `bundle install`
34
+
35
+ If you want to your changes, you can run `bundle exec vagrant impressbox` command (also here is possible to use some commands options).
22
36
 
23
37
  ## Contributing
24
38
 
25
39
  Bug reports and pull requests are welcome on GitHub at https://github.com/ImpressCMS/impressbox.
26
-
27
-
28
- ## License
29
-
30
- The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
31
-
@@ -1,56 +1,64 @@
1
- module Impressbox
2
- module Actions
3
- # This is action to insert keys to remote machine when booting
4
- class InsertKey
5
- def initialize(app, env)
6
- @app = app
7
- @ui = env[:ui]
8
- end
9
-
10
- def call(env)
11
- @app.call env
12
- @machine = env[:machine]
13
- insert_ssh_key_if_needed(
14
- Impressbox::Plugin.get_item(:public_key),
15
- Impressbox::Plugin.get_item(:private_key)
16
- )
17
- end
18
-
19
- private
20
-
21
- def insert_ssh_key_if_needed(public_key, private_key)
22
- @machine.communicate.wait_for_ready 300
23
-
24
- machine_private_key @machine.communicate, private_key
25
- machine_public_key @machine.communicate, public_key
26
- end
27
-
28
- def machine_public_key(communicator, public_key)
29
- @ui.info I18n.t('ssh_key.updating.public')
30
- machine_upload_file communicator, public_key, '~/.ssh/id_rsa.pub'
31
- communicator.execute 'touch ~/.ssh/authorized_keys'
32
- communicator.execute 'cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys'
33
- communicator.execute "echo `awk '!a[$0]++' ~/.ssh/authorized_keys` > ~/.ssh/authorized_keys"
34
-
35
- communicator.execute 'chmod 600 ~/.ssh/id_rsa.pub'
36
- end
37
-
38
- def machine_private_key(communicator, private_key)
39
- @ui.info I18n.t('ssh_key.updating.private')
40
- machine_upload_file communicator, private_key, '~/.ssh/id_rsa'
41
- communicator.execute 'chmod 400 ~/.ssh/id_rsa'
42
- end
43
-
44
- def machine_upload_file(communicator, src_file, dst_file)
45
- communicator.execute 'chmod 777 ' + dst_file + ' || :'
46
- communicator.execute 'touch ' + dst_file
47
- communicator.execute 'truncate -s 0 ' + dst_file
48
- text = File.open(src_file).read
49
- text.gsub!(/\r\n?/, "\n")
50
- text.each_line do |line|
51
- communicator.execute "echo \"#{line.rstrip}\" >> #{dst_file}"
52
- end
53
- end
54
- end
55
- end
56
- end
1
+ module Impressbox
2
+ module Actions
3
+ # This is action to insert keys to remote machine when booting
4
+ class InsertKey
5
+ def initialize(app, env)
6
+ @app = app
7
+ @ui = env[:ui]
8
+ puts app.inspect
9
+ end
10
+
11
+ def call(env)
12
+ @app.call env
13
+ @machine = env[:machine]
14
+ insert_ssh_key_if_needed(
15
+ Impressbox::Plugin.get_item(:public_key),
16
+ Impressbox::Plugin.get_item(:private_key)
17
+ )
18
+ end
19
+
20
+ private
21
+
22
+ def insert_ssh_key_if_needed(public_key, private_key)
23
+ @machine.communicate.wait_for_ready 300
24
+
25
+ machine_private_key @machine.communicate, private_key
26
+ machine_public_key @machine.communicate, public_key
27
+ end
28
+
29
+ def machine_public_key(communicator, public_key)
30
+ @ui.info I18n.t('ssh_key.updating.public')
31
+ if machine_upload_file communicator, public_key, '~/.ssh/id_rsa.pub'
32
+ communicator.execute 'touch ~/.ssh/authorized_keys'
33
+ communicator.execute 'cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys'
34
+ communicator.execute "echo `awk '!a[$0]++' ~/.ssh/authorized_keys` > ~/.ssh/authorized_keys"
35
+
36
+ communicator.execute 'chmod 600 ~/.ssh/id_rsa.pub'
37
+ end
38
+ end
39
+
40
+ def machine_private_key(communicator, private_key)
41
+ @ui.info I18n.t('ssh_key.updating.private')
42
+ if machine_upload_file communicator, private_key, '~/.ssh/id_rsa'
43
+ communicator.execute 'chmod 400 ~/.ssh/id_rsa'
44
+ end
45
+ end
46
+
47
+ def machine_upload_file(communicator, src_file, dst_file)
48
+ if src_file.nil?
49
+ @ui.info I18n.t('ssh_key.not_found')
50
+ return false
51
+ end
52
+ communicator.execute 'chmod 777 ' + dst_file + ' || :'
53
+ communicator.execute 'touch ' + dst_file
54
+ communicator.execute 'truncate -s 0 ' + dst_file
55
+ text = File.open(src_file).read
56
+ text.gsub!(/\r\n?/, "\n")
57
+ text.each_line do |line|
58
+ communicator.execute "echo \"#{line.rstrip}\" >> #{dst_file}"
59
+ end
60
+ true
61
+ end
62
+ end
63
+ end
64
+ end
@@ -1,103 +1,107 @@
1
- # Loads all requirements
2
- require 'vagrant'
3
- require_relative File.join('objects', 'ssh_key_detect.rb')
4
-
5
- # Impressbox namepsace
6
- module Impressbox
7
- # Provisioner namepsace
8
- class Provisioner < Vagrant.plugin('2', :provisioner)
9
- # @!attribute [rw] provision_actions
10
- attr_accessor :provision_actions
11
-
12
- def provision
13
- if !@provision_actions.nil? && @provision_actions.to_s.length > 0
14
- @machine.communicate.wait_for_ready 300
15
-
16
- @machine.communicate.execute(@provision_actions.to_s) do |type, line|
17
- write_line type, line
18
- end
19
- end
20
- end
21
-
22
- def cleanup
23
- end
24
-
25
- def configure(root_config)
26
- configurator = create_configurator(root_config)
27
- cfg = xaml_config
28
-
29
- do_primary_configuration configurator, cfg
30
- do_ssh_configuration configurator, cfg
31
- do_provider_configuration configurator, cfg
32
- do_network_configuration configurator, cfg
33
- do_provision_configure configurator, cfg
34
- end
35
-
36
- private
37
-
38
- def write_line(type, contents)
39
- case type
40
- when :stdout
41
- @machine.ui.info contents
42
- when :stderr
43
- @machine.ui.error contents
44
- else
45
- @machine.ui.info 'W: ' + type
46
- @machine.ui.info contents
47
- end
48
- end
49
-
50
- def do_provision_configure(_configurator, cfg)
51
- @provision_actions = cfg.provision if !cfg.provision.nil? && cfg.provision
52
- end
53
-
54
- def do_primary_configuration(configurator, cfg)
55
- configurator.name cfg.name
56
- configurator.check_for_update cfg.check_update
57
- configurator.forward_ports cfg.ports
58
- end
59
-
60
- def do_network_configuration(configurator, cfg)
61
- configurator.configure_network cfg.ip unless cfg.ip.nil?
62
- aliases = cfg.hostname
63
- if aliases.is_a?(Array)
64
- hostname = aliases.shift
65
- else
66
- hostname = aliases.dup
67
- aliases = []
68
- end
69
- configurator.configure_hostnames(hostname, aliases)
70
- end
71
-
72
- def do_ssh_configuration(configurator, cfg)
73
- keys = Impressbox::Objects::SshKeyDetect.new(cfg)
74
- configurator.configure_ssh keys.public_key, keys.private_key
75
- end
76
-
77
- def do_provider_configuration(configurator, cfg)
78
- configurator.basic_configure cfg.name, cfg.cpus, cfg.memory, cfg.gui
79
- configurator.specific_configure cfg
80
- end
81
-
82
- def detect_provider
83
- if ARGV[1] && (ARGV[1].split('=')[0] == '--provider' || ARGV[2])
84
- return (ARGV[1].split('=')[1] || ARGV[2])
85
- end
86
- (ENV['VAGRANT_DEFAULT_PROVIDER'] || :virtualbox).to_sym
87
- end
88
-
89
- def create_configurator(root_config)
90
- require_relative File.join('objects', 'configurator')
91
- Impressbox::Objects::Configurator.new(
92
- root_config,
93
- @machine,
94
- detect_provider
95
- )
96
- end
97
-
98
- def xaml_config
99
- require_relative File.join('objects', 'config_file')
100
- Impressbox::Objects::ConfigFile.new @config.file
101
- end
102
- end
103
- end
1
+ # Loads all requirements
2
+ require 'vagrant'
3
+ require_relative File.join('objects', 'ssh_key_detect.rb')
4
+
5
+ # Impressbox namepsace
6
+ module Impressbox
7
+ # Provisioner namepsace
8
+ class Provisioner < Vagrant.plugin('2', :provisioner)
9
+
10
+ # @!attribute [rw] provision_actions
11
+ attr_accessor :provision_actions
12
+
13
+ # Do provision
14
+ def provision
15
+ if !@provision_actions.nil? && @provision_actions.to_s.length > 0
16
+ @machine.communicate.wait_for_ready 300
17
+
18
+ @machine.communicate.execute(@provision_actions.to_s) do |type, line|
19
+ write_line type, line
20
+ end
21
+ end
22
+ end
23
+
24
+ # Cleanup script
25
+ def cleanup
26
+ end
27
+
28
+ # Configure
29
+ def configure(root_config)
30
+ configurator = create_configurator(root_config)
31
+ cfg = xaml_config
32
+
33
+ do_primary_configuration configurator, cfg
34
+ do_ssh_configuration configurator, cfg
35
+ do_provider_configuration configurator, cfg
36
+ do_network_configuration configurator, cfg
37
+ do_provision_configure configurator, cfg
38
+ end
39
+
40
+ private
41
+
42
+ def write_line(type, contents)
43
+ case type
44
+ when :stdout
45
+ @machine.ui.info contents
46
+ when :stderr
47
+ @machine.ui.error contents
48
+ else
49
+ @machine.ui.info 'W: ' + type
50
+ @machine.ui.info contents
51
+ end
52
+ end
53
+
54
+ def do_provision_configure(_configurator, cfg)
55
+ @provision_actions = cfg.provision if !cfg.provision.nil? && cfg.provision
56
+ end
57
+
58
+ def do_primary_configuration(configurator, cfg)
59
+ configurator.name cfg.name
60
+ configurator.check_for_update cfg.check_update
61
+ configurator.forward_ports cfg.ports
62
+ end
63
+
64
+ def do_network_configuration(configurator, cfg)
65
+ configurator.configure_network cfg.ip unless cfg.ip.nil?
66
+ aliases = cfg.hostname
67
+ if aliases.is_a?(Array)
68
+ hostname = aliases.shift
69
+ else
70
+ hostname = aliases.dup
71
+ aliases = []
72
+ end
73
+ configurator.configure_hostnames(hostname, aliases)
74
+ end
75
+
76
+ def do_ssh_configuration(configurator, cfg)
77
+ keys = Impressbox::Objects::SshKeyDetect.new(cfg)
78
+ configurator.configure_ssh keys.public_key, keys.private_key
79
+ end
80
+
81
+ def do_provider_configuration(configurator, cfg)
82
+ configurator.basic_configure cfg.name, cfg.cpus, cfg.memory, cfg.gui
83
+ configurator.specific_configure cfg
84
+ end
85
+
86
+ def detect_provider
87
+ if ARGV[1] && (ARGV[1].split('=')[0] == '--provider' || ARGV[2])
88
+ return (ARGV[1].split('=')[1] || ARGV[2])
89
+ end
90
+ (ENV['VAGRANT_DEFAULT_PROVIDER'] || :virtualbox).to_sym
91
+ end
92
+
93
+ def create_configurator(root_config)
94
+ require_relative File.join('objects', 'configurator')
95
+ Impressbox::Objects::Configurator.new(
96
+ root_config,
97
+ @machine,
98
+ detect_provider
99
+ )
100
+ end
101
+
102
+ def xaml_config
103
+ require_relative File.join('objects', 'config_file')
104
+ Impressbox::Objects::ConfigFile.new @config.file
105
+ end
106
+ end
107
+ end
@@ -63,11 +63,6 @@ memory: {{memory}}
63
63
  # ---------------------------------------------------------------------------------------
64
64
  check_update: {{#check_update}}true{{/check_update}}{{^check_update}}false{{/check_update}}
65
65
 
66
- # ---------------------------------------------------------------------------------------
67
- # What command should execute vagrant exec command on host?
68
- # ---------------------------------------------------------------------------------------
69
- cmd: {{cmd}}
70
-
71
66
  # ---------------------------------------------------------------------------------------
72
67
  # What shell commands will be executed on provision?
73
68
  # ---------------------------------------------------------------------------------------
@@ -1,4 +1,4 @@
1
- # Plugin version information
2
- module Impressbox
3
- VERSION = '0.1.0'.freeze
4
- end
1
+ # Plugin version information
2
+ module Impressbox
3
+ VERSION = '0.1.1'.freeze
4
+ end
@@ -1,28 +1,30 @@
1
- en:
2
- description: |
3
- This plugin adds possibility to create and manage box with configuration defined in YAML file.
4
- This plugin is created for developing something with ImpressCMS but it's possible to use also with other CMS'es and framework.
5
- ssh_key:
6
- updating:
7
- public: Updating public key...
8
- private: Updating private key...
9
- copying:
10
- git_settings: Copying locale GIT settings to remote machine...
11
- config:
12
- recreated: Vagrant enviroment configuration (re)created
13
- updated: Vagrant enviroment configuration updated
14
- not_exist: "Config file %{file} not exist"
15
- command:
16
- impressbox:
17
- synopsis: Creates a Vagrantfile and config.yaml ready for use with ImpressBox
18
- usage: "Usage: %{cmd} [options]"
19
- arguments:
20
- box: "Box name for new box (default: %{box})"
21
- ip: "Defines IP (default: %{ip})"
22
- hostname: "Hostname associated with this box (default: %{hostname})"
23
- memory: "How much RAM (in megabytes)? (default: %{memory})"
24
- cpus: "How much CPU? (default: %{cpus})"
25
- cmd: "What command would be executed when use vagrant exec on host? (default: %{cmd})"
26
- special:
27
- recreate: "Recreates config instead of updating (so you don't need to delete first)"
1
+ en:
2
+ description: |
3
+ This plugin adds possibility to create and manage box with configuration defined in YAML file.
4
+ This plugin is created for developing something with ImpressCMS but it's possible to use also with other CMS'es and framework.
5
+ ssh_key:
6
+ updating:
7
+ public: Updating public key...
8
+ private: Updating private key...
9
+ not_found:
10
+ No SSH Key possible to load.
11
+ copying:
12
+ git_settings: Copying locale GIT settings to remote machine...
13
+ config:
14
+ recreated: Vagrant enviroment configuration (re)created
15
+ updated: Vagrant enviroment configuration updated
16
+ not_exist: "Config file %{file} not exist"
17
+ command:
18
+ impressbox:
19
+ synopsis: Creates a Vagrantfile and config.yaml ready for use with ImpressBox
20
+ usage: "Usage: %{cmd} [options]"
21
+ arguments:
22
+ box: "Box name for new box (default: %{box})"
23
+ ip: "Defines IP (default: %{ip})"
24
+ hostname: "Hostname associated with this box (default: %{hostname})"
25
+ memory: "How much RAM (in megabytes)? (default: %{memory})"
26
+ cpus: "How much CPU? (default: %{cpus})"
27
+ cmd: "What command would be executed when use vagrant exec on host? (default: %{cmd})"
28
+ special:
29
+ recreate: "Recreates config instead of updating (so you don't need to delete first)"
28
30
  use_template: "This argument says that predefined config will be used when creating box. Possible names: %{templates}"
@@ -1,31 +1,31 @@
1
- # coding: utf-8
2
- $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
3
- require 'vagrant-impressbox/version'
4
-
5
- Gem::Specification.new do |spec|
6
- spec.name = 'vagrant-impressbox'
7
- spec.version = Impressbox::VERSION
8
- spec.authors = ["Raimondas Rimkevi\xC4\x8Dius"]
9
- spec.email = ['mekdrop@impresscms.org']
10
-
11
- spec.summary = <<-EOD
12
- This plugin can do provision and create configurations for simple boxes for development
13
- EOD
14
- spec.description = <<-EOD
15
- This plugin can do provision and create configurations for simple boxes for development
16
- EOD
17
- spec.homepage = 'http://impresscms.org'
18
- spec.license = 'MIT'
19
-
20
- spec.files = `git ls-files -z`.split("\0")
21
- spec.bindir = 'exe'
22
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_path = 'lib'
24
-
25
- spec.add_development_dependency 'bundler', '<= 1.11.2'
26
- spec.add_development_dependency 'rake', '~> 1.10.6'
27
- spec.add_development_dependency 'rspec', '~> 2.14.0'
28
-
29
- spec.add_dependency 'mustache', '~> 1.0'
30
- spec.add_dependency 'vagrant-hostmanager', '~> 1.8', '>= 1.8.1'
31
- end
1
+ # coding: utf-8
2
+ $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), 'lib'))
3
+ require 'vagrant-impressbox/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = 'vagrant-impressbox'
7
+ spec.version = Impressbox::VERSION
8
+ spec.authors = ["Raimondas Rimkevi\xC4\x8Dius (aka MekDrop) <mekdrop@impresscms.org>"]
9
+ spec.email = ['mekdrop@impresscms.org']
10
+
11
+ spec.summary = <<-EOD
12
+ This plugin can do provision and create configurations for simple boxes for development
13
+ EOD
14
+ spec.description = <<-EOD
15
+ This plugin can do provision and create configurations for simple boxes for development
16
+ EOD
17
+ spec.homepage = 'http://impresscms.org'
18
+ spec.license = 'MIT'
19
+
20
+ spec.files = `git ls-files -z`.split("\0")
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_path = 'lib'
24
+
25
+ spec.add_development_dependency 'bundler', '<= 1.10.6'
26
+ spec.add_development_dependency 'rake', '~> 1.10.6'
27
+ spec.add_development_dependency 'rspec', '~> 2.14.0'
28
+
29
+ spec.add_dependency 'mustache', '~> 1.0'
30
+ spec.add_dependency 'vagrant-hostmanager', '~> 1.8', '>= 1.8.1'
31
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vagrant-impressbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
- - Raimondas Rimkevičius
7
+ - Raimondas Rimkevičius (aka MekDrop) <mekdrop@impresscms.org>
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-24 00:00:00.000000000 Z
11
+ date: 2016-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "<="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.11.2
19
+ version: 1.10.6
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "<="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.11.2
26
+ version: 1.10.6
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,7 @@ executables: []
94
94
  extensions: []
95
95
  extra_rdoc_files: []
96
96
  files:
97
+ - ".editorconfig"
97
98
  - ".gitignore"
98
99
  - ".rspec"
99
100
  - ".travis.yml"