easy_settings 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +1 -1
  3. data/README.md +85 -42
  4. data/Rakefile +17 -1
  5. data/lib/easy_settings.rb +15 -11
  6. data/lib/easy_settings/rails.rb +8 -0
  7. data/lib/easy_settings_version.rb +1 -1
  8. data/spec/easy_settings_test/.env +1 -0
  9. data/spec/easy_settings_test/.gitignore +1 -0
  10. data/spec/easy_settings_test/.rspec +2 -0
  11. data/spec/easy_settings_test/Gemfile +8 -0
  12. data/spec/easy_settings_test/Gemfile.lock +139 -0
  13. data/spec/easy_settings_test/README.rdoc +28 -0
  14. data/spec/easy_settings_test/Rakefile +6 -0
  15. data/spec/easy_settings_test/app/assets/images/.keep +0 -0
  16. data/spec/easy_settings_test/app/assets/stylesheets/application.css +15 -0
  17. data/spec/easy_settings_test/app/controllers/application_controller.rb +5 -0
  18. data/spec/easy_settings_test/app/controllers/concerns/.keep +0 -0
  19. data/spec/easy_settings_test/app/helpers/application_helper.rb +2 -0
  20. data/spec/easy_settings_test/app/mailers/.keep +0 -0
  21. data/spec/easy_settings_test/app/models/.keep +0 -0
  22. data/spec/easy_settings_test/app/models/concerns/.keep +0 -0
  23. data/spec/easy_settings_test/app/views/layouts/application.html.erb +13 -0
  24. data/spec/easy_settings_test/bin/bundle +3 -0
  25. data/spec/easy_settings_test/bin/rails +4 -0
  26. data/spec/easy_settings_test/bin/rake +4 -0
  27. data/spec/easy_settings_test/bin/setup +29 -0
  28. data/spec/easy_settings_test/config.ru +4 -0
  29. data/spec/easy_settings_test/config/application.rb +32 -0
  30. data/spec/easy_settings_test/config/boot.rb +3 -0
  31. data/spec/easy_settings_test/config/environment.rb +5 -0
  32. data/spec/easy_settings_test/config/environments/development.rb +25 -0
  33. data/spec/easy_settings_test/config/environments/production.rb +64 -0
  34. data/spec/easy_settings_test/config/environments/test.rb +42 -0
  35. data/spec/easy_settings_test/config/initializers/backtrace_silencers.rb +7 -0
  36. data/spec/easy_settings_test/config/initializers/cookies_serializer.rb +3 -0
  37. data/spec/easy_settings_test/config/initializers/filter_parameter_logging.rb +4 -0
  38. data/spec/easy_settings_test/config/initializers/inflections.rb +16 -0
  39. data/spec/easy_settings_test/config/initializers/mime_types.rb +4 -0
  40. data/spec/easy_settings_test/config/initializers/session_store.rb +3 -0
  41. data/spec/easy_settings_test/config/initializers/wrap_parameters.rb +9 -0
  42. data/spec/easy_settings_test/config/locales/en.yml +23 -0
  43. data/spec/easy_settings_test/config/routes.rb +56 -0
  44. data/spec/easy_settings_test/config/secrets.yml +22 -0
  45. data/spec/easy_settings_test/config/settings.yml +15 -0
  46. data/spec/easy_settings_test/db/seeds.rb +7 -0
  47. data/spec/easy_settings_test/lib/assets/.keep +0 -0
  48. data/spec/easy_settings_test/lib/tasks/.keep +0 -0
  49. data/spec/easy_settings_test/log/.keep +0 -0
  50. data/spec/easy_settings_test/public/404.html +67 -0
  51. data/spec/easy_settings_test/public/422.html +67 -0
  52. data/spec/easy_settings_test/public/500.html +66 -0
  53. data/spec/easy_settings_test/public/favicon.ico +0 -0
  54. data/spec/easy_settings_test/public/robots.txt +5 -0
  55. data/spec/easy_settings_test/spec/easy_settings_spec.rb +10 -0
  56. data/spec/easy_settings_test/spec/rails_helper.rb +40 -0
  57. data/spec/easy_settings_test/spec/spec_helper.rb +92 -0
  58. data/spec/easy_settings_test/vendor/assets/stylesheets/.keep +0 -0
  59. metadata +105 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 71cdfe95b74d1b5acc54abcd249e0647b0ef5ece
