gris 0.3.4 → 0.3.6

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 930b8c103850b5df577c6fbadb17796254df8414
4
- data.tar.gz: ab17808cd5babe4fe9157efbe94c0546c63d7006
3
+ metadata.gz: 19396544178bfbc38bc5a434941b3fd053e40e02
4
+ data.tar.gz: 4c35fb83a5586052a941f9933490b04409d4709b
5
5
  SHA512:
6
- metadata.gz: 0a8467849fc610d922a35cbdad6953d844c8ac0811163b88cd87975eb1897d95b919bf7326d9c099f3c5b3ae3b252f20613a7707bd82d83535417a0a232b05ad
7
- data.tar.gz: d646bf62c87167831f1936c4103127f86a323ce52961048473cfa90a250cb8185c1e185ec862bb35b4d613d5da12432690890907cef6d54bfa2bbcd41e52af38
6
+ metadata.gz: 0984a2bbedf2cf1d8408c8cae3d119dee87d76fd9934cd03da8e645806d779ce49055cda98c6b2b6cc17cbfc14917ec7d2caf31ee88d992e4feff00dfa64dff4
7
+ data.tar.gz: e9ab0808f54bf5903393d407598ed4c015e8051b86d089b20d9e5d10dbcd21d9ce60dc2bfb5a2bdec91eef68b9c41b33625a8abc4832f3e7ce57e1911d839a38
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gris (0.3.4)
4
+ gris (0.3.6)
5
5
  activesupport (~> 4.2, >= 4.2.0)
6
6
  chronic (~> 0.10.0)
7
7
  dalli (~> 2.7)
@@ -10,6 +10,7 @@ PATH
10
10
  grape-roar (~> 0.3.0, >= 0.3.0)
11
11
  grape-swagger (~> 0.10.0)
12
12
  hashie-forbidden_attributes (~> 0.1.0)
13
+ indefinite_article (~> 0.2)
13
14
  logging (~> 2.0)
14
15
  racksh (~> 1.0)
15
16
  rake (~> 10.4, >= 10.4.2)
@@ -105,6 +106,8 @@ GEM
105
106
  uri_template (~> 0.5)
106
107
  i18n (0.7.0)
107
108
  ice_nine (0.11.1)
109
+ indefinite_article (0.2.4)
110
+ activesupport
108
111
  json (1.8.3)
109
112
  little-plugger (1.1.3)
110
113
  logging (2.0.0)
@@ -112,7 +115,7 @@ GEM
112
115
  multi_json (~> 1.10)
113
116
  mini_portile (0.6.2)
114
117
  minitest (5.7.0)
115
- multi_json (1.11.1)
118
+ multi_json (1.11.2)
116
119
  multi_xml (0.5.5)
117
120
  multipart-post (2.0.0)
118
121
  net-http-digest_auth (1.4)
@@ -133,7 +136,7 @@ GEM
133
136
  rack-test (>= 0.5)
134
137
  rainbow (2.0.0)
135
138
  rake (10.4.2)
136
- representable (2.2.2)
139
+ representable (2.2.3)
137
140
  multi_json
138
141
  nokogiri
139
142
  uber (~> 0.0.7)
data/gris.gemspec CHANGED
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_runtime_dependency 'hashie-forbidden_attributes', '~> 0.1.0'
32
32
  s.add_runtime_dependency 'chronic', '~> 0.10.0'
33
33
  s.add_runtime_dependency 'dalli', '~> 2.7'
34
+ s.add_runtime_dependency 'indefinite_article', '~> 0.2'
34
35
 
35
36
  s.add_development_dependency 'bundler', '~> 1'
36
37
  s.add_development_dependency 'rspec', '~> 3.2'
data/lib/gris.rb CHANGED
@@ -9,6 +9,7 @@ require 'roar/representer'
9
9
  require 'roar/json'
10
10
  require 'roar/json/hal'
11
11
  require 'hashie-forbidden_attributes'
12
+ require 'indefinite_article'
12
13
 
13
14
  # require internal files
14
15
  require 'gris/application'
@@ -40,26 +40,28 @@ describe <%= name.classify.pluralize %>Endpoint do
40
40
  end
