bottle_service 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1cd5574617316a62cd4a67a9f2f0a63b76726bdf
4
+ data.tar.gz: 975d5c38d19032d56b8b81882d4d2bdd4e5f7464
5
+ SHA512:
6
+ metadata.gz: f68dbaa6a8333374804fe1a81b2ad9a042231a8c6590c4414be16cdc0952d9985e51a4670d394597df0e7b481120494463f2d1ad942f2d87b010b529192db580
7
+ data.tar.gz: 39a56b36fe6ab0b51816fd88443d91f4820334627c676f72bbb13c28aaa6b97646c81835e19e6cbb99f203d6eb22e1c1cb441c2575668a6709cc2c5dbfb3039b
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,242 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.3
3
+ Exclude:
4
+ - "vendor/**/*"
5
+ - "db/schema.rb"
6
+ - "bin/**/*"
7
+ UseCache: false
8
+ Rails:
9
+ Enabled: true
10
+ Style/CollectionMethods:
11
+ Description: Preferred collection methods.
12
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#map-find-select-reduce-size
13
+ Enabled: true
14
+ PreferredMethods:
15
+ collect: map
16
+ collect!: map!
17
+ find: detect
18
+ find_all: select
19
+ reduce: inject
20
+ Style/DotPosition:
21
+ Description: Checks the position of the dot in multi-line method calls.
22
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-multi-line-chains
23
+ Enabled: true
24
+ EnforcedStyle: trailing
25
+ SupportedStyles:
26
+ - leading
27
+ - trailing
28
+ Style/FileName:
29
+ Description: Use snake_case for source file names.
30
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#snake-case-files
31
+ Enabled: false
32
+ Exclude: []
33
+ Style/GuardClause:
34
+ Description: Check for conditionals that can be replaced with guard clauses
35
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-nested-conditionals
36
+ Enabled: false
37
+ MinBodyLength: 1
38
+ Style/IfUnlessModifier:
39
+ Description: Favor modifier if/unless usage when you have a single-line body.
40
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#if-as-a-modifier
41
+ Enabled: false
42
+ MaxLineLength: 80
43
+ Style/OptionHash:
44
+ Description: Don't use option hashes when you can use keyword arguments.
45
+ Enabled: false
46
+ Style/PercentLiteralDelimiters:
47
+ Description: Use `%`-literal delimiters consistently
48
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-literal-braces
49
+ Enabled: false
50
+ PreferredDelimiters:
51
+ "%": "()"
52
+ "%i": "()"
53
+ "%q": "()"
54
+ "%Q": "()"
55
+ "%r": "{}"
56
+ "%s": "()"
57
+ "%w": "()"
58
+ "%W": "()"
59
+ "%x": "()"
60
+ Style/PredicateName:
61
+ Description: Check the names of predicate methods.
62
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
63
+ Enabled: true
64
+ NamePrefix:
65
+ - is_
66
+ - has_
67
+ - have_
68
+ NamePrefixBlacklist:
69
+ - is_
70
+ Exclude:
71
+ - spec/**/*
72
+ Style/RaiseArgs:
73
+ Description: Checks the arguments passed to raise/fail.
74
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#exception-class-messages
75
+ Enabled: false
76
+ EnforcedStyle: exploded
77
+ SupportedStyles:
78
+ - compact
79
+ - exploded
80
+ Style/SignalException:
81
+ Description: Checks for proper usage of fail and raise.
82
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#fail-method
83
+ Enabled: false
84
+ EnforcedStyle: semantic
85
+ SupportedStyles:
86
+ - only_raise
87
+ - only_fail
88
+ - semantic
89
+ Style/SingleLineBlockParams:
90
+ Description: Enforces the names of some block params.
91
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#reduce-blocks
92
+ Enabled: false
93
+ Methods:
94
+ - reduce:
95
+ - a
96
+ - e
97
+ - inject:
98
+ - a
99
+ - e
100
+ Style/SingleLineMethods:
101
+ Description: Avoid single-line methods.
102
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-single-line-methods
103
+ Enabled: false
104
+ AllowIfMethodIsEmpty: true
105
+ Style/StringLiterals:
106
+ Description: Checks if uses of quotes match the configured preference.
107
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#consistent-string-literals
108
+ Enabled: true
109
+ EnforcedStyle: double_quotes
110
+ SupportedStyles:
111
+ - single_quotes
112
+ - double_quotes
113
+ Style/StringLiteralsInInterpolation:
114
+ Description: Checks if uses of quotes inside expressions in interpolated strings
115
+ match the configured preference.
116
+ Enabled: true
117
+ EnforcedStyle: single_quotes
118
+ SupportedStyles:
119
+ - single_quotes
120
+ - double_quotes
121
+ Style/TrailingCommaInArguments:
122
+ Description: 'Checks for trailing comma in argument lists.'
123
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
124
+ Enabled: false
125
+ EnforcedStyleForMultiline: no_comma
126
+ SupportedStyles:
127
+ - comma
128
+ - consistent_comma
129
+ - no_comma
130
+ Style/TrailingCommaInLiteral:
131
+ Description: 'Checks for trailing comma in array and hash literals.'
132
+ StyleGuide: 'https://github.com/bbatsov/ruby-style-guide#no-trailing-array-commas'
133
+ Enabled: false
134
+ EnforcedStyleForMultiline: no_comma
135
+ SupportedStyles:
136
+ - comma
137
+ - consistent_comma
138
+ - no_comma
139
+ Metrics/AbcSize:
140
+ Description: A calculated magnitude based on number of assignments, branches, and conditions.
141
+ Enabled: false
142
+ Max: 15
143
+ Metrics/ClassLength:
144
+ Description: Avoid classes longer than 100 lines of code.
145
+ Enabled: false
146
+ CountComments: false
147
+ Max: 100
148
+ Metrics/ModuleLength:
149
+ CountComments: false
150
+ Max: 100
151
+ Description: Avoid modules longer than 100 lines of code.
152
+ Enabled: false
153
+ Metrics/CyclomaticComplexity:
154
+ Description: A complexity metric that is strongly correlated to the number of test cases needed to validate a method.
155
+ Enabled: false
156
+ Max: 6
157
+ Metrics/MethodLength:
158
+ Description: Avoid methods longer than 10 lines of code.
159
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#short-methods
160
+ Enabled: false
161
+ CountComments: false
162
+ Max: 10
163
+ Metrics/ParameterLists:
164
+ Description: Avoid parameter lists longer than three or four parameters.
165
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#too-many-params
166
+ Enabled: false
167
+ Max: 5
168
+ CountKeywordArgs: true
169
+ Metrics/PerceivedComplexity:
170
+ Description: A complexity metric geared towards measuring complexity for a human reader.
171
+ Enabled: false
172
+ Max: 7
173
+ Lint/AssignmentInCondition:
174
+ Description: Don't use assignment in conditions.
175
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#safe-assignment-in-condition
176
+ Enabled: false
177
+ AllowSafeAssignment: true
178
+ Style/InlineComment:
179
+ Description: Avoid inline comments.
180
+ Enabled: false
181
+ Style/AccessorMethodName:
182
+ Description: Check the naming of accessor methods for get_/set_.
183
+ Enabled: false
184
+ Style/Alias:
185
+ Description: Use alias_method instead of alias.
186
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
187
+ Enabled: false
188
+ Style/Documentation:
189
+ Description: Document classes and non-namespace modules.
190
+ Enabled: false
191
+ Style/DoubleNegation:
192
+ Description: Checks for uses of double negation (!!).
193
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-bang-bang
194
+ Enabled: false
195
+ Style/EachWithObject:
196
+ Description: Prefer `each_with_object` over `inject` or `reduce`.
197
+ Enabled: false
198
+ Style/EmptyLiteral:
199
+ Description: Prefer literals to Array.new/Hash.new/String.new.
200
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#literal-array-hash
201
+ Enabled: false
202
+ Style/ModuleFunction:
203
+ Description: Checks for usage of `extend self` in modules.
204
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#module-function
205
+ Enabled: false
206
+ Style/OneLineConditional:
207
+ Description: Favor the ternary operator(?:) over if/then/else/end constructs.
208
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#ternary-operator
209
+ Enabled: false
210
+ Style/PerlBackrefs:
211
+ Description: Avoid Perl-style regex back references.
212
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-perl-regexp-last-matchers
213
+ Enabled: false
214
+ Style/Send:
215
+ Description: Prefer `Object#__send__` or `Object#public_send` to `send`, as `send` may overlap with existing methods.
216
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#prefer-public-send
217
+ Enabled: false
218
+ Style/SpecialGlobalVars:
219
+ Description: Avoid Perl-style global variables.
220
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-cryptic-perlisms
221
+ Enabled: false
222
+ Style/VariableInterpolation:
223
+ Description: Don't interpolate global, instance and class variables directly in strings.
224
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#curlies-interpolate
225
+ Enabled: false
226
+ Style/WhenThen:
227
+ Description: Use when x then ... for one-line cases.
228
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#one-line-cases
229
+ Enabled: false
230
+ Lint/EachWithObjectArgument:
231
+ Description: Check for immutable argument given to each_with_object.
232
+ Enabled: true
233
+ Lint/HandleExceptions:
234
+ Description: Don't suppress exception.
235
+ StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
236
+ Enabled: false
237
+ Lint/LiteralInCondition:
238
+ Description: Checks of literals used in conditions.
239
+ Enabled: false
240
+ Lint/LiteralInInterpolation:
241
+ Description: Checks for literals used in interpolation.
242
+ Enabled: false
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+ source "https://rubygems.org"
3
+
4
+ gemspec
5
+
6
+ gem "rspec", "~> 3.1"
data/Gemfile.lock ADDED
@@ -0,0 +1,51 @@
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
data/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+
2
+ Copyright (c) 2016 Uberous
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining
5
+ a copy of this software and associated documentation files (the
6
+ "Software"), to deal in the Software without restriction, including
7
+ without limitation the rights to use, copy, modify, merge, publish,
8
+ distribute, sublicense, and/or sell copies of the Software, and to
9
+ permit persons to whom the Software is furnished to do so, subject to
10
+ the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be
13
+ included in all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
19
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
20
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
21
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,73 @@
1
+ ### BottleService
2
+
3
+ # Installation
4
+
5
+ ``` terminal
6
+ $ gem install bottle_service
7
+ ```
8
+
9
+ or in your **Gemfile**
10
+
11
+ ``` ruby
12
+ gem "bottle_service"
13
+ ```
14
+
15
+ # Use
16
+
17
+ #### Simple example
18
+
19
+ ``` ruby
20
+ class Greeter < BottleService
21
+ attribute :name, String
22
+
23
+ def call
24
+ "Hello #{@name}!"
25
+ end
26
+ end
27
+
28
+ Greeter.call name: "Space" # Hello Space!
29
+ # or
30
+ Greeter.(name: "Space") # Hello Space!
31
+ ```
32
+
33
+ #### Extended example
34
+
35
+ ``` ruby
36
+ class CreateProduct < BottleService
37
+ attribute :shop, Shop
38
+ attribute :name, String
39
+ attribute :price_cents, Integer
40
+ attribute :tax_percentage, Float
41
+ attribute :tags, Array[Tag]
42
+
43
+ def call
44
+ product = @shop.products.create name: @name,
45
+ price_cents: @price_cents,
46
+ tax_cents: calculate_tax
47
+
48
+ raise BottleServiceError, "Failed to save product" unless product.persisted?
49
+
50
+ add_tags_to_product(product)
51
+
52
+ product
53
+ end
54
+
55
+ private
56
+
57
+ def calculate_tax
58
+ @price_cents / (1 + (@tax_percentage / 100))
59
+ end
60
+
61
+ def add_tags_to_product(product)
62
+ @tags.each do |tag|
63
+ product.append tag
64
+ end
65
+ end
66
+ end
67
+
68
+ CreateProduct.call shop: current_shop,
69
+ name: "Awesome T-Shirt",
70
+ price: 2000,
71
+ tax: 21.0,
72
+ tags: tags
73
+ ```
data/Rakefile ADDED
@@ -0,0 +1,16 @@
1
+ # frozen_string_literal: true
2
+ require "rspec/core/rake_task"
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+ task default: [:spec]
6
+
7
+ begin
8
+ require "rubocop/rake_task"
9
+
10
+ Rake::Task[:default].enhance [:rubocop]
11
+
12
+ RuboCop::RakeTask.new do |task|
13
+ task.options << "--display-cop-names"
14
+ end
15
+ rescue LoadError
16
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path("../lib/bottle_service/version", __FILE__)
4
+
5
+ Gem::Specification.new do |gem|
6
+ gem.name = "bottle_service"
7
+ gem.version = BottleService::VERSION.dup
8
+ gem.authors = ["Henricus Louwhoff", "Jeroen Visser"]
9
+ gem.email = ["henry@postb.us", "me@jrnv.nl"]
10
+ gem.description = "Service Objects on Steroids for Plain Old Ruby Objects"
11
+ gem.summary = gem.description
12
+ gem.homepage = "https://github.com/zenry/bottle_service"
13
+ gem.license = "MIT"
14
+
15
+ gem.require_paths = ["lib"]
16
+ gem.files = `git ls-files`.split("\n")
17
+ gem.test_files = `git ls-files -- {spec}/*`.split("\n")
18
+ gem.extra_rdoc_files = %w[LICENSE README.md]
19
+
20
+ gem.add_dependency "virtus", "~> 1.0", ">= 1.0.5"
21
+
22
+ gem.add_development_dependency "rake"
23
+ end
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+ require "virtus"
3
+
4
+ # Service Module
5
+ class BottleService
6
+ include Virtus.model strict: true
7
+
8
+ def call(*args)
9
+ new(*args).call
10
+ end
11
+ end
@@ -0,0 +1,2 @@
1
+ # frozen_string_literal: true
2
+ BottleServiceError = Class.new StandardError
@@ -0,0 +1,4 @@
1
+ # frozen_string_literal: true
2
+ module BottleService
3
+ VERSION = "0.0.1"
4
+ end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+ # This file was generated by the `rspec --init` command. Conventionally, all
3
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
4
+ # The generated `.rspec` file contains `--require spec_helper` which will cause
5
+ # this file to always be loaded, without a need to explicitly require it in any
6
+ # files.
7
+ #
8
+ # Given that it is always loaded, you are encouraged to keep this file as
9
+ # light-weight as possible. Requiring heavyweight dependencies from this file
10
+ # will add to the boot time of your test suite on EVERY test run, even for an
11
+ # individual file that may not need all of that loaded. Instead, consider making
12
+ # a separate helper file that requires the additional dependencies and performs
13
+ # the additional setup, and require it from the spec files that actually need
14
+ # it.
15
+ #
16
+ # The `.rspec` file also contains a few flags that are not defaults but that
17
+ # users commonly want.
18
+ #
19
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
20
+ RSpec.configure do |config|
21
+ # rspec-expectations config goes here. You can use an alternate
22
+ # assertion/expectation library such as wrong or the stdlib/minitest
23
+ # assertions if you prefer.
24
+ config.expect_with :rspec do |expectations|
25
+ # This option will default to `true` in RSpec 4. It makes the `description`
26
+ # and `failure_message` of custom matchers include text for helper methods
27
+ # defined using `chain`, e.g.:
28
+ # be_bigger_than(2).and_smaller_than(4).description
29
+ # # => "be bigger than 2 and smaller than 4"
30
+ # ...rather than:
31
+ # # => "be bigger than 2"
32
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
33
+ end
34
+
35
+ # rspec-mocks config goes here. You can use an alternate test double
36
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
37
+ config.mock_with :rspec do |mocks|
38
+ # Prevents you from mocking or stubbing a method that does not exist on
39
+ # a real object. This is generally recommended, and will default to
40
+ # `true` in RSpec 4.
41
+ mocks.verify_partial_doubles = true
42
+ end
43
+
44
+ # The settings below are suggested to provide a good initial experience
45
+ # with RSpec, but feel free to customize to your heart's content.
46
+ # # These two settings work together to allow you to limit a spec run
47
+ # # to individual examples or groups you care about by tagging them with
48
+ # # `:focus` metadata. When nothing is tagged with `:focus`, all examples
49
+ # # get run.
50
+ # config.filter_run :focus
51
+ # config.run_all_when_everything_filtered = true
52
+ #
53
+ # # Allows RSpec to persist some state between runs in order to support
54
+ # # the `--only-failures` and `--next-failure` CLI options. We recommend
55
+ # # you configure your source control system to ignore this file.
56
+ # config.example_status_persistence_file_path = "spec/examples.txt"
57
+ #
58
+ # # Limits the available syntax to the non-monkey patched syntax that is
59
+ # # recommended. For more details, see:
60
+ # # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
61
+ # # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-
62
+ # # expectation-syntax/
63
+ # # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-mon
64
+ # # key-patching-mode
65
+ # config.disable_monkey_patching!
66
+ #
67
+ # # This setting enables warnings. It's recommended, but in some cases may
68
+ # # be too noisy due to issues in dependencies.
69
+ # config.warnings = true
70
+ #
71
+ # # Many RSpec users commonly either run the entire suite or an individual
72
+ # # file, and it's useful to allow more verbose output when running an
73
+ # # individual spec file.
74
+ # if config.files_to_run.one?
75
+ # # Use the documentation formatter for detailed output,
76
+ # # unless a formatter has already been configured
77
+ # # (e.g. via a command-line flag).
78
+ # config.default_formatter = 'doc'
79
+ # end
80
+ #
81
+ # # Print the 10 slowest examples and example groups at the
82
+ # # end of the spec run, to help surface which specs are running
83
+ # # particularly slow.
84
+ # config.profile_examples = 10
85
+ #
86
+ # # Run specs in random order to surface order dependencies. If you find an
87
+ # # order dependency and want to debug it, you can fix the order by
88
+ # # providing the seed, which is printed after each run.
89
+ # # --seed 1234
90
+ # config.order = :random
91
+ #
92
+ # # Seed global randomization in this process using the `--seed` CLI option.
93
+ # # Setting this allows you to use `--seed` to deterministically reproduce
94
+ # # test failures related to randomization by passing the same `--seed`
95
+ # # value
96
+ # # as the one that triggered the failure.
97
+ # Kernel.srand config.seed
98
+ end
metadata ADDED
@@ -0,0 +1,94 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bottle_service
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Henricus Louwhoff
8
+ - Jeroen Visser
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2016-04-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: virtus
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.0'
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.0.5
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - "~>"
29
+ - !ruby/object:Gem::Version
30
+ version: '1.0'
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.0.5
34
+ - !ruby/object:Gem::Dependency
35
+ name: rake
36
+ requirement: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ type: :development
42
+ prerelease: false
43
+ version_requirements: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ description: Service Objects on Steroids for Plain Old Ruby Objects
49
+ email:
50
+ - henry@postb.us
51
+ - me@jrnv.nl
52
+ executables: []
53
+ extensions: []
54
+ extra_rdoc_files:
55
+ - LICENSE
56
+ - README.md
57
+ files:
58
+ - ".rspec"
59
+ - ".rubocop.yml"
60
+ - Gemfile
61
+ - Gemfile.lock
62
+ - LICENSE
63
+ - README.md
64
+ - Rakefile
65
+ - bottle_service.gemspec
66
+ - lib/bottle_service.rb
67
+ - lib/bottle_service/bottle_service_error.rb
68
+ - lib/bottle_service/version.rb
69
+ - spec/spec_helper.rb
70
+ homepage: https://github.com/zenry/bottle_service
71
+ licenses:
72
+ - MIT
73
+ metadata: {}
74
+ post_install_message:
75
+ rdoc_options: []
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ requirements: []
89
+ rubyforge_project:
90
+ rubygems_version: 2.6.2
91
+ signing_key:
92
+ specification_version: 4
93
+ summary: Service Objects on Steroids for Plain Old Ruby Objects
94
+ test_files: []