easy_settings 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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