41
41
  let(:<%= name.underscore %>1) { Fabricate(:<%= name.underscore %>, attributes: <%= name.underscore %>_details) }
42
42
 
43
- it 'creates a <%= name.underscore %>' do
43
+ it 'creates <%= name.underscore.with_indefinite_article %>' do
44
44
  <%= name.underscore %> = client.<%= name.tableize %>._post(<%= name.underscore %>: <%= name.underscore %>_details)
45
45
  expect(<%= name.underscore %>.replace_me).to eq <%= name.underscore %>_details[:replace_me]
46
46
  end
47
47
 
48
- it 'returns a <%= name.underscore %>' do
48
+ it 'returns <%= name.underscore.with_indefinite_article %>' do
49
49
  <%= name.underscore %> = client.<%= name.underscore %>(id: <%= name.underscore %>1.id)
50
50
  expect(<%= name.underscore %>.id).to eq <%= name.underscore %>1.id
51
51
  expect(<%= name.underscore %>.replace_me).to eq <%= name.underscore %>_details[:replace_me]
52
52
  end
53
53
 
54
- it 'updates a <%= name.underscore %>' do
54
+ it 'updates <%= name.underscore.with_indefinite_article %>' do
55
55
  <%= name.underscore %> = client.<%= name.underscore %>(id: <%= name.underscore %>1.id)._patch(<%= name.underscore %>: { replace_me: 'braque is a talented artist' })
56
56
  expect(<%= name.underscore %>.id).to eq <%= name.underscore %>1.id
57
57
  expect(<%= name.underscore %>.replace_me).to eq 'braque is a talented artist'
58
58
  end
59
59
 
60
- it 'deletes a <%= name.underscore %>' do
61
- <%= name.underscore %> = client.<%= name.underscore %>(id: <%= name.underscore %>1.id)._delete
62
- expect(<%= name.underscore %>.id).to eq <%= name.underscore %>1.id
60
+ it 'deletes <%= name.underscore.with_indefinite_article %>' do
61
+ <%= name.underscore %> = Fabricate(:<%= name.underscore %>, attributes: <%= name.underscore %>_details)
62
+ expect do
63
+ client.<%= name.underscore %>(id: <%= name.underscore %>.id)._delete
64
+ end.to change { <%= name.classify %>.count }.by(-1)
63
65
  end
64
66
  end
65
67
  end
@@ -14,16 +14,12 @@ Set-Up for Development
14
14
  cd your-fork-directory
15
15
  bundle
16
16
  ```
17
- - `DATABASE_NAME` and `PERMITTED_TOKENS` are required environment variables. Prior to executing rake tasks, running the gris console or booting the application, set up your environment by doing **one** of the following:
18
- * Use [Dotenv](https://github.com/bkeepers/dotenv)—copy `.env.example` to `.env` and `.env.test` and modify it where appropriate
19
- * Export the minimum required environment variables `DATABASE_NAME` and `PERMITTED_TOKENS`
20
17
  - Set up the database
21
18
  ```
22
- DATABASE_NAME= PERMITTED_TOKENS= bundle exec rake db:create
23
- DATABASE_NAME= PERMITTED_TOKENS= bundle exec rake db:migrate
19
+ RACK_ENV=test bundle exec rake db:create
20
+ RACK_ENV=test bundle exec rake db:migrate
24
21
  ```
25
22
  - Verify that [Rubocop](https://github.com/bbatsov/rubocop) and specs pass.
26
23
  ```
