bottle_service 0.0.2 → 0.1.0

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
2
  SHA1:
3
- metadata.gz: 5832c1cd89c6d57f381540f1e78e584790af2ef5
4
- data.tar.gz: a31bc34a31ce20659ca7d973a09da8c66d30a575
3
+ metadata.gz: 5dfa858874d43209d28614f5e6e1b719278e7e47
4
+ data.tar.gz: 0621db9058691d4ceacd0e40178f043eb2932978
5
5
  SHA512:
6
- metadata.gz: 7b50a5de1b456f861448b00d68ba1ffb00c6ce90c9f9864ca07b49a9e7e670aacb0a397d017f4ff9a3ec6609d53a6477c6ba276b4980002a9199a790cd259c26
7
- data.tar.gz: ecfc63ab99de7622feac621e753cf1d0397c3b8d8617623bbb0402a439450a89c750888955f24161d4d2d87472fe16648a2ce9dc77d232a2c5fa5f1565aaac0b
6
+ metadata.gz: a064f9848f4ef75f14d3ed38485d5794822a15468affd1760667822656188a259ca9df1879166aa4a3443e74394c11acd9e643a4f8a888c9040ba1f8f54495e1
7
+ data.tar.gz: b0b76708e098ed995ee78e3fc192127ff0a5b13dc55dfc35aeab96585e79768a148844da96449719a52e9d0ce2792ba503203c3525a4455243cd8a8515913833
data/.gitignore CHANGED
@@ -1 +1,3 @@
1
1
  *.gem
2
+ coverage
3
+ Gemfile.lock
data/Gemfile CHANGED
@@ -2,5 +2,3 @@
2
2
  source "https://rubygems.org"
3
3
 
4
4
  gemspec
5
-
6
- gem "rspec", "~> 3.1"
data/Guardfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ guard :rspec, cmd: "bundle exec rspec" do
3
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
+ watch("spec/spec_helper.rb") { "spec" }
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ end
@@ -21,5 +21,8 @@ Gem::Specification.new do |gem|
21
21
 
22
22
  gem.add_dependency "virtus", "~> 1.0", ">= 1.0.5"
23
23
 
24
- gem.add_development_dependency "rake"
24
+ gem.add_development_dependency "rake", ">= 11.1"
25
+ gem.add_development_dependency "simplecov"
26
+ gem.add_development_dependency "rspec", "~> 3.4"
27
+ gem.add_development_dependency "guard-rspec", "~> 4.6"
25
28
  end
@@ -1,11 +1,6 @@
1
1
  # frozen_string_literal: true
2
- require "virtus"
2
+ require "bottle_service/waitress"
3
+ require "bottle_service/version"
3
4
 
4
- # Service Module
5
- class BottleService
6
- include Virtus.model strict: true
7
-
8
- def call(*args)
9
- new(*args).call
10
- end
5
+ module BottleService
11
6
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module BottleService
3
- VERSION = "0.0.2"
3
+ VERSION = "0.1.0"
4
4
  end
@@ -0,0 +1,12 @@
1
+ # frozen_string_literal: true
2
+ require "virtus"
3
+
4
+ module BottleService
5
+ class Waitress
6
+ include Virtus.model strict: true
7
+
8
+ def self.call(*args)
9
+ new(*args).call
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+ require "spec_helper"
3
+ require "fixtures/greeter"
4
+
5
+ RSpec.describe Greeter do
6
+ describe '#call' do
7
+ it "works with name: 'world'" do
8
+ expect(Greeter.call(name: "world")).to eq("Hello world!")
9
+ end
10
+
11
+ it "fails with name: 'netherlands'" do
12
+ expect(Greeter.call(name: "netherlands")).not_to eq("Hello world!")
13
+ end
14
+
15
+ it "fails with name: 'netherlands'" do
16
+ expect do
17
+ Greeter.call(location: "netherlands")
18
+ end.to raise_exception(Virtus::CoercionError)
19
+ end
20
+
21
+ it "fails with 'world'" do
22
+ expect { Greeter.call("world") }.to raise_exception(NoMethodError)
23
+ end
24
+
25
+ it "fails when it's being sent an integer" do
26
+ expect do
27
+ Greeter.call(name: { hello: "world" })
28
+ end.to raise_exception(Virtus::CoercionError)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+ require "bottle_service"
3
+
4
+ class Greeter < BottleService::Waitress
5
+ attribute :name, String
6
+
7
+ def call
8
+ "Hello #{@name}!"
9
+ end
10
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,17 @@
1
1
  # frozen_string_literal: true
