hanami-shrine 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
- SHA1:
3
- metadata.gz: 95f56d0ad09fa6ed64fe698379207bbc7bb4b2f4
4
- data.tar.gz: 9ad7064c45f6f1d27bac6912d43764c9cf858502
2
+ SHA256:
3
+ metadata.gz: 41356c8d9d02d064b43a70b7e9191c3bac0138e3f33da8a65c58a841919fbdd6
4
+ data.tar.gz: b5f971c13ed05a258022e99b05a8098882b7186909af58942c8b1de995bce2ff
5
5
  SHA512:
6
- metadata.gz: bf8c05b4b151715ee75626b5ce683392aceac098bf6658409231bbe0ab5fba65b865634d59ca44b00fcb6e4fd51ccc42912263e04d9724c8afe2f03d5e95c306
7
- data.tar.gz: f49c6ab6e59ab7a2c4b0966ce86f2164b7bdd6b934c275572f17798d5365274c3357246bbead1a10464e615f3f9133263fb56b5d6f8bfd33c58335ee463e967a
6
+ metadata.gz: 3cda9b682c9f43ef8d9a3c75352e20d9eb8db657066df66fad16440434e898eb80e168cdea3810c288cf60d022fb89e480f7bc353df4e4f00cf403ff15d9fb5c
7
+ data.tar.gz: 2529a59065783fcb04afa13f85aa465c3b38cffb910bf127fe3924ed202abcdbdf56880de54510a547a81b090e7465ccade45e64eeb2c70c8a1ab2378caaa67f
@@ -0,0 +1,3 @@
1
+ POSTGRES_URL="postgres://localhost/test"
2
+ MYSQL_URL="mysql2://travis@localhost/test"
3
+ SQLITE_PATH="sqlite://spec/tmp/hanami_shrine_test"
data/.gitignore CHANGED
@@ -8,3 +8,4 @@
8
8
  /spec/reports/
9
9
  /spec/tmp/
10
10
  /tmp/
11
+ .env
data/.rspec CHANGED
@@ -1,2 +1 @@
1
- --format documentation
2
1
  --color
@@ -1,4 +1,19 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 2.3.3
4
- before_install: gem install bundler -v 1.10.6
4
+ before_install: gem install bundler -v 2.0.1
5
+
6
+ services:
7
+ - postgresql
8
+ - mysql
9
+
10
+ env:
11
+ - DB=sqlite
12
+ - DB=mysql
13
+ - DB=postgres
14
+
15
+ script:
16
+ - cp .env.travis .env
17
+ - if [[ "$DB" == "mysql" ]]; then mysql -e 'CREATE DATABASE IF NOT EXISTS test;'; fi
18
+ - if [[ "$DB" == "postgres" ]]; then psql -c 'create database test;' -U postgres; fi
19
+ - bundle exec rake
@@ -1,3 +1,7 @@
1
+ ## 0.4.1
2
+
3
+ * Make sure it's using Shrine 2.x, as this does not work with 3.0 (yet)
4
+
1
5
  ## 0.4.0
2
6
 