4
- data.tar.gz: bf157033f6d5334369ceda9020de32c1ead1792e
3
+ metadata.gz: 66b0810ec966c00736a4eaef690c20165175bb39
4
+ data.tar.gz: 82bf4ff3af0cdfa919828e74726c877779eb3918
5
5
  SHA512:
6
- metadata.gz: d436786a757ad9558285fe1aa2ef372203424d5488c25fb9f92f7a3fdd6d217800629fe34fc27c7f9b053df742fbead1b254c72542d55ee50c1e3a51df8ec6c1
7
- data.tar.gz: b929886728c39e6ed070150e3c629a88c983850886156e632c15bd7b44c0e6285fc097193d037ca205ccc988eb18daccfc1e27d5437e9f48c33ed88bf2e29fe7
6
+ metadata.gz: 6048687c08e06e24432aeb5875d4f6ebd47b4b11c04ac4134850ded49d88a859fa39ff487f3d1d5dbb133dec1681d74c5f75e1aaca3e1d6bbaad25c30f73b800
7
+ data.tar.gz: cd08d5c305f3906664f084c94daaa7f78339ec5f963d5b42e79c6177162117d8b7cf120a6a1e472ee8a9ac1141f1689b8cea532283aa98afe2efc8f6b6e11f45
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2015 TODO: Write your name
1
+ Copyright (c) 2015 nownabe
2
2
 
3
3
  MIT License
4
4
 
