envyable 1.0.0 → 1.1.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: 3200aedd3b04ed43ad9fd1e75564d81549ba4958
4
- data.tar.gz: 9c48bca7830540999cfb5ee18e67edba2f411681
3
+ metadata.gz: 9af9099263d420d122e266e2342e8896eaa656e2
4
+ data.tar.gz: 838d6e0b501c7b82b101cddee16a5804cfd21029
5
5
  SHA512:
6
- metadata.gz: 86fbe5ab7f712f6aadb458c04ce02e0e6e57bcc3a56315d269224890414524c08858da0b4d00984785fa96616efb209a7a4a173b3bdeec67a76d16c569c6b5a1
7
- data.tar.gz: dd1db30e4fd41cf05533cd6ee4fe341f07836c2ae002fbdae3703f3a5c1a44532387c80c2ca4c8cbe4baa4768f9588483b900366c40b31a4df03835a395a55fb
6
+ metadata.gz: c15fcfebd3d6f87e7c5a6b3ddebfe0ae5c8ea374e696a49432cf6eb138706e72b65d9a30a712fd5052f52a831ae9a4b972db45d0da45c6c95b2f789072afdbd6
7
+ data.tar.gz: 816bad4d47b57e8830233288c814d2439766cdf587643186e62f71df69a93d340ee866d41d54c1ac5db31f656e1c6010ca86839e80b9442217f6f9608ba8b671
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ spec/reports
16
16
  test/tmp
17
17
  test/version_tmp
18
18
  tmp
19
+ spec/sandbox
@@ -1,7 +1,12 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.0.0
4
- - 2.1.0
5
- - 2.2.0
4
+ - 2.1.10
5
+ - 2.2.5
6
+ - 2.3.1
6
7
  - jruby-19mode
7
- - rbx
8
+ - rbx-3.56
9
+ before_install: gem install bundler
10
+ matrix:
11
+ allow_failures:
12
+ - rvm: rbx-3.56
@@ -1,5 +1,15 @@
1
1
  # ChangeLog
2
2
 
3
+ ## 1.1.0 / 2016-08-31
4
+
5
+ * [FEATURE] New envyable executable with a single command: `envyable install`. Will setup a good default for envyable, including `config/env.yml` and `config/env.yml.example` files and gitignoring the `config/env.yml` file.
6
+ * [ENHANCEMENT] Adds code coverage report
7
+ * [ENHANCEMENT] Adds Code Climate score and coverage report badges to README
8
+
9
+ ## 1.0.0 / 2016-01-24
10
+
11
+ * [FEATURE] If you have gems that require variables to be set earlier, then place `envyable` in the `Gemfile` before those gems and require `envyable/rails-now`. Thanks to @mikelkew.
12
+
3
13
  ## 0.2.0 / 2015-03-16
4
14
 
5
15
  * [FEATURE] Allows user to add default values and then override on an environment by environment basis
data/Gemfile CHANGED
@@ -3,6 +3,11 @@ source 'https://rubygems.org'
3
3
  # Specify your gem's dependencies in envyable.gemspec
4
4
  gemspec
5
5
 
6
+ group :test do
7
+ gem "codeclimate-test-reporter", :require => nil
8
+ gem "simplecov", "~> 0.12", :require => nil
9
+ end
10
+
6
11
  platforms :rbx do
7
12
  gem 'racc'
8
13
  gem 'rubysl', '~> 2.0'
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The simplest yaml to ENV config loader.
4
4
 
