concord 0.1.4 → 0.1.5

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: 1555b598a21553d1cca1aafeab0f8795732fa9f7
4
- data.tar.gz: 6a0e4001b0199b12ecec827a185f6960b7ed7ef3
3
+ metadata.gz: f74165f31b905e23604129b63bee915d27163b01
4
+ data.tar.gz: a0c18289f47110909de05e3a0af56b10a282101a
5
5
  SHA512:
6
- metadata.gz: 61668efefc3e1c12968d9bca72f5ba20f40216cb97005303f4da3579524fff6dbf4ada18f2b8b0d7aee0aae8c75c7c386cdc7469b0b6d76cb6215e66acf07b89
7
- data.tar.gz: 3db7049d7fea5c3d76310ca541f542922e0bef9ccda912a5c42bd7fed2c3d33e039e4714532bf7b6d1f7bb663910619081fd328a92b0a24a1967427a4a6a12f2
6
+ metadata.gz: 4efa105dc76a5bdff0b93d2fb91897a56f16ae1115314472bc25b913d7eb2f153ef0c0514d123b1d257856a2524008c7463d61a2e97ea447bfb30a8b878b9229
7
+ data.tar.gz: 1c13e549d343a704e9df9d336e7f6d9430280c8a24a069a90c2c81e20ec9a1256792aa294e90ae54a1df10392d028b703b8faf22eb97979173f32a9302cbc780
@@ -0,0 +1,7 @@
1
+ AllCops:
2
+ Includes:
3
+ - 'Gemfile'
4
+ Excludes:
5
+ - 'Gemfile.devtools'
6
+ - 'vendor/**'
7
+ - 'benchmarks/**'
@@ -1,13 +1,11 @@
1
1
  language: ruby
2
2
  script: 'bundle exec rake ci'
3
3
  rvm:
4
- - 1.9.2
5
4
  - 1.9.3
6
5
  - 2.0.0
7
- - ruby-head
8
6
  - jruby-19mode
9
7
  - jruby-head
10
- - rbx-19mode
8
+ - rbx
11
9
  matrix:
12
10
  allow_failures:
13
11
  - rvm: ruby-head
@@ -1,3 +1,21 @@
1
+ # v0.1.5 2014-04-10
2
+
3
+ * Dependency bumps
4
+ * Support calling (z)super from custom initialize
5
+
6
+ # v0.1.4 2013-09-22
7
+
8
+ * Dependency bumps
9
+
10
+ # v0.1.3 2013-08-31
11
+
12
+ * Dependency bumps
13
+
14
+ # v0.1.2 2013-08-07
15
+
16
+ * Dependency bumps
17
+ * Internal refactorings
18
+
1
19
  # v0.1.1 2013-05-15
2
20
 
3
21
  + Add Concord::Public mixin defaulting to public attr_readers
data/Gemfile CHANGED
@@ -2,5 +2,5 @@ source 'https://rubygems.org'
2
2
 
3
3
  gemspec
4
4
 
5
- gem 'devtools', :git => 'https://github.com/rom-rb/devtools.git'
6
- eval File.read('Gemfile.devtools')
5
+ gem 'devtools', git: 'https://github.com/rom-rb/devtools.git', branch: 'master'
6
+ eval_gemfile 'Gemfile.devtools'
@@ -1,47 +1,63 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  group :development do
4
- gem 'rake', '~> 10.1.0'
5
- gem 'rspec', '~> 2.14.1'
6
- gem 'yard', '~> 0.8.7'
4
+ gem 'rake', '~> 10.2.1'
5
+ gem 'rspec', '~> 2.14.1'
6
+ gem 'rspec-core', '~> 2.14.8'
7
+ gem 'yard', '~> 0.8.7.4'
8
+
9
+ platform :rbx do
10
+ gem 'rubysl-singleton', '~> 2.0.0'
11
+ end
7
12
  end
8
13
 
9
14
  group :yard do
10
- gem 'kramdown', '~> 1.1.0'
15
+ gem 'kramdown', '~> 1.3.3'
11
16
  end
12
17
 
13
18
  group :guard do
14
- gem 'guard', '~> 1.8.1'
15
- gem 'guard-bundler', '~> 1.0.0'
16
- gem 'guard-rspec', '~> 3.0.2'
17
- gem 'guard-rubocop', '~> 0.2.0'
18
- # gem 'guard-mutant', '~> 0.0.1'
19
+ gem 'guard', '~> 2.6.0'
20
+ gem 'guard-bundler', '~> 2.0.0'
21
+ gem 'guard-rspec', '~> 4.2.8'
22
+ gem 'guard-rubocop', '~> 1.0.2'
19
23
 
20
24
  # file system change event handling
21
- gem 'listen', '~> 1.3.0'
25
+ gem 'listen', '~> 2.7.1'
22
26
  gem 'rb-fchange', '~> 0.0.6', require: false
