bottle_service 0.0.2 → 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.
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