3
7
  * Added support for Shrine versions 2.7.0 and up, while dropping support for lower versions (@famano, see #6)
data/README.md CHANGED
@@ -1,22 +1,11 @@
1
1
  # Hanami::Shrine
2
2
 
3
- This gem aims at providing support for [Shrine](https://github.com/janko-m/shrine) uploader in Hanami applications. It also tries to be as simple as possible, without polluting the world around.
3
+ This gem aims at providing support for [Shrine](https://github.com/shrinerb/shrine) uploader in Hanami applications. It also tries to be as simple as possible, without polluting the world around.
4
4
 
5
5
  [![Build Status](https://travis-ci.org/katafrakt/hanami-shrine.svg)](https://travis-ci.org/katafrakt/hanami-shrine)
6
6
  [![Gem Version](https://badge.fury.io/rb/hanami-shrine.svg)](https://badge.fury.io/rb/hanami-shrine)
7
7
  [![Code Climate](https://codeclimate.com/github/katafrakt/hanami-shrine/badges/gpa.svg)](https://codeclimate.com/github/katafrakt/hanami-shrine)
8
8
 
9
- ### Current compatibility status
10
-
11
- #### **0.1.x**
12
- * works with Hanami 0.7.x
13
- * works with Hanami 0.8.x without validations (which have been extracted to separate gem)
14
-
15
- #### **0.2.x**
16
- * works with Hanami 0.9.x and 1.0.
17
-
18
- Future compatibility will only be provided with Hanami 1.0 and later (which will propably be compatible with 0.9 too).
19
-
20
9
  ## Installation
21
10
 
22
11
  Add this line to your application's Gemfile:
@@ -31,7 +20,7 @@ And then execute:
31
20
 
32
21
  ## Usage
33
22
 
34
- Setup Shrine with `hanami` plugin enabled. Check [Shrine's repository](https://github.com/janko-m/shrine) for more detailed description of the process.
23
+ Setup Shrine with `hanami` plugin enabled. Check [Shrine's repository](https://github.com/shrinerb/shrine) for more detailed description of the process.
35
24
 
36
25
  ```ruby
37
26
  class ImageAttachment < Shrine
@@ -66,6 +55,16 @@ After checking out the repo, run `bin/setup` to install dependencies. Then, run
66
55
 
67
56
  To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
68
57
 
58
+ ### Testing
59
+
60
+ Testing is done against 3 major database engines: PostgreSQL, MySQL and sqlite3. It is steered by environment variable `DB`. To run locally, first `cp .env.travis .env`, then put values matching your local configuration there. After that, you can test all three versions:
61
+
62
+ ```
63
+ DB=sqlite bundle exec rake
64
+ DB=postgres bundle exec rake
65
+ DB=mysql bundle exec rake
66
+ ```
67
+
69
68
  ## Contributing
70
69
 
71
70
  Bug reports and pull requests are welcome on GitHub at https://github.com/katafrakt/hanami-shrine.
data/Rakefile CHANGED
@@ -4,3 +4,22 @@ require "rspec/core/rake_task"
4
4
  RSpec::Core::RakeTask.new(:spec)
5
5
 
6
6
  task :default => :spec
7
+
8
+ namespace :spec do
9
+ task :all do
10
+ require 'dotenv'
11
+ Dotenv.load!
12
+ require_relative 'spec/database_helper'
13
+
14
+ %w(sqlite postgres mysql).each do |adapter|
15
+ ENV['DB_ADAPTER'] = adapter
16
+ ENV['DB_URL'] = DatabaseHelper.db_url
17
+ p ENV.keys
18
+ puts '########################'
19
+ puts "# Running for: #{adapter}"
20
+ puts "########################\n\n"
21
+ Rake::Task['spec'].invoke
22
+ Rake::Task['spec'].reenable
23
+ end
24
+ end
25
+ end
@@ -19,12 +19,15 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
20
  spec.require_paths = ["lib"]
21
21
 
22
- spec.add_dependency 'shrine', '>= 2.7.0'
22
+ spec.add_dependency 'shrine', '>= 2.16.0', '< 3.0'
23
23
  spec.add_dependency 'hanami-model', '>= 1.0'
24
24
  spec.add_dependency "hanami-utils", '>= 1.0'
25
25
 
26
- spec.add_development_dependency "bundler", "~> 1.10"
26
+ spec.add_development_dependency "bundler", "> 1.0"
27
27
  spec.add_development_dependency "rake", "~> 10.0"
28
28
  spec.add_development_dependency "rspec"
29
29
  spec.add_development_dependency "json"
30
+ spec.add_development_dependency "dotenv"
31
+ spec.add_development_dependency "pg"
32
+ spec.add_development_dependency "mysql2"
30
33
  end
@@ -1,5 +1,5 @@
1
1
  module Hanami
2
2
  module Shrine
3
- VERSION = '0.4.0'
3
+ VERSION = '0.4.1'
4
4
  end
5
5
  end
@@ -78,14 +78,20 @@ class Shrine
78
78
  end
79
79
 
80
80
  private
81
+
81
82
  def _attachments
82
83
  self.class._attachments
83
84
  end
84
85
 
85
86
  def save_attachments(entity)
87
+ if !entity.is_a?(::Hanami::Entity)
88
+ entity = self.class.entity.new(entity)
89
+ end
90
+
86
91
  _attachments.each do |a|
87
92
  entity = save_attachment(entity, a[:name], a[:class])
88
93
  end
94
+
89
95
  yield(entity)
90
96
  end
91
97
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hanami-shrine
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
  - Paweł Świątkowski
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-05 00:00:00.000000000 Z
11
+ date: 2019-10-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shrine
@@ -16,14 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.7.0
19
+ version: 2.16.0
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '3.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: 2.7.0
29
+ version: 2.16.0
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: hanami-model
29
35
  requirement: !ruby/object:Gem::Requirement
@@ -56,16 +62,16 @@ dependencies:
56
62
  name: bundler
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
- - - "~>"
65
+ - - ">"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.10'
67
+ version: '1.0'
62
68
  type: :development
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
- - - "~>"
72
+ - - ">"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.10'
74
+ version: '1.0'
69
75
  - !ruby/object:Gem::Dependency
70
76
  name: rake
71
77
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +114,48 @@ dependencies:
108
114
  - - ">="
109
115
  - !ruby/object:Gem::Version
110
116
  version: '0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: dotenv
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - ">="
122
+ - !ruby/object:Gem::Version
123
+ version: '0'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - ">="
129
+ - !ruby/object:Gem::Version
130
+ version: '0'
131
+ - !ruby/object:Gem::Dependency
132
+ name: pg
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - ">="
136
+ - !ruby/object:Gem::Version
137
+ version: '0'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ - !ruby/object:Gem::Dependency
146
+ name: mysql2
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - ">="
150
+ - !ruby/object:Gem::Version
151
+ version: '0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '0'
111
159
  description: Support for Shrine gem in Hanami framework
112
160
  email:
113
161
  - inquebrantable@gmail.com
@@ -115,6 +163,7 @@ executables: []
115
163
  extensions: []
116
164
  extra_rdoc_files: []
117
165
  files:
166
+ - ".env.travis"
118
167
  - ".gitignore"
119
168
  - ".rspec"
120
169
  - ".travis.yml"
@@ -148,8 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
148
197
  - !ruby/object:Gem::Version
149
198
  version: '0'
150
199
  requirements: []
151
- rubyforge_project:
152
- rubygems_version: 2.5.1
200
+ rubygems_version: 3.0.3
153
201
  signing_key:
154
202
  specification_version: 4
155
203
  summary: Support for Shrine gem in Hanami framework