23
- gem 'rb-fsevent', '~> 0.9.3', require: false
24
- gem 'rb-inotify', '~> 0.9.0', require: false
27
+ gem 'rb-fsevent', '~> 0.9.4', require: false
28
+ gem 'rb-inotify', '~> 0.9.3', require: false
25
29
 
26
30
  # notification handling
27
- gem 'libnotify', '~> 0.8.0', require: false
31
+ gem 'libnotify', '~> 0.8.2', require: false
28
32
  gem 'rb-notifu', '~> 0.0.4', require: false
29
33
  gem 'terminal-notifier-guard', '~> 1.5.3', require: false
30
34
  end
31
35
 
32
36
  group :metrics do
33
- gem 'coveralls', '~> 0.6.7'
37
+ gem 'coveralls', '~> 0.7.0'
34
38
  gem 'flay', '~> 2.4.0'
35
- gem 'flog', '~> 4.1.1'
36
- gem 'reek', '~> 1.3.2'
37
- gem 'rubocop', '~> 0.11.0'
38
- gem 'simplecov', '~> 0.7.1'
39
- gem 'yardstick', '~> 0.9.7', git: 'https://github.com/dkubb/yardstick.git'
39
+ gem 'flog', '~> 4.2.0'
40
+ gem 'reek', '~> 1.3.7'
41
+ gem 'rubocop', '~> 0.19.1'
42
+ gem 'simplecov', '~> 0.8.2'
43
+ gem 'yardstick', '~> 0.9.9'
44
+
45
+ platforms :mri do
46
+ gem 'mutant', '~> 0.5.10'
47
+ gem 'mutant-rspec', '~> 0.5.10'
48
+ end
40
49
 
41
50
  platforms :ruby_19, :ruby_20 do
42
- # gem 'mutant', git: 'https://github.com/mbj/mutant.git'
43
51
  gem 'yard-spellcheck', '~> 0.1.5'
44
52
  end
53
+
54
+ platform :rbx do
55
+ gem 'json', '~> 1.8.1'
56
+ gem 'racc', '~> 1.4.11'
57
+ gem 'rubysl-logger', '~> 2.0.0'
58
+ gem 'rubysl-open-uri', '~> 2.0.0'
59
+ gem 'rubysl-prettyprint', '~> 2.0.3'
60
+ end
45
61
  end
46
62
 
47
63
  group :benchmarks do
data/Rakefile CHANGED
@@ -1,2 +1,11 @@
1
1
  require 'devtools'
2
2
  Devtools.init_rake_tasks
3
+
4
+ Rake.application.load_imports
5
+ task('metrics:mutant').clear
6
+
7
+ namespace :metrics do
8
+ task :mutant => :coverage do
9
+ $stderr.puts 'Concord is a dependency of mutant and zombification is currently defunkt :('
10
+ end
11
+ end
@@ -0,0 +1,4 @@
1
+ ---
2
+ test:
3
+ override:
4
+ - bundle exec rake ci
@@ -2,11 +2,12 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'concord'
5
- s.version = '0.1.4'
5
+ s.version = '0.1.5'
6
6
  s.authors = ['Markus Schirp']
7
7
  s.email = ['mbj@schirp-dso.com']
8
8
  s.homepage = 'https://github.com/mbj/concord'
9
9
  s.summary = %q{Helper for object composition}
10
+ s.license = 'MIT'
10
11
  s.description = s.summary
11
12
 
12
13
  s.files = `git ls-files`.split("\n")
@@ -14,6 +15,8 @@ Gem::Specification.new do |s|
14
15
  s.executables = []
15
16
  s.require_paths = ['lib']
16
17
 
17
- s.add_dependency('adamantium', '~> 0.1')
18
- s.add_dependency('equalizer', '~> 0.0.7')
18
+ s.required_ruby_version = '>= 1.9.3'
19
+
20
+ s.add_dependency('adamantium', '~> 0.2.0')
21
+ s.add_dependency('equalizer', '~> 0.0.9')
19
22
  end
@@ -1,3 +1,3 @@
1
1
  ---
2
2
  threshold: 3
3
- total_score: 16.0
3
+ total_score: 18.0
@@ -51,8 +51,9 @@ NestedIterators:
51
51
  enabled: true
52
52
  max_allowed_nesting: 1
53
53
  TooManyStatements:
54
- max_statements: 5
55
- exclude: []
54
+ max_statements: 7
55
+ exclude:
56
+ - Concord#define_initialize
56
57
  enabled: true
57
58
  DuplicateMethodCall:
58
59
  allow_calls: []