27
- DATABASE_NAME= PERMITTED_TOKENS= bundle exec rake
24
+ bundle exec rake
28
25
  ```
29
-
@@ -3,6 +3,7 @@ ENV['RACK_ENV'] = 'test'
3
3
  require File.expand_path('../../config/application', __FILE__)
4
4
  require 'gris/rspec_extensions/response_helpers'
5
5
  require 'gris/rspec_extensions/active_record_shared_connection'
6
+ ActiveRecord::Migration.check_pending!
6
7
 
7
8
  # Requires supporting ruby files with custom matchers and macros, etc,
8
9
  # in spec/support/ and its subdirectories.
data/lib/gris/setup.rb CHANGED
@@ -28,7 +28,11 @@ module Gris
28
28
  end
29
29
 
30
30
  def db_connection_details
31
- YAML.load(ERB.new(File.read('./config/database.yml')).result)[Gris.env]
31
+ if ENV['DATABASE_URL']
32
+ ActiveRecord::ConnectionAdapters::ConnectionSpecification::ConnectionUrlResolver.new(ENV['DATABASE_URL']).to_hash
33
+ else
34
+ YAML.load(ERB.new(File.read('./config/database.yml')).result)[Gris.env]
35
+ end
32
36
  end
33
37
 
34
38
  def cache
data/lib/gris/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Gris
2
- VERSION = '0.3.4'
2
+ VERSION = '0.3.6'
3
3
 
4
4
  class Version
5
5
  class << self
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe Gris::Generators::ApiGenerator do
4
4
  include_context 'with generator'
5
- let(:api_name) { 'foo' }
5
+ let(:api_name) { 'article' }
6
6
 
7
7
  before do
8
8
  endpoints_directory_path = "#{generator_tmp_directory}/app/endpoints"
@@ -16,78 +16,79 @@ describe Gris::Generators::ApiGenerator do
16
16
 
17
17
  describe 'app' do
18
18
  it 'creates an endpoint class' do
19
- expected_api_file = File.join(generator_tmp_directory, 'app/endpoints/foos_endpoint.rb')
19
+ expected_api_file = File.join(generator_tmp_directory, 'app/endpoints/articles_endpoint.rb')
20
20
  api_code = File.read(expected_api_file)
21
- expect(api_code).to match(/class FoosEndpoint/)
21
+ expect(api_code).to match(/class ArticlesEndpoint/)
22
22
  end
23
23
 
24
24
  it 'creates a model class' do
25
- expected_model_file = File.join(generator_tmp_directory, 'app/models/foo.rb')
25
+ expected_model_file = File.join(generator_tmp_directory, 'app/models/article.rb')
26
26
  model_code = File.read(expected_model_file)
27
- expect(model_code).to match(/class Foo/)
27
+ expect(model_code).to match(/class Article/)
28
28
  end
29
29
 
30
30
  it 'creates an item presenter module' do
31
- expected_presenter_file = File.join(generator_tmp_directory, 'app/presenters/foo_presenter.rb')
31
+ expected_presenter_file = File.join(generator_tmp_directory, 'app/presenters/article_presenter.rb')
32
32
  presenter_code = File.read(expected_presenter_file)
33
- expect(presenter_code).to match(/module FooPresenter/)
33
+ expect(presenter_code).to match(/module ArticlePresenter/)
34
34
  end
35
35
 
36
36
  it 'item presenter includes Gris::Presenter' do
37
- presenter_file = File.join(generator_tmp_directory, 'app/presenters/foo_presenter.rb')
37
+ presenter_file = File.join(generator_tmp_directory, 'app/presenters/article_presenter.rb')
38
38
  require "./#{presenter_file}"
39
- expect(FooPresenter).to include(Gris::Presenter)
39
+ expect(ArticlePresenter).to include(Gris::Presenter)
40
40
  end
41
41
 
42
42
  it 'creates a collection presenter module' do
43
- expected_presenter_file = File.join(generator_tmp_directory, 'app/presenters/foos_presenter.rb')
43
+ expected_presenter_file = File.join(generator_tmp_directory, 'app/presenters/articles_presenter.rb')
44
44
  presenter_code = File.read(expected_presenter_file)
45
- expect(presenter_code).to match(/module FoosPresenter/)
45
+ expect(presenter_code).to match(/module ArticlesPresenter/)
46
46
  end
47
47
 
48
48
  it 'collection presenter includes Gris::Presenter' do
49
- presenter_file = File.join(generator_tmp_directory, 'app/presenters/foos_presenter.rb')
49
+ presenter_file = File.join(generator_tmp_directory, 'app/presenters/articles_presenter.rb')
50
50
  require "./#{presenter_file}"
51
- expect(FoosPresenter).to include(Gris::Presenter)
51
+ expect(ArticlesPresenter).to include(Gris::Presenter)
52
52
  end
53
53
 
54
54
  it 'collection presenter includes Gris::PaginatedPresenter' do
55
- presenter_file = File.join(generator_tmp_directory, 'app/presenters/foos_presenter.rb')
55
+ presenter_file = File.join(generator_tmp_directory, 'app/presenters/articles_presenter.rb')
56
56
  require "./#{presenter_file}"
57
- expect(FoosPresenter).to include(Gris::PaginatedPresenter)
57
+ expect(ArticlesPresenter).to include(Gris::PaginatedPresenter)
58
58
  end
59
59
 
60
60
  it 'mounts new endpoint in ApplicationEndpoint' do
61
61
  expected_endpoint_file = File.join(generator_tmp_directory, 'app/endpoints/application_endpoint.rb')
62
62
  endpoint_file = File.read(expected_endpoint_file)
63
- expect(endpoint_file).to match(/mount FoosEndpoint/)
63
+ expect(endpoint_file).to match(/mount ArticlesEndpoint/)
64
64
  end
65
65
 
66
66
  it 'adds links to RootPresenter' do
67
67
  expected_root_presenter_file = File.join(generator_tmp_directory, 'app/presenters/root_presenter.rb')
68
68
  presenter_file = File.read(expected_root_presenter_file)
69
- expect(presenter_file).to match(/link :foo do |opts|/)
70
- expect(presenter_file).to match(/link :foos do |opts|/)
69
+ expect(presenter_file).to match(/link :article do |opts|/)
70
+ expect(presenter_file).to match(/link :articles do |opts|/)
71
71
  end
72
72
  end
73
73
 
74
74
  describe 'spec' do
75
75
  it 'creates an api spec' do
76
- expected_api_file = File.join(generator_tmp_directory, 'spec/endpoints/foos_endpoint_spec.rb')
76
+ expected_api_file = File.join(generator_tmp_directory, 'spec/endpoints/articles_endpoint_spec.rb')
77
77
  api_code = File.read(expected_api_file)
78
- expect(api_code).to match(/describe FoosEndpoint/)
78
+ expect(api_code).to match(/describe ArticlesEndpoint/)
79
+ expect(api_code).to match(/returns an article/)
79
80
  end
80
81
 
81
82
  it 'creates a fabricator' do
82
- expected_fabricator_file = File.join(generator_tmp_directory, 'spec/fabricators/foos_fabricator.rb')
83
+ expected_fabricator_file = File.join(generator_tmp_directory, 'spec/fabricators/articles_fabricator.rb')
83
84
  fabricator_code = File.read(expected_fabricator_file)
84
- expect(fabricator_code).to include 'Fabricator(:foo) do'
85
+ expect(fabricator_code).to include 'Fabricator(:article) do'
85
86
  end
86
87
 
87
88
  it 'creates a model spec' do
88
- expected_model_file = File.join(generator_tmp_directory, 'spec/models/foo_spec.rb')
89
+ expected_model_file = File.join(generator_tmp_directory, 'spec/models/article_spec.rb')
89
90
  model_code = File.read(expected_model_file)
90
- expect(model_code).to match(/describe Foo/)
91
+ expect(model_code).to match(/describe Article/)
91
92
  end
92
93
  end
93
94
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gris
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dylan Fareed
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-19 00:00:00.000000000 Z
11
+ date: 2015-07-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -222,6 +222,20 @@ dependencies:
222
222
  - - "~>"
223
223
  - !ruby/object:Gem::Version
224
224
  version: '2.7'
225
+ - !ruby/object:Gem::Dependency
226
+ name: indefinite_article
227
+ requirement: !ruby/object:Gem::Requirement
228
+ requirements:
229
+ - - "~>"
230
+ - !ruby/object:Gem::Version
231
+ version: '0.2'
232
+ type: :runtime
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ requirements:
236
+ - - "~>"
237
+ - !ruby/object:Gem::Version
238
+ version: '0.2'
225
239
  - !ruby/object:Gem::Dependency
226
240
  name: bundler
227
241
  requirement: !ruby/object:Gem::Requirement