gourami 1.0.0 → 1.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.
- checksums.yaml +5 -5
- data/README.md +3 -1
- data/Rakefile +14 -0
- data/gourami.gemspec +3 -2
- data/lib/gourami.rb +1 -0
- data/lib/gourami/attribute_name_conflict_error.rb +4 -0
- data/lib/gourami/attributes.rb +5 -0
- data/lib/gourami/version.rb +1 -1
- metadata +31 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: a1302c6c706d67636c8cf01672c1c50dbec89ff6
|
4
|
+
data.tar.gz: 74147a041e097f6218f56f72ba9aa9faf6824e73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 892353b9b9a4f4b9a55b7beeee102c72c025cfc7603dec3eec22c3372376bc9201537878a50c15af2bf7d10fd1307f0d57d843bd69dd29b29d9322dd8ecaf4bf
|
7
|
+
data.tar.gz: 09bc3491c1b7733dccfd701cb10246ead8c32e7ddc6648d11f6975d556d0001a870f455e3a842d807575da2e312e8194323e5b551c136c26890b192e9599f1bd
|
data/README.md
CHANGED
@@ -252,7 +252,9 @@ end
|
|
252
252
|
|
253
253
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
254
254
|
|
255
|
-
To install this gem onto your local machine, run `bundle exec rake install`.
|
255
|
+
To install this gem onto your local machine, run `bundle exec rake install`.
|
256
|
+
|
257
|
+
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).
|
256
258
|
|
257
259
|
To add another gem owner to gourami gem `gem owner --add john.smith@example.com gourami`
|
258
260
|
|
data/Rakefile
CHANGED
@@ -8,4 +8,18 @@ Rake::TestTask.new(:test) do |t|
|
|
8
8
|
end
|
9
9
|
|
10
10
|
task :spec => :test
|
11
|
+
namespace :test do
|
12
|
+
task :watch do |t, args|
|
13
|
+
require "filewatcher"
|
14
|
+
|
15
|
+
watcher = Filewatcher.new(["spec/", "lib/"], :every => true, :spinner => true, :immediate => true)
|
16
|
+
watcher.watch do |filename, event|
|
17
|
+
begin
|
18
|
+
Rake::Task[:test].execute(args)
|
19
|
+
rescue StandardError => error
|
20
|
+
puts "Error: #{error.message}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
11
25
|
task :default => :test
|
data/gourami.gemspec
CHANGED
@@ -21,8 +21,9 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ["lib"]
|
23
23
|
|
24
|
-
spec.add_development_dependency "pry", "~>0.10"
|
25
24
|
spec.add_development_dependency "bundler", "~> 1.13"
|
26
|
-
spec.add_development_dependency "
|
25
|
+
spec.add_development_dependency "filewatcher", "~> 1.1.0"
|
27
26
|
spec.add_development_dependency "minitest", "~> 5.0"
|
27
|
+
spec.add_development_dependency "pry", "~>0.10"
|
28
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
28
29
|
end
|
data/lib/gourami.rb
CHANGED
data/lib/gourami/attributes.rb
CHANGED
@@ -20,11 +20,16 @@ module Gourami
|
|
20
20
|
# @block default_block
|
21
21
|
# If provided, the block will be applied to options as the :default
|
22
22
|
def attribute(name, options = {}, &default_block)
|
23
|
+
base = self
|
23
24
|
options = options.dup
|
24
25
|
options[:default] = default_block if block_given?
|
25
26
|
|
26
27
|
mixin = Module.new do |mixin|
|
27
28
|
unless options[:skip_reader]
|
29
|
+
if base.instance_methods.include?(name) && !options[:override_reader]
|
30
|
+
raise AttributeNameConflictError, "#{name} is already a method. To use the existing method, use `:skip_reader => true` option. To override the existing method, use `:override_reader => true` option."
|
31
|
+
end
|
32
|
+
|
28
33
|
mixin.send(:define_method, :"#{name}") do
|
29
34
|
value = instance_variable_get(:"@#{name}")
|
30
35
|
default = options[:default]
|
data/lib/gourami/version.rb
CHANGED
metadata
CHANGED
@@ -1,71 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gourami
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TSMMark
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '1.13'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '1.13'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: filewatcher
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: 1.1.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
40
|
+
version: 1.1.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '5.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '5.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: pry
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0.10'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0.10'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rake
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '10.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '10.0'
|
69
83
|
description: Create Plain Old Ruby Objects that take attributes, validate them, and
|
70
84
|
perform an action.
|
71
85
|
email:
|
@@ -85,6 +99,7 @@ files:
|
|
85
99
|
- bin/setup
|
86
100
|
- gourami.gemspec
|
87
101
|
- lib/gourami.rb
|
102
|
+
- lib/gourami/attribute_name_conflict_error.rb
|
88
103
|
- lib/gourami/attributes.rb
|
89
104
|
- lib/gourami/coercer.rb
|
90
105
|
- lib/gourami/configuration_error.rb
|
@@ -118,7 +133,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
133
|
- !ruby/object:Gem::Version
|
119
134
|
version: '0'
|
120
135
|
requirements: []
|
121
|
-
|
136
|
+
rubyforge_project:
|
137
|
+
rubygems_version: 2.4.6
|
122
138
|
signing_key:
|
123
139
|
specification_version: 4
|
124
140
|
summary: Keep your Routes, Controllers and Models thin.
|