@@ -0,0 +1,82 @@
1
+ inherit_from: ../.rubocop.yml
2
+
3
+ AllCops:
4
+ Includes:
5
+ - '**/*.rake'
6
+ - 'Gemfile'
7
+ - 'Gemfile.triage'
8
+
9
+ # Avoid parameter lists longer than five parameters.
10
+ ParameterLists:
11
+ Max: 3
12
+ CountKeywordArgs: true
13
+
14
+ MethodLength:
15
+ CountComments: false
16
+ Max: 15
17
+
18
+ # Avoid more than `Max` levels of nesting.
19
+ BlockNesting:
20
+ Max: 3
21
+
22
+ # Align with the style guide.
23
+ CollectionMethods:
24
+ PreferredMethods:
25
+ collect: 'map'
26
+ inject: 'reduce'
27
+ find: 'detect'
28
+ find_all: 'select'
29
+
30
+ # Limit line length
31
+ LineLength:
32
+ Max: 113 # TODO: lower to 79 once the rubocop branch in shared/Gemfile is removed
33
+
34
+ ClassLength:
35
+ Max: 204
36
+
37
+ # Disabled because of indenting with private keyword in class bodies.
38
+ IndentationWidth:
39
+ Enabled: false
40
+
41
+ # I like raise more
42
+ SignalException:
43
+ Enabled: false
44
+
45
+ # False positive in unparser source
46
+ OneLineConditional:
47
+ Enabled: false
48
+
49
+ Documentation:
50
+ Enabled: false
51
+
52
+ # Disable documentation checking until a class needs to be documented once
53
+ Documentation:
54
+ Enabled: false
55
+
56
+ # Do not favor modifier if/unless usage when you have a single-line body
57
+ IfUnlessModifier:
58
+ Enabled: false
59
+
60
+ # Allow case equality operator (in limited use within the specs)
61
+ CaseEquality:
62
+ Enabled: false
63
+
64
+ # Constants do not always have to use SCREAMING_SNAKE_CASE
65
+ ConstantName:
66
+ Enabled: false
67
+
68
+ # Not all trivial readers/writers can be defined with attr_* methods
69
+ TrivialAccessors:
70
+ Enabled: false
71
+
72
+ # Do not prefer do/end over {} for multiline blocks
73
+ Blocks:
74
+ Enabled: false
75
+
76
+ # I like to have an empty line before closing the currently opened body
77
+ EmptyLinesAroundBody:
78
+ Enabled: false
79
+
80
+ # I like my style more
81
+ AccessModifierIndentation:
82
+ Enabled: false
@@ -30,6 +30,10 @@ class Concord < Module
30
30
  end
31
31
 
32
32
  @names = names
33
+ @module = Module.new
34
+ define_initialize
35
+ define_readers
36
+ define_equalizer
33
37
  end
34
38
 
35
39
  # Hook run when module is included
@@ -41,9 +45,7 @@ class Concord < Module
41
45
  # @api private
42
46
  #
43
47
  def included(descendant)
44
- define_initialize(descendant)
45
- define_readers(descendant)
46
- define_equalizer(descendant)
48
+ descendant.send(:include, @module)
47
49
  end
48
50
 
49
51
  # Define equalizer
@@ -54,8 +56,8 @@ class Concord < Module
54
56
  #
55
57
  # @api private
56
58
  #
57
- def define_equalizer(descendant)
58
- descendant.send(:include, Equalizer.new(*@names))
59
+ def define_equalizer
60
+ @module.send(:include, Equalizer.new(*@names))
59
61
  end
60
62
 
61
63
  # Define readers
@@ -66,9 +68,9 @@ class Concord < Module
66
68
  #
67
69
  # @api private
68
70
  #
69
- def define_readers(descendant)
71
+ def define_readers
70
72
  attribute_names = names
71
- descendant.class_eval do
73
+ @module.class_eval do
72
74
  attr_reader(*attribute_names)
73
75
  protected(*attribute_names)
74
76
  end
@@ -82,14 +84,13 @@ class Concord < Module
82
84
  #
83
85
  # @api private
84
86
  #
85
- def define_initialize(descendant)
87
+ def define_initialize
86
88
  ivars, size = instance_variable_names, names.size
87
- descendant.class_eval do
89
+ @module.class_eval do
88
90
  define_method :initialize do |*args|
89
91
  args_size = args.size
90
92
  if args_size != size
91
- raise ArgumentError,
92
- "wrong number of arguments (#{args_size} for #{size})"
93
+ raise ArgumentError, "wrong number of arguments (#{args_size} for #{size})"
93
94
  end
94
95
  ivars.zip(args) { |ivar, arg| instance_variable_set(ivar, arg) }
95
96
  end
@@ -18,20 +18,56 @@ describe Concord do
18
18
  context 'initializer lines' do
19
19
  it 'creates a private #initialize method' do
20
20
  mod = Module.new
21
- expect { mod.send(:include, Concord.new) }.
22
- to change { mod.private_method_defined?(:initialize) }.
23
- from(false).to(true)
21
+ expect { mod.send(:include, Concord.new) }
22
+ .to change { mod.private_method_defined?(:initialize) }
23
+ .from(false).to(true)
24
24
  end
25
25
 
26
26
  it 'creates an initializer that asserts the number of arguments' do
27
- expect { class_under_test.new(1) }.
28
- to raise_error(ArgumentError, 'wrong number of arguments (1 for 2)')
27
+ expect { class_under_test.new(1) }
28
+ .to raise_error(ArgumentError, 'wrong number of arguments (1 for 2)')
29
29
  end
30
30
 
31
31
  it 'creates an initializer that allows 2 arguments' do
32
32
  expect { class_under_test.new(1, 2) }.to_not raise_error
33
33
  end
34
34
 
35
+ it 'creates an initializer that is callable via super' do
36
+ class_under_test.class_eval do
37
+ attr_reader :baz
38
+ public :foo
39
+ public :bar
40
+
41
+ def initialize(foo, bar)
42
+ @baz = foo + bar
43
+ super(foo, bar)
44
+ end
45
+ end
46
+
47
+ instance = class_under_test.new(1, 2)
48
+ expect(instance.foo).to eql(1)
49
+ expect(instance.bar).to eql(2)
50
+ expect(instance.baz).to eql(3)
51
+ end
52
+
53
+ it 'creates an initializer that is callable via zsuper' do
54
+ class_under_test.class_eval do
55
+ attr_reader :baz
56
+ public :foo
57
+ public :bar
58
+
59
+ def initialize(foo, bar)
60
+ @baz = foo + bar
61
+ super
62
+ end
63
+ end
64
+
65
+ instance = class_under_test.new(1, 2)
66
+ expect(instance.foo).to eql(1)
67
+ expect(instance.bar).to eql(2)
68
+ expect(instance.baz).to eql(3)
69
+ end
70
+
35
71
  it 'creates an initializer that sets the instance variables' do
36
72
  instance = class_under_test.new(1, 2)
37
73
  expect(instance.instance_variable_get(:@foo)).to be(1)
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concord
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Markus Schirp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-22 00:00:00.000000000 Z
11
+ date: 2014-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: adamantium
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.1'
19
+ version: 0.2.0
20
20
  type: :runtime
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: '0.1'
26
+ version: 0.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: equalizer
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.0.7
33
+ version: 0.0.9
34
34
  type: :runtime
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: 0.0.7
40
+ version: 0.0.9
41
41
  description: Helper for object composition
42
42
  email:
43
43
  - mbj@schirp-dso.com
@@ -45,10 +45,11 @@ executables: []
45
45
  extensions: []
46
46
  extra_rdoc_files: []
47
47
  files:
48
- - .circle.yml
49
- - .gitignore
50
- - .rspec
51
- - .travis.yml
48
+ - ".circle.yml"
49
+ - ".gitignore"
50
+ - ".rspec"
51
+ - ".rubocop.yml"
52
+ - ".travis.yml"
52
53
  - Changelog.md
53
54
  - Gemfile
54
55
  - Gemfile.devtools
@@ -56,18 +57,21 @@ files:
56
57
  - LICENSE
57
58
  - README.md
58
59
  - Rakefile
60
+ - circle.yml
59
61
  - concord.gemspec
60
62
  - config/flay.yml
61
63
  - config/flog.yml
62
64
  - config/mutant.yml
63
65
  - config/reek.yml
64
66
  - config/roodi.yml
67
+ - config/rubocop.yml
65
68
  - config/yardstick.yml
66
69
  - lib/concord.rb
67
70
  - spec/spec_helper.rb
68
71
  - spec/unit/concord/universal_spec.rb
69
72
  homepage: https://github.com/mbj/concord
70
- licenses: []
73
+ licenses:
74
+ - MIT
71
75
  metadata: {}
72
76
  post_install_message:
73
77
  rdoc_options: []
@@ -75,19 +79,18 @@ require_paths:
75
79
  - lib
76
80
  required_ruby_version: !ruby/object:Gem::Requirement
77
81
  requirements:
78
- - - '>='
82
+ - - ">="
79
83
  - !ruby/object:Gem::Version
80
- version: '0'
84
+ version: 1.9.3
81
85
  required_rubygems_version: !ruby/object:Gem::Requirement
82
86
  requirements:
83
- - - '>='
87
+ - - ">="
84
88
  - !ruby/object:Gem::Version
85
89
  version: '0'
86
90
  requirements: []
87
91
  rubyforge_project:
88
- rubygems_version: 2.0.2
92
+ rubygems_version: 2.2.2
89
93
  signing_key:
90
94
  specification_version: 4
91
95
  summary: Helper for object composition
92
96
  test_files: []
93
- has_rdoc: