cuckoo 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: af5894d06280bbaf410a868f21179f886fb5611f
4
+ data.tar.gz: 0d4da35e5a559b512795ecf792eb41e820f4803b
5
+ SHA512:
6
+ metadata.gz: 196f7f6c13d1035d14c82774595f28126efebcdd292267b497b3b1149e39b212f9acc56ad597e2d88d268794ead5333855fe7e5ff4111411496561445ed66303
7
+ data.tar.gz: d8c16ef47f304f68bd58aa00f495ff10bfff435e8eafa4417bd9ea2870ff0a5c32e29364caa0d8e7abde3de07fac9d2141e8314501cd3dd662d640b8383eb468
@@ -0,0 +1,12 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+
11
+ # rspec failure tracking
12
+ .rspec_status
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --color
2
+ --require spec_helper
3
+ --format progress
@@ -0,0 +1,114 @@
1
+ Lint/LiteralInCondition:
2
+ Enabled: false
3
+
4
+ # These metrics are all mostly useless
5
+ Metrics/AbcSize:
6
+ Max: 50
7
+ Metrics/BlockNesting:
8
+ Max: 4
9
+ Metrics/ClassLength:
10
+ Enabled: false
11
+ Metrics/CyclomaticComplexity:
12
+ Max: 15
13
+ Metrics/MethodLength:
14
+ Max: 45
15
+ Exclude:
16
+ - bin/cuckoo
17
+ Metrics/ModuleLength:
18
+ Enabled: false
19
+ Metrics/PerceivedComplexity:
20
+ Max: 15
21
+
22
+ Style/ConstantName:
23
+ Enabled: false
24
+
25
+ # Configuration parameters: Exclude.
26
+ #
27
+ # We could re-enable this if it understood that the top level module should
28
+ # *not* be documented in files that are not the first to define it.
29
+ #
30
+ Style/Documentation:
31
+ Enabled: false
32
+ Exclude:
33
+ - 'spec/**/*'
34
+ - 'test/**/*'
35
+
36
+ # ********************************
37
+ # Disagree with these style points
38
+ # ********************************
39
+
40
+ Style/DotPosition:
41
+ Enabled: false
42
+ Style/DoubleNegation:
43
+ Enabled: false
44
+ Style/EmptyLines:
45
+ Enabled: false
46
+ Style/EmptyLinesAroundClassBody:
47
+ Enabled: false
48
+ Style/EmptyLinesAroundMethodBody:
49
+ Enabled: false
50
+ Style/EmptyLinesAroundModuleBody:
51
+ Enabled: false
52
+ Style/GuardClause:
53
+ Enabled: false
54
+
55
+ # Don't favor modifier style ever.
56
+ Style/IfUnlessModifier:
57
+ Enabled: false
58
+ Style/WhileUntilModifier:
59
+ Enabled: false
60
+
61
+ Style/InfiniteLoop:
62
+ Enabled: false
63
+ Style/RaiseArgs:
64
+ EnforcedStyle: compact
65
+ Style/RedundantReturn:
66
+ Enabled: false
67
+ Style/Alias:
68
+ Enabled: false
69
+ Style/SignalException:
70
+ EnforcedStyle: only_raise
71
+ Style/SpaceAroundEqualsInParameterDefault:
72
+ EnforcedStyle: no_space
73
+
74
+ # Arguable
75
+ # Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
76
+ Style/SpaceInsideBlockBraces:
77
+ Enabled: false
78
+
79
+ # Arguable
80
+ # Configuration parameters: EnforcedStyle, EnforcedStyleForEmptyBraces, SupportedStyles.
81
+ Style/SpaceInsideHashLiteralBraces:
82
+ Enabled: false
83
+
84
+ # Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
85
+ Style/TrailingCommaInLiteral:
86
+ # SupportedStyles:
87
+ # - comma
88
+ # - no_comma
89
+ EnforcedStyleForMultiline: comma
90
+
91
+ # Don't favor %w for arrays of words.
92
+ Style/WordArray:
93
+ Enabled: false
94
+
95
+ # Definitely do NOT assign variables within a conditional. Christ.
96
+ Style/ConditionalAssignment:
97
+ Enabled: false
98
+
99
+ # ********************************
100
+
101
+ # Configuration parameters: AllowedVariables.
102
+ Style/GlobalVars:
103
+ Exclude:
104
+ - 'spec/spec_helper.rb'
105
+
106
+ # I disagree with this cop for the specific case of
107
+ # if !foo.empty?
108
+ # because I think it's a shame that ruby has no nonempty? predicate, and it's
109
+ # clearer if the double negative is all on the RHS.
110
+ Style/NegatedIf:
111
+ Exclude: []
112
+
113
+ Style/SpecialGlobalVars:
114
+ Enabled: false
@@ -0,0 +1,3 @@
1
+ ---
2
+ inherit_from:
3
+ - .rubocop-disables.yml
@@ -0,0 +1,12 @@
1
+ language: ruby
2
+ rvm:
3
+ - "2.3.0"
4
+ - "2.4.0"
5
+ - "2.5.0"
6
+ script:
7
+ bundle exec rake test
8
+ sudo: false
9
+
10
+ before_install:
11
+ - gem update --system
12
+ - gem install bundler
@@ -0,0 +1,11 @@
1
+ # Change Log
2
+ All notable changes to Cuckoo should be documented in this file.
3
+ This project adheres to [Semantic Versioning](http://semver.org).
4
+
5
+ ## [Unreleased]
6
+
7
+ ## [0.0.1] -- 2019-04-04
8
+
9
+ - Initial public release
10
+
11
+ <!-- vim: set tw=79 : -->
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Gem dependencies specified in *.gemspec
4
+ gemspec
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2019 Andy Brody
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,44 @@
1
+ # Cuckoo
2
+
3
+ [![Gem Version](https://badge.fury.io/rb/cuckoo.svg)](https://rubygems.org/gems/cuckoo)
4
+ [![Build status](https://travis-ci.org/ab/cuckoo.svg)](https://travis-ci.org/ab/cuckoo)
5
+ [![Code Climate](https://codeclimate.com/github/ab/cuckoo.svg)](https://codeclimate.com/github/ab/cuckoo)
6
+ [![Inline Docs](http://inch-ci.org/github/ab/cuckoo.svg?branch=master)](http://www.rubydoc.info/github/ab/cuckoo/master)
7
+
8
+ This is a placeholder for Cuckoo, a library implementing distributed cron using
9
+ simple locking in Redis.
10
+
11
+ See also:
12
+ - Zhong &mdash; https://github.com/nickelser/zhong
13
+
14
+ ## Installation
15
+
16
+ Add this line to your application's Gemfile:
17
+
18
+ gem 'cuckoo'
19
+
20
+ And then execute:
21
+
22
+ $ bundle
23
+
24
+ Or install it yourself as:
25
+
26
+ $ gem install cuckoo
27
+
28
+ ## Usage: Command Line
29
+
30
+ TODO
31
+
32
+ ## Usage: Library
33
+
34
+ See the [YARD documentation](http://www.rubydoc.info/github/ab/cuckoo/master).
35
+
36
+ TODO
37
+
38
+ ## Contributing
39
+
40
+ 1. Fork it
41
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
42
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
43
+ 4. Push to the branch (`git push origin my-new-feature`)
44
+ 5. Create new Pull Request
@@ -0,0 +1,15 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'bundler/setup'
3
+ require 'rspec/core/rake_task'
4
+
5
+ task :default do
6
+ sh 'rake -T'
7
+ end
8
+
9
+ RSpec::Core::RakeTask.new(:spec)
10
+
11
+ def alias_task(alias_task, original)
12
+ desc "Alias for rake #{original}"
13
+ task alias_task, Rake.application[original].arg_names => original
14
+ end
15
+ alias_task(:test, :spec)
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'optparse'
4
+ require_relative '../lib/cuckoo'
5
+
6
+ BaseName = File.basename($0)
7
+
8
+ def puts_err(message)
9
+ STDERR.puts(BaseName + ': ' + message)
10
+ end
11
+
12
+ def parse_args
13
+ _options = {}
14
+ optparse = OptionParser.new do |opts|
15
+ opts.banner = <<-EOM
16
+ usage: #{BaseName} [OPTION]...
17
+
18
+ Cuckoo CLI placeholder
19
+
20
+
21
+ Options:
22
+ EOM
23
+
24
+ opts.on('-h', '--help', 'Display this message', ' ') do
25
+ STDERR.puts opts, ''
26
+ exit 0
27
+ end
28
+ opts.on('-V', '--version', 'Print version number', ' ') do
29
+ puts 'cuckoo ' + Cuckoo::VERSION
30
+ exit 0
31
+ end
32
+ end
33
+
34
+ begin
35
+ optparse.parse!
36
+ rescue OptionParser::InvalidOption => err
37
+ puts_err(err.message)
38
+ exit 1
39
+ end
40
+
41
+ raise NotImplementedError
42
+ end
43
+
44
+ parse_args
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'cuckoo/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = 'cuckoo'
8
+ spec.version = Cuckoo::VERSION
9
+ spec.authors = ['Andy Brody']
10
+ spec.email = ['git@abrody.com']
11
+ spec.summary = 'Simple, distributed cron using Redis locks (placeholder)'
12
+ spec.description = <<-EOM
13
+ Cuckoo implements simple, distributed cron using locks in Redis.
14
+ This is a placeholder, as the functionality does not currently exist.
15
+
16
+ See also:
17
+ - zhong (https://rubygems.org/gems/zhong)
18
+ EOM
19
+ spec.homepage = 'https://github.com/ab/cuckoo'
20
+ spec.license = 'MIT'
21
+
22
+ spec.files = `git ls-files`.split($/)
23
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
24
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
25
+ spec.require_paths = ['lib']
26
+
27
+ spec.add_development_dependency 'bundler', '~> 1.3'
28
+ spec.add_development_dependency 'pry'
29
+ spec.add_development_dependency 'rake'
30
+ spec.add_development_dependency 'rspec', '~> 3.0'
31
+ spec.add_development_dependency 'rubocop', '~> 0.52'
32
+ spec.add_development_dependency 'yard'
33
+
34
+ spec.required_ruby_version = '>= 2.3'
35
+ end
@@ -0,0 +1,4 @@
1
+ require_relative 'cuckoo/version'
2
+
3
+ module Cuckoo
4
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Cuckoo
4
+ # version string
5
+ VERSION = '0.0.1'
6
+ end
@@ -0,0 +1,88 @@
1
+ require_relative '../lib/cuckoo'
2
+
3
+ # Given that it is always loaded, you are encouraged to keep this file as
4
+ # light-weight as possible. Requiring heavyweight dependencies from this file
5
+ # will add to the boot time of your test suite on EVERY test run, even for an
6
+ # individual file that may not need all of that loaded. Instead, consider making
7
+ # a separate helper file that requires the additional dependencies and performs
8
+ # the additional setup, and require it from the spec files that actually need
9
+ # it.
10
+ #
11
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
12
+ RSpec.configure do |config|
13
+ # rspec-expectations config goes here. You can use an alternate
14
+ # assertion/expectation library such as wrong or the stdlib/minitest
15
+ # assertions if you prefer.
16
+ config.expect_with :rspec do |expectations|
17
+ # This option will default to `true` in RSpec 4. It makes the `description`
18
+ # and `failure_message` of custom matchers include text for helper methods
19
+ # defined using `chain`, e.g.:
20
+ # be_bigger_than(2).and_smaller_than(4).description
21
+ # # => "be bigger than 2 and smaller than 4"
22
+ # ...rather than:
23
+ # # => "be bigger than 2"
24
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
25
+ end
26
+
27
+ # rspec-mocks config goes here. You can use an alternate test double
28
+ # library (such as bogus or mocha) by changing the `mock_with` option here.
29
+ config.mock_with :rspec do |mocks|
30
+ # Prevents you from mocking or stubbing a method that does not exist on
31
+ # a real object. This is generally recommended, and will default to
32
+ # `true` in RSpec 4.
33
+ mocks.verify_partial_doubles = true
34
+ end
35
+
36
+ # The settings below are suggested to provide a good initial experience
37
+ # with RSpec, but feel free to customize to your heart's content.
38
+
39
+ # These two settings work together to allow you to limit a spec run
40
+ # to individual examples or groups you care about by tagging them with
41
+ # `:focus` metadata. When nothing is tagged with `:focus`, all examples
42
+ # get run.
43
+ # config.filter_run :focus
44
+ # config.run_all_when_everything_filtered = true
45
+
46
+ # Allows RSpec to persist some state between runs in order to support
47
+ # the `--only-failures` and `--next-failure` CLI options. We recommend
48
+ # you configure your source control system to ignore this file.
49
+ # config.example_status_persistence_file_path = "spec/examples.txt"
50
+
51
+ # Limits the available syntax to the non-monkey patched syntax that is
52
+ # recommended. For more details, see:
53
+ # - http://rspec.info/blog/2012/06/rspecs-new-expectation-syntax/
54
+ # - http://www.teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
55
+ # - http://rspec.info/blog/2014/05/notable-changes-in-rspec-3/#zero-monkey-patching-mode
56
+ config.disable_monkey_patching!
57
+
58
+ # This setting enables warnings. It's recommended, but in some cases may
59
+ # be too noisy due to issues in dependencies.
60
+ config.warnings = true
61
+
62
+ # Many RSpec users commonly either run the entire suite or an individual
63
+ # file, and it's useful to allow more verbose output when running an
64
+ # individual spec file.
65
+ if config.files_to_run.one?
66
+ # Use the documentation formatter for detailed output,
67
+ # unless a formatter has already been configured
68
+ # (e.g. via a command-line flag).
69
+ config.default_formatter = 'doc'
70
+ end
71
+
72
+ # Print the 10 slowest examples and example groups at the
73
+ # end of the spec run, to help surface which specs are running
74
+ # particularly slow.
75
+ config.profile_examples = 10
76
+
77
+ # Run specs in random order to surface order dependencies. If you find an
78
+ # order dependency and want to debug it, you can fix the order by providing
79
+ # the seed, which is printed after each run.
80
+ # --seed 1234
81
+ config.order = :random
82
+
83
+ # Seed global randomization in this process using the `--seed` CLI option.
84
+ # Setting this allows you to use `--seed` to deterministically reproduce
85
+ # test failures related to randomization by passing the same `--seed` value
86
+ # as the one that triggered the failure.
87
+ Kernel.srand config.seed
88
+ end
@@ -0,0 +1,5 @@
1
+ RSpec.describe Cuckoo::VERSION do
2
+ it 'should have a version' do
3
+ expect(Cuckoo::VERSION).to match(/\A\d+\.\d+\.\d+(-[a-z0-9]+)?\z/)
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ RSpec.describe Cuckoo do
4
+ it 'should exist' do
5
+ expect(Cuckoo.name).to eq 'Cuckoo'
6
+ end
7
+ end
metadata ADDED
@@ -0,0 +1,154 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cuckoo
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Andy Brody
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-04 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: pry
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rubocop
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '0.52'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.52'
83
+ - !ruby/object:Gem::Dependency
84
+ name: yard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: |2
98
+ Cuckoo implements simple, distributed cron using locks in Redis.
99
+ This is a placeholder, as the functionality does not currently exist.
100
+
101
+ See also:
102
+ - zhong (https://rubygems.org/gems/zhong)
103
+ email:
104
+ - git@abrody.com
105
+ executables:
106
+ - cuckoo
107
+ extensions: []
108
+ extra_rdoc_files: []
109
+ files:
110
+ - ".gitignore"
111
+ - ".rspec"
112
+ - ".rubocop-disables.yml"
113
+ - ".rubocop.yml"
114
+ - ".travis.yml"
115
+ - CHANGELOG.md
116
+ - Gemfile
117
+ - LICENSE.txt
118
+ - README.md
119
+ - Rakefile
120
+ - bin/cuckoo
121
+ - cuckoo.gemspec
122
+ - lib/cuckoo.rb
123
+ - lib/cuckoo/version.rb
124
+ - spec/spec_helper.rb
125
+ - spec/unit/cuckoo/version_spec.rb
126
+ - spec/unit/cuckoo_spec.rb
127
+ homepage: https://github.com/ab/cuckoo
128
+ licenses:
129
+ - MIT
130
+ metadata: {}
131
+ post_install_message:
132
+ rdoc_options: []
133
+ require_paths:
134
+ - lib
135
+ required_ruby_version: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '2.3'
140
+ required_rubygems_version: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - ">="
143
+ - !ruby/object:Gem::Version
144
+ version: '0'
145
+ requirements: []
146
+ rubyforge_project:
147
+ rubygems_version: 2.5.2.3
148
+ signing_key:
149
+ specification_version: 4
150
+ summary: Simple, distributed cron using Redis locks (placeholder)
151
+ test_files:
152
+ - spec/spec_helper.rb
153
+ - spec/unit/cuckoo/version_spec.rb
154
+ - spec/unit/cuckoo_spec.rb