data/README.md CHANGED
@@ -1,4 +1,9 @@
1
- # EasySettings [![Gem Version](https://badge.fury.io/rb/easy_settings.svg)](http://badge.fury.io/rb/easy_settings) [![Code Climate](https://codeclimate.com/github/nownabe/easy_settings/badges/gpa.svg)](https://codeclimate.com/github/nownabe/easy_settings) [![Test Coverage](https://codeclimate.com/github/nownabe/easy_settings/badges/coverage.svg)](https://codeclimate.com/github/nownabe/easy_settings) [![Build Status](https://travis-ci.org/nownabe/easy_settings.svg)](https://travis-ci.org/nownabe/easy_settings)
1
+ # EasySettings
2
+ [![Gem Version](https://badge.fury.io/rb/easy_settings.svg)](http://badge.fury.io/rb/easy_settings)
3
+ [![Code Climate](https://codeclimate.com/github/nownabe/easy_settings/badges/gpa.svg)](https://codeclimate.com/github/nownabe/easy_settings)
4
+ [![Test Coverage](https://codeclimate.com/github/nownabe/easy_settings/badges/coverage.svg)](https://codeclimate.com/github/nownabe/easy_settings)
5
+ [![Build Status](https://travis-ci.org/nownabe/easy_settings.svg)](https://travis-ci.org/nownabe/easy_settings)
6
+
2
7
  EasySettings is a simple manager of setting constants.
3
8
 
4
9
  ## Installation
@@ -21,49 +26,62 @@ Or install it yourself as:
21
26
  EasySettings can load YAML file and understand ERB format.
22
27
 
23
28
  ### Basic usage
24
- Most simple usage is to put your settings file `settings.yml` to your application's root directory.
29
+ Most simple usage is to put your settings file `settings.yml` to your application's directory.
25
30
 
26
31
  `settings.yml` or `config/settings.yml`:
27
32
 
28
33
  ```yaml
29
- app_name: EasySettingsSample
30
- users:
31
- nownabe:
32
- gender: male
33
- like: ["Angra", "Helloween", "SEX MACHINEGUNS", "μ's"]
34
- timestamp: <%= Time.now.to_s %>
34
+ log_level: info
35
+ other_service:
36
+ endpoint: https://myapp/api/v1
37
+ apikey: API_KEY_XXX
38
+ secret: SECRET_KEY_XXX
39
+ demo_users:
40
+ <% 5.times do |i| %>
41
+ - <%= "user%02d" % [i] %>
42
+ <% end %>
35
43
  ```
36
44
 
37
- And your application can use EasySettings:
45
+ And you can use EasySettings constant in your application:
38
46
 
39
47
  ```ruby
40
48
  require "easy_settings"
41
49
 
42
- EasySettings.app_name #=> "EasySettingsSample"
43
- EasySettings["app_name"] #=> "EasySettingsSample"
44
- EasySettings[:app_name] #=> "EasySettingsSample"
50
+ EasySettings.log_level #=> "info"
51
+ ```
45
52
 
46
- EasySettings.users
47
- #=> {"nownabe"=>{"gender"=>"male", "like"=>["Angra", "Helloween", "SEX MACHINEGUNS", "μ's"]}}
48
- EasySettings.users[:nownabe][:gender]
49
- #=> "male"
50
- EasySettings.users.nownabe.like
51
- #=> ["Angra", "Helloween", "SEX MACHINEGUNS", "μ's"]
53
+ EasySettings hash can be used with method style, string keys and symbol keys:
52
54
 
53
- EasySettings.timestamp
54
- #=> 2015-03-07 00:11:28 +0900
55
+ ```ruby
56
+ EasySettings.log_level #=> "info"
57
+ EasySettings["log_level"] #=> "info"
58
+ EasySettings[:log_level] #=> "info"
55
59
  ```
56
60
 
57
- You can set value to any key.
61
+ EasySettings can treat nested hash:
62
+
63
+ ```ruby
64
+ EasySettings.other_service
65
+ #=> {"endpoint"=>"https://myapp/api/v1", "apikey"=>"API_KEY_XXX", "secret"=>"SECRET_KEY_XXX"}
66
+
67
+ EasySettings.other_service.endpoint #=> "https://myapp/api/v1"
68
+ EasySettings.other_service["endpoint"] #=> "https://myapp/api/v1"
69
+ EasySettings.other_service[:endpoint] #=> "https://myapp/api/v1"
70
+ ```
71
+
72
+ EasySettings process ERB format:
73
+
74
+ ```ruby
75
+ EasySettings.demo_users
76
+ #=> ["user00", "user01", "user02", "user03", "user04"]
77
+ ```
78
+
79
+ You can set values.
58
80
 
59
81
  ```ruby
60
82
  EasySettings.app_name = "MyApp" #=> "MyApp"
61
83
  EasySettings["app_name"] #=> "MyApp"
62
84
  EasySettings[:app_name] #=> "MyApp"
63
-
64
- EasySettings["app_name"] = "MyApp2" #=> "MyApp2"
65
- EasySettings.app_name #=> "MyApp2"
66
- EasySettings[:app_name] #=> "MyApp2"
67
85
  ```
68
86
 
69
87
  If you want to use other settings file, you can use any other file with `EasySettings.source_file =`.
@@ -73,25 +91,22 @@ EasySettings.source_file = Rails.root.join("config/application.yml").to_s
73
91
  ```
74
92
 
75
93
  ### Namespace
76
- You can use namespace.
77
-
78
- Settings YAML file:
94
+ You can use EasySettings with namespace:
79
95
 
80
96
  ```yaml
81
97
  defaults: &defaults
82
98
  app_name: NamespaceSample
83
- endpoint: http://backend-dev/api/v1
84
99
 
85
- development:
100
+ development: &development
86
101
  <<: *defaults
87
- apikey: DEVFOOBAR123
88
- secret: DEVBAZQUX789
102
+ endpoint: http://backend-dev/api/v1
103
+
104
+ test:
105
+ <<: *development
89
106
 
90
107
  production:
91
108
  <<: *defaults
92
109
  endpoint: http://backend/api/v1
93
- apikey: PRDFOOBAR123
94
- secret: PRDBAZQUX789
95
110
  ```
96
111
 
97
112
  Using EasySettings with `namespace =`:
@@ -112,7 +127,7 @@ EasySettings.endpoint
112
127
 
113
128
  ### Default value
114
129
  You can set default value.
115
- Default value will be set with key when EasySettings doesn't have key.
130
+ Default value will be set when EasySettings doesn't have value with the key yet.
116
131
 
117
132
  ```ruby
118
133
  EasySettings.has_key?(:foo)
@@ -151,17 +166,16 @@ EasySettings.has_key?(:app_name)
151
166
  And EasySettings can treat nested hash:
152
167
 
153
168
  ```ruby
154
- EasySettings.users({}).nownabe = {gender: :male}
155
- #=> {:gender=>:male}
169
+ EasySettings.other_service({}).endpoint = "https://default/"
170
+ #=> "https://default/"
156
171
  EasySettings.to_h
157
- #=> {"users"=>{"nownabe"=>{"gender"=>:male}}}
172
+ #=> {"other_service"=>{"endpoint"=>"https://default/"}}
158
173
  ```
159
174
 
160
175
  Or more simple:
161
176
 
162
177
  ```ruby
163
- EasySettings.users!.nownabe = {gender: :male}
164
- #=> {:gender=>:male}
178
+ EasySettings.other_service!.endpoint = "https://default/"
165
179
  ```
166
180
 
167
181
  ### Reset EasySettings
@@ -176,7 +190,7 @@ EasySettings.reload!
176
190
  ### Alias
177
191
  ```ruby
178
192
  Config = EasySettings
179
- Config.app_name = "AliasSample"
193
+ Config.endpoint
180
194
  ```
181
195
 
182
196
  Or using class that inherit EasySettings:
@@ -189,9 +203,38 @@ end
189
203
  Config.endpoint
190
204
  ```
191
205
 
206
+ ## With Rails
207
+ In your Gemfile:
208
+
209
+ ```ruby
210
+ gem "easy_settings"
211
+ ```
212
+
213
+ And write your settings in `config/settings.yml` with env:
214
+
215
+ ```ruby
216
+ default: &default
217
+ app_name: MyApp
218
+ apikey: <%= ENV["APIKEY"] %>
219
+
220
+ development:
221
+ <<: *default
222
+ endpoint: https://endpoint-for-development
223
+
224
+ test:
225
+ <<: *default
226
+ endpoint: https://endpoint-for-test
227
+
228
+ production:
229
+ <<: *default
230
+ endpoint: https://endpoint-for-production
231
+ ```
232
+
233
+ Then you can access EasySettings anywhere.
234
+
192
235
  ## Contributing
193
236
 
194
- 1. Fork it ( https://github.com/[my-github-username]/easy_settings/fork )
237
+ 1. Fork it ( https://github.com/nownabe/easy_settings/fork )
195
238
  2. Create your feature branch (`git checkout -b my-new-feature`)
196
239
  3. Commit your changes (`git commit -am 'Add some feature'`)
197
240
  4. Push to the branch (`git push origin my-new-feature`)
data/Rakefile CHANGED
@@ -1,6 +1,22 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
3
 
4
- RSpec::Core::RakeTask.new(:spec)
5
4
  task default: :spec
6
5
 
6
+ desc "Run all test"
7
+ task spec: ["spec:unit", "spec:rails"]
8
+
9
+ namespace :spec do
10
+ RSpec::Core::RakeTask.new(:unit) do |t|
11
+ t.exclude_pattern = "./spec/easy_settings_test/**/*_spec.rb"
12
+ end
13
+
14
+ desc "Test for rails integration"
15
+ task :rails do
16
+ rails_root = File.expand_path("../spec/easy_settings_test", __FILE__)
17
+ Bundler.with_clean_env do
18
+ system("cd #{rails_root} && bundle install") || abort("Failed bundle install")
19
+ system("cd #{rails_root} && bundle exec rspec") || abort("Failed test in Rails app")
20
+ end
21
+ end
22
+ end
data/lib/easy_settings.rb CHANGED
@@ -2,12 +2,8 @@ require "hashie"
2
2
  require "yaml"
3
3
  require "erb"
4
4
 
5
- require "easy_settings_version"
6
-
7
5
  class EasySettings < Hashie::Mash
8
- include EasySettingsVersion
9
-
10
- class SourceFileNotExist < StandardError; end
6
+ SourceFileNotExist = Class.new(StandardError)
11
7
 
12
8
  DEFAULT_FILES = %w(settings.yml config/settings.yml)
13
9
 
@@ -58,12 +54,16 @@ class EasySettings < Hashie::Mash
58
54
 
59
55
  def _source_from_default_file
60
56
  DEFAULT_FILES.each do |f|
61
- path = File.expand_path(f, Dir.pwd)
57
+ path = File.expand_path(f, _root_path)
62
58
  return _load_file(path) if FileTest.exist?(path)
63
59
  end
64
60
  {}
65
61
  end
66
62
 
63
+ def _root_path
64
+ Dir.pwd
65
+ end
66
+
67
67
  def method_missing(method_name, *args, &blk)
68
68
  instance.send(method_name, *args, &blk)
69
69
  end
@@ -78,16 +78,16 @@ class EasySettings < Hashie::Mash
78
78
  return self.[](method_name, &blk) if key?(method_name)
79
79
  name, suffix = method_suffix(method_name)
80
80
  case suffix
81
- when '='
81
+ when "="
82
82
  assign_property(name, args.first)
83
- when '?'
83
+ when "?"
84
84
  !!self[name]
85
- when '!'
85
+ when "!"
86
86
  initializing_reader(name)
87
- when '_'
87
+ when "_"
88
88
  underbang_reader(name)
89
89
  else
90
- if !args[0].nil? or (args[1] and args[1][:nil])
90
+ if !args[0].nil? || (args[1] && args[1][:nil])
91
91
  assign_property(name, args.first)
92
92
  else
93
93
  self[method_name]
@@ -95,3 +95,7 @@ class EasySettings < Hashie::Mash
95
95
  end
96
96
  end
97
97
  end
98
+
99
+ if Object.const_defined?(:Rails)
100
+ require "easy_settings/rails"
101
+ end
@@ -0,0 +1,8 @@
1
+ class EasySettings
2
+ class Railtie < ::Rails::Railtie
3
+ initializer "easy_settings" do |app|
4
+ EasySettings.namespace ||= Rails.env
5
+ EasySettings.source_file ||= Rails.root.join("config/settings.yml").to_s
6
+ end
7
+ end
8
+ end
@@ -1,3 +1,3 @@
1
1
  module EasySettingsVersion
2
- VERSION = "0.0.5"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1 @@
1
+ APIKEY="EASYSETTINGS"
@@ -0,0 +1 @@
1
+ /log/*.log
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
@@ -0,0 +1,8 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rails', '4.2.4'
4
+ gem 'jbuilder', '~> 2.0'
5
+ gem "easy_settings", path: File.expand_path("../../../", __FILE__)
6
+ gem "rspec-rails"
7
+ gem "rspec-its"
8
+ gem "dotenv-rails"
@@ -0,0 +1,139 @@
1
+ PATH
2
+ remote: /Users/nownabe/src/github.com/nownabe/easy_settings
3
+ specs:
4
+ easy_settings (0.0.5)
5
+ hashie
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ actionmailer (4.2.4)
11
+ actionpack (= 4.2.4)
12
+ actionview (= 4.2.4)
13
+ activejob (= 4.2.4)
14
+ mail (~> 2.5, >= 2.5.4)
15
+ rails-dom-testing (~> 1.0, >= 1.0.5)
16
+ actionpack (4.2.4)
17
+ actionview (= 4.2.4)
18
+ activesupport (= 4.2.4)
19
+ rack (~> 1.6)
20
+ rack-test (~> 0.6.2)
21
+ rails-dom-testing (~> 1.0, >= 1.0.5)
22
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
23
+ actionview (4.2.4)
24
+ activesupport (= 4.2.4)
25
+ builder (~> 3.1)
26
+ erubis (~> 2.7.0)
27
+ rails-dom-testing (~> 1.0, >= 1.0.5)
28
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
+ activejob (4.2.4)
30
+ activesupport (= 4.2.4)
31
+ globalid (>= 0.3.0)
32
+ activemodel (4.2.4)
33
+ activesupport (= 4.2.4)
34
+ builder (~> 3.1)
35
+ activerecord (4.2.4)
36
+ activemodel (= 4.2.4)
37
+ activesupport (= 4.2.4)
38
+ arel (~> 6.0)
39
+ activesupport (4.2.4)
40
+ i18n (~> 0.7)
41
+ json (~> 1.7, >= 1.7.7)
42
+ minitest (~> 5.1)
43
+ thread_safe (~> 0.3, >= 0.3.4)
44
+ tzinfo (~> 1.1)
45
+ arel (6.0.3)
46
+ builder (3.2.2)
47
+ diff-lcs (1.2.5)
48
+ dotenv (2.0.2)
49
+ dotenv-rails (2.0.2)
50
+ dotenv (= 2.0.2)
51
+ railties (~> 4.0)
52
+ erubis (2.7.0)
53
+ globalid (0.3.6)
54
+ activesupport (>= 4.1.0)
55
+ hashie (3.4.2)
56
+ i18n (0.7.0)
57
+ jbuilder (2.3.2)
58
+ activesupport (>= 3.0.0, < 5)
59
+ multi_json (~> 1.2)
60
+ json (1.8.3)
61
+ loofah (2.0.3)
62
+ nokogiri (>= 1.5.9)
63
+ mail (2.6.3)
64
+ mime-types (>= 1.16, < 3)
65
+ mime-types (2.6.2)
66
+ mini_portile (0.6.2)
67
+ minitest (5.8.1)
68
+ multi_json (1.11.2)
69
+ nokogiri (1.6.6.2)
70
+ mini_portile (~> 0.6.0)
71
+ rack (1.6.4)
72
+ rack-test (0.6.3)
73
+ rack (>= 1.0)
74
+ rails (4.2.4)
75
+ actionmailer (= 4.2.4)
76
+ actionpack (= 4.2.4)
77
+ actionview (= 4.2.4)
78
+ activejob (= 4.2.4)
79
+ activemodel (= 4.2.4)
80
+ activerecord (= 4.2.4)
81
+ activesupport (= 4.2.4)
82
+ bundler (>= 1.3.0, < 2.0)
83
+ railties (= 4.2.4)
84
+ sprockets-rails
85
+ rails-deprecated_sanitizer (1.0.3)
86
+ activesupport (>= 4.2.0.alpha)
87
+ rails-dom-testing (1.0.7)
88
+ activesupport (>= 4.2.0.beta, < 5.0)
89
+ nokogiri (~> 1.6.0)
90
+ rails-deprecated_sanitizer (>= 1.0.1)
91
+ rails-html-sanitizer (1.0.2)
92
+ loofah (~> 2.0)
93
+ railties (4.2.4)
94
+ actionpack (= 4.2.4)
95
+ activesupport (= 4.2.4)
96
+ rake (>= 0.8.7)
97
+ thor (>= 0.18.1, < 2.0)
98
+ rake (10.4.2)
99
+ rspec-core (3.3.2)
100
+ rspec-support (~> 3.3.0)
101
+ rspec-expectations (3.3.1)
102
+ diff-lcs (>= 1.2.0, < 2.0)
103
+ rspec-support (~> 3.3.0)
104
+ rspec-its (1.2.0)
105
+ rspec-core (>= 3.0.0)
106
+ rspec-expectations (>= 3.0.0)
107
+ rspec-mocks (3.3.2)
108
+ diff-lcs (>= 1.2.0, < 2.0)
109
+ rspec-support (~> 3.3.0)
110
+ rspec-rails (3.3.3)
111
+ actionpack (>= 3.0, < 4.3)
112
+ activesupport (>= 3.0, < 4.3)
113
+ railties (>= 3.0, < 4.3)
114
+ rspec-core (~> 3.3.0)
115
+ rspec-expectations (~> 3.3.0)
116
+ rspec-mocks (~> 3.3.0)
117
+ rspec-support (~> 3.3.0)
118
+ rspec-support (3.3.0)
119
+ sprockets (3.3.5)
120
+ rack (> 1, < 3)
121
+ sprockets-rails (2.3.3)
122
+ actionpack (>= 3.0)
123
+ activesupport (>= 3.0)
124
+ sprockets (>= 2.8, < 4.0)
125
+ thor (0.19.1)
126
+ thread_safe (0.3.5)
127
+ tzinfo (1.2.2)
128
+ thread_safe (~> 0.1)
129
+
130
+ PLATFORMS
131
+ ruby
132
+
133
+ DEPENDENCIES
134
+ dotenv-rails
135
+ easy_settings!
136
+ jbuilder (~> 2.0)
137
+ rails (= 4.2.4)
138
+ rspec-its
139
+ rspec-rails