drive_env 0.4.0 → 0.4.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
  SHA256:
3
- metadata.gz: bff4a1453c14161faa7baf74042a882fe3f526dd21a574d814c2a34870560d2f
4
- data.tar.gz: a89a3ccb92efe3453f4ee51e1a0b3b3fbcabc2f9b25c00a56b3f9020d0eec3a1
3
+ metadata.gz: c8a55c9e4871eb5653df12a3565c57e8b1b833da4705949e3fcb0acfd89d3a71
4
+ data.tar.gz: ef4b83412f6da3e8a0f15327eb8d6890a285a8754f466631dc37f17711cbb139
5
5
  SHA512:
6
- metadata.gz: cf0f097b20c55fe087557b462c20fe41dcb31a6b1e30a75cb0fc110b8f798b2d15dad6cbca5d1fc55dece490fe813ecc7d69ee15fc31c58d23fff35e3317e6eb
7
- data.tar.gz: e66fff342312c3226d427f3259d100416af648f175e4540db1effba146301d62554a344552a299be89771fbf282c05c40e864173f5c059612c0c1d2b1157187d
6
+ metadata.gz: a1923957903414ee3d4eba96bfd50f7498c9854beb0ab10d18a9716a4c6326a52ac897dcd10fa1269902b14be87cfa415d6f0bad8fd180cf8bf34d3dffd00cc6
7
+ data.tar.gz: 668f4b68f42e20910bac21c9cbd3cb8722b92f66a45083692c90515a11610259edba556f2ed57559f2187dc897a7ad61c37a255d0b1a0e1094ccd03f3e631ae1
data/README.md CHANGED
@@ -116,6 +116,44 @@ $ drive_env spreadsheet to_env sheet1 > .env
116
116
  $ your-ruby-application-with-dotenv-gem
117
117
  ```
118
118
 
119
+ #### Output format
120
+
121
+ JSON output is available by `--format=json` option.
122
+
123
+ ```
124
+ $ drive_env spreadsheet to_env sheet1 --format=json
125
+ [
126
+ {
127
+ "key": "RAILS_ENV",
128
+ "value": "production"
129
+ },
130
+ {
131
+ "key": "DATABASE_HOSTNAME",
132
+ "value": "x.x.x.x"
133
+ },
134
+ {
135
+ "key": "DATABASE_USERNAME",
136
+ "value": "appuser"
137
+ },
138
+ {
139
+ "key": "DATABASE_PASSWORD",
140
+ "value": "appuser"
141
+ },
142
+ {
143
+ "key": "SMTP_HOST",
144
+ "value": "x.x.x.x"
145
+ },
146
+ {
147
+ "key": "SMTP_USERNAME",
148
+ "value": "appuser"
149
+ },
150
+ {
151
+ "key": "SMTP_PASSWORD",
152
+ "value": "appuser"
153
+ }
154
+ ]
155
+ ```
156
+
119
157
  ## Development
120
158
 
121
159
  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.
@@ -2,6 +2,7 @@ require 'thor'
2
2
  require 'text-table'
3
3
  require 'google_drive'
4
4
  require 'drive_env'
5
+ require 'json'
5
6
 
6
7
  module DriveEnv
7
8
  module Cli
@@ -22,19 +23,34 @@ module DriveEnv
22
23
  end
23
24
 
24
25
  desc 'to_env SPREADSHEET_URL_OR_ALIAS', ''
26
+ option :format, type: 'string', default: 'dotenv', enum: %w[dotenv json],
27
+ desc: 'output format'
25
28
  def to_env(url_or_alias)
26
29
  ws = worksheet(url_or_alias)
30
+
31
+ envs = []
27
32
  ws.rows.each.with_index do |row, idx|
28
33
  row_to_env(row) do |key, value, comment|
34
+ envs << { key: key, value: value, comment: comment }
35
+ end
36
+ end
37
+
38
+ case options[:format]
39
+ when 'dotenv'
40
+ envs.each do |env|
29
41
  case
30
- when key && value && comment
31
- puts "#{key}=#{value} #{comment}"
32
- when key && value && !comment
33
- puts "#{key}=#{value}"
34
- when !key && !value && comment
35
- puts comment
42
+ when env[:key] && env[:value] && env[:comment]
43
+ puts "#{env[:key]}=#{env[:value]} #{env[:comment]}"
44
+ when env[:key] && env[:value] && !env[:comment]
45
+ puts "#{env[:key]}=#{env[:value]}"
46
+ when !env[:key] && !env[:value] && env[:comment]
47
+ puts "#{env[:comment]}"
36
48
  end
37
49
  end
50
+ when 'json'
51
+ puts JSON.pretty_generate(
52
+ envs.select{|env| env[:key] }.map{|env| { key: env[:key], value: env[:value] } }
53
+ )
38
54
  end
39
55
  end
40
56
 
@@ -1,3 +1,3 @@
1
1
  module DriveEnv
2
- VERSION = '0.4.0'
2
+ VERSION = '0.4.1'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: drive_env
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - YAMADA Tsuyoshi