2
+ require "simplecov"
3
+
4
+ SimpleCov.start "rails" do
5
+ add_filter "app/channels/application_cable"
6
+ add_group "ActionCable", "app/channels"
7
+ add_group "Services", "app/services"
8
+
9
+ # Files with <= 5 lines often are application_*.rb files
10
+ add_filter do |source_file|
11
+ source_file.lines.count <= 5
12
+ end
13
+ end
14
+
2
15
  # This file was generated by the `rspec --init` command. Conventionally, all
3
16
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
4
17
  # The generated `.rspec` file contains `--require spec_helper` which will cause
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bottle_service
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henricus Louwhoff
@@ -33,6 +33,20 @@ dependencies:
33
33
  version: 1.0.5
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rake
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '11.1'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '11.1'
48
+ - !ruby/object:Gem::Dependency
49
+ name: simplecov
36
50
  requirement: !ruby/object:Gem::Requirement
37
51
  requirements:
38
52
  - - ">="
@@ -45,6 +59,34 @@ dependencies:
45
59
  - - ">="
46
60
  - !ruby/object:Gem::Version
47
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.4'
69
+ type: :development
70
+ prerelease: false
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '3.4'
76
+ - !ruby/object:Gem::Dependency
77
+ name: guard-rspec
78
+ requirement: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '4.6'
83
+ type: :development
84
+ prerelease: false
85
+ version_requirements: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '4.6'
48
90
  description: Service Objects on Steroids for Plain Old Ruby Objects
49
91
  email:
50
92
  - henry@postb.us
@@ -59,14 +101,16 @@ files:
59
101
  - ".rspec"
60
102
  - ".rubocop.yml"
61
103
  - Gemfile
62
- - Gemfile.lock
104
+ - Guardfile
63
105
  - LICENSE
64
106
  - README.md
65
107
  - Rakefile
66
108
  - bottle_service.gemspec
67
109
  - lib/bottle_service.rb
68
- - lib/bottle_service/bottle_service_error.rb
69
110
  - lib/bottle_service/version.rb
111
+ - lib/bottle_service/waitress.rb
112
+ - spec/bottle_service_spec.rb
113
+ - spec/fixtures/greeter.rb
70
114
  - spec/spec_helper.rb
71
115
  homepage: https://github.com/uberous/bottle_service
72
116
  licenses:
data/Gemfile.lock DELETED
@@ -1,51 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- bottle_service (1.0.0)
5
- virtus (~> 1.0, >= 1.0.5)
6
-
7
- GEM
8
- remote: https://rubygems.org/
9
- specs:
10
- axiom-types (0.1.1)
11
- descendants_tracker (~> 0.0.4)
12
- ice_nine (~> 0.11.0)
13
- thread_safe (~> 0.3, >= 0.3.1)
14
- coercible (1.0.0)
15
- descendants_tracker (~> 0.0.1)
16
- descendants_tracker (0.0.4)
17
- thread_safe (~> 0.3, >= 0.3.1)
18
- diff-lcs (1.2.5)
19
- equalizer (0.0.11)
20
- ice_nine (0.11.2)
21
- rake (11.1.2)
22
- rspec (3.4.0)
23
- rspec-core (~> 3.4.0)
24
- rspec-expectations (~> 3.4.0)
25
- rspec-mocks (~> 3.4.0)
26
- rspec-core (3.4.4)
27
- rspec-support (~> 3.4.0)
28
- rspec-expectations (3.4.0)
29
- diff-lcs (>= 1.2.0, < 2.0)
30
- rspec-support (~> 3.4.0)
31
- rspec-mocks (3.4.1)
32
- diff-lcs (>= 1.2.0, < 2.0)
33
- rspec-support (~> 3.4.0)
34
- rspec-support (3.4.1)
35
- thread_safe (0.3.5)
36
- virtus (1.0.5)
37
- axiom-types (~> 0.1)
38
- coercible (~> 1.0)
39
- descendants_tracker (~> 0.0, >= 0.0.3)
40
- equalizer (~> 0.0, >= 0.0.9)
41
-
42
- PLATFORMS
43
- ruby
44
-
45
- DEPENDENCIES
46
- bottle_service!
47
- rake
48
- rspec (~> 3.1)
49
-
50
- BUNDLED WITH
51
- 1.11.2
@@ -1,2 +0,0 @@
1
- # frozen_string_literal: true
2
- BottleServiceError = Class.new StandardError