5
- [![Build Status](https://travis-ci.org/philnash/envyable.png?branch=master)](https://travis-ci.org/philnash/envyable)
5
+ [![Build Status](https://travis-ci.org/philnash/envyable.svg?branch=master)](https://travis-ci.org/philnash/envyable) [![Code Climate](https://codeclimate.com/github/philnash/envyable/badges/gpa.svg)](https://codeclimate.com/github/philnash/envyable) [![Test Coverage](https://codeclimate.com/github/philnash/envyable/badges/coverage.svg)](https://codeclimate.com/github/philnash/envyable/coverage)
6
6
 
7
7
  ## Installation
8
8
 
@@ -18,6 +18,25 @@ Or install it yourself as:
18
18
 
19
19
  $ gem install envyable
20
20
 
21
+ ### Install task
22
+
23
+ Once the gem is included in your project, you can then use it to generate the
24
+ default required files. Just run:
25
+
26
+ ```
27
+ $ envyable install
28
+ ```
29
+
30
+ and you will get a `config` directory containing an `env.yml` and a
31
+ `env.yml.example` file. If you have a `.gitignore` file this will also append
32
+ the line
33
+
34
+ ```yaml
35
+ /config/env.yml
36
+ ```
37
+
38
+ to your config so that you do not check in `/config/env.yml`.
39
+
21
40
  ## Usage
22
41
 
23
42
  ### YAML file
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ require "thor"
3
+
4
+ require "./lib/envyable/cli"
5
+
6
+ Envyable::CLI.start
@@ -18,6 +18,8 @@ Gem::Specification.new do |spec|
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
20
20
 
21
+ spec.add_dependency "thor", ">= 0.18.1", "< 2.0"
22
+
21
23
  spec.add_development_dependency "bundler", "~> 1.3"
22
24
  spec.add_development_dependency "minitest"
23
25
  spec.add_development_dependency "rake"
@@ -0,0 +1,20 @@
1
+ require "thor"
2
+
3
+ module Envyable
4
+ class CLI < Thor
5
+ include Thor::Actions
6
+
7
+ namespace :envyable
8
+
9
+ desc "install", "Installs Envyable with sensible defaults"
10
+ def install
11
+ create_file("config/env.yml")
12
+ create_file("config/env.yml.example")
13
+ if File.exists?("#{destination_root}/.gitignore")
14
+ append_to_file(".gitignore") do
15
+ "\n# Don't check in credentials \nconfig/env.yml"
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module Envyable
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -0,0 +1,42 @@
1
+ require File.expand_path('../../spec_helper', __FILE__)
2
+ require File.expand_path('../../../lib/envyable/cli', __FILE__)
3
+
4
+ describe Envyable::CLI do
5
+ before do
6
+ ::FileUtils.rm_rf(destination_root)
7
+ end
8
+
9
+ let(:cli) { Envyable::CLI.new([], {}, :destination_root => destination_root) }
10
+
11
+ describe "install" do
12
+ it "should create a file in config/env.yml" do
13
+ env_yml = "#{cli.destination_root}/config/env.yml"
14
+ File.exists?(env_yml).must_equal false
15
+ capture_io { cli.install }
16
+ File.exists?(env_yml).must_equal true
17
+ end
18
+
19
+ it "should create a file in config/env.yml.example" do
20
+ env_yml_example = "#{cli.destination_root}/config/env.yml.example"
21
+ File.exists?(env_yml_example).must_equal false
22
+ capture_io { cli.install }
23
+ File.exists?(env_yml_example).must_equal true
24
+ end
25
+
26
+ it "should not create a .gitignore" do
27
+ gitignore = "#{cli.destination_root}/.gitignore"
28
+ File.exists?(gitignore).must_equal false
29
+ capture_io { cli.install }
30
+ File.exists?(gitignore).must_equal false
31
+ end
32
+
33
+ it "should add config/env.yml to existing .gitignore" do
34
+ gitignore = "#{cli.destination_root}/.gitignore"
35
+ cli = Envyable::CLI.new([], {}, :destination_root => destination_root(:with_gitignore => true))
36
+ File.exists?(gitignore).must_equal true
37
+ File.readlines(gitignore).none? { |line| line == "config/env.yml" }.must_equal true
38
+ capture_io { cli.install }
39
+ File.readlines(gitignore).any? { |line| line == "config/env.yml" }.must_equal true
40
+ end
41
+ end
42
+ end
@@ -1,5 +1,26 @@
1
+ require 'fileutils'
1
2
  require 'rubygems'
3
+ begin
4
+ require "simplecov"
5
+ require "codeclimate-test-reporter"
6
+ SimpleCov.start do
7
+ formatter SimpleCov::Formatter::MultiFormatter.new([
8
+ SimpleCov::Formatter::HTMLFormatter,
9
+ CodeClimate::TestReporter::Formatter
10
+ ])
11
+ add_filter "/spec/"
12
+ end
13
+ rescue LoadError
14
+ end
15
+
2
16
  gem 'minitest'
3
17
  require 'minitest/autorun'
4
18
 
5
19
  require File.join(File.dirname(__FILE__), '..', 'lib', 'envyable')
20
+
21
+ def destination_root(opts={})
22
+ dir = File.join(File.dirname(__FILE__), "sandbox")
23
+ FileUtils.mkdir_p(dir)
24
+ FileUtils.touch("#{dir}/.gitignore") if opts[:with_gitignore]
25
+ dir
26
+ end
metadata CHANGED
@@ -1,22 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: envyable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Phil Nash
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-24 00:00:00.000000000 Z
11
+ date: 2016-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: 0.18.1
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '2.0'
22
+ name: thor
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 0.18.1
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ - !ruby/object:Gem::Dependency
15
34
  requirement: !ruby/object:Gem::Requirement
16
35
  requirements:
17
36
  - - "~>"
18
37
  - !ruby/object:Gem::Version
19
38
  version: '1.3'
39
+ name: bundler
20
40
  type: :development
21
41
  prerelease: false
22
42
  version_requirements: !ruby/object:Gem::Requirement
@@ -25,12 +45,12 @@ dependencies:
25
45
  - !ruby/object:Gem::Version
26
46
  version: '1.3'
27
47
  - !ruby/object:Gem::Dependency
28
- name: minitest
29
48
  requirement: !ruby/object:Gem::Requirement
30
49
  requirements:
31
50
  - - ">="
32
51
  - !ruby/object:Gem::Version
33
52
  version: '0'
53
+ name: minitest
34
54
  type: :development
35
55
  prerelease: false
36
56
  version_requirements: !ruby/object:Gem::Requirement
@@ -39,12 +59,12 @@ dependencies:
39
59
  - !ruby/object:Gem::Version
40
60
  version: '0'
41
61
  - !ruby/object:Gem::Dependency
42
- name: rake
43
62
  requirement: !ruby/object:Gem::Requirement
44
63
  requirements:
45
64
  - - ">="
46
65
  - !ruby/object:Gem::Version
47
66
  version: '0'
67
+ name: rake
48
68
  type: :development
49
69
  prerelease: false
50
70
  version_requirements: !ruby/object:Gem::Requirement
@@ -55,7 +75,8 @@ dependencies:
55
75
  description: The simplest yaml to ENV config loader
56
76
  email:
57
77
  - philnash@gmail.com
58
- executables: []
78
+ executables:
79
+ - envyable
59
80
  extensions: []
60
81
  extra_rdoc_files: []
61
82
  files:
@@ -66,12 +87,15 @@ files:
66
87
  - LICENSE.txt
67
88
  - README.md
68
89
  - Rakefile
90
+ - bin/envyable
69
91
  - envyable.gemspec
70
92
  - lib/envyable.rb
93
+ - lib/envyable/cli.rb
71
94
  - lib/envyable/loader.rb
72
95
  - lib/envyable/rails-now.rb
73
96
  - lib/envyable/railtie.rb
74
97
  - lib/envyable/version.rb
98
+ - spec/envyable/cli_spec.rb
75
99
  - spec/envyable/loader_spec.rb
76
100
  - spec/envyable_spec.rb
77
101
  - spec/fixtures/default_env.yml
@@ -97,11 +121,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
97
121
  version: '0'
98
122
  requirements: []
99
123
  rubyforge_project:
100
- rubygems_version: 2.5.1
124
+ rubygems_version: 2.6.2
101
125
  signing_key:
102
126
  specification_version: 4
103
127
  summary: The simplest yaml to ENV config loader
104
128
  test_files:
129
+ - spec/envyable/cli_spec.rb
105
130
  - spec/envyable/loader_spec.rb
106
131
  - spec/envyable_spec.rb
107
132
  - spec/fixtures/default_env.yml