accord 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.
Files changed (49) hide show
  1. data/.gitignore +7 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +7 -0
  4. data/Gemfile.lock +43 -0
  5. data/accord.gemspec +20 -0
  6. data/lib/accord.rb +4 -0
  7. data/lib/accord/adapter_registry.rb +106 -0
  8. data/lib/accord/base_registry.rb +73 -0
  9. data/lib/accord/declarations.rb +131 -0
  10. data/lib/accord/exceptions.rb +22 -0
  11. data/lib/accord/extendor.rb +36 -0
  12. data/lib/accord/extendor_container.rb +43 -0
  13. data/lib/accord/interface.rb +189 -0
  14. data/lib/accord/interface_body.rb +73 -0
  15. data/lib/accord/interface_members.rb +31 -0
  16. data/lib/accord/interface_method.rb +27 -0
  17. data/lib/accord/interfaces.rb +471 -0
  18. data/lib/accord/nested_key_hash.rb +66 -0
  19. data/lib/accord/ro.rb +65 -0
  20. data/lib/accord/signature_info.rb +76 -0
  21. data/lib/accord/specification.rb +83 -0
  22. data/lib/accord/subscription_registry.rb +76 -0
  23. data/lib/accord/tags.rb +25 -0
  24. data/lib/accord/version.rb +3 -0
  25. data/spec/adapter_registry_spec.rb +296 -0
  26. data/spec/declarations_spec.rb +144 -0
  27. data/spec/extendor_container_spec.rb +101 -0
  28. data/spec/extendor_spec.rb +203 -0
  29. data/spec/integration/adaptation_spec.rb +86 -0
  30. data/spec/integration/adapter_for_class_declaration_spec.rb +22 -0
  31. data/spec/integration/adapter_hook_spec.rb +41 -0
  32. data/spec/integration/default_adapters_spec.rb +81 -0
  33. data/spec/integration/hash_adapters_spec.rb +20 -0
  34. data/spec/integration/interface_declaration_spec.rb +258 -0
  35. data/spec/integration/multi_adapters_spec.rb +83 -0
  36. data/spec/integration/named_adapters_spec.rb +54 -0
  37. data/spec/integration/single_adapters_spec.rb +93 -0
  38. data/spec/integration/subscriptions_spec.rb +245 -0
  39. data/spec/integration/verification_spec.rb +215 -0
  40. data/spec/interface_body_spec.rb +157 -0
  41. data/spec/interface_members_spec.rb +57 -0
  42. data/spec/interface_spec.rb +147 -0
  43. data/spec/nested_key_hash_spec.rb +140 -0
  44. data/spec/signature_info_spec.rb +65 -0
  45. data/spec/spec_helper.rb +2 -0
  46. data/spec/specification_spec.rb +246 -0
  47. data/spec/subscription_registry_spec.rb +206 -0
  48. data/spec/tags_spec.rb +38 -0
  49. metadata +134 -0
@@ -0,0 +1,38 @@
1
+ require 'spec_helper'
2
+ require 'accord/tags'
3
+
4
+ module Accord
5
+ describe Tags do
6
+ subject { Tags.new }
7
+
8
+ it "returns nil if a tag isn't set" do
9
+ expect(subject[:not_set]).to be_nil
10
+ end
11
+
12
+ it "sets and gets" do
13
+ subject[:tag] = 'value'
14
+ expect(subject[:tag]).to eq 'value'
15
+ end
16
+
17
+ it "treats symbols and strings as same" do
18
+ subject[:tag] = 'value'
19
+ expect(subject['tag']).to eq 'value'
20
+ end
21
+
22
+ describe "#fetch" do
23
+ it "returns the tag it it is set" do
24
+ subject[:tag] = 'value'
25
+ expect(subject.fetch(:tag)).to eq 'value'
26
+ end
27
+
28
+ it "returns a default value if tag isn't set and default is given" do
29
+ default = Object.new
30
+ expect(subject.fetch(:tag, default)).to be default
31
+ end
32
+
33
+ it "raises error if the tag isn't set and a default is not given" do
34
+ expect { subject.fetch(:tag) }.to raise_error(ArgumentError)
35
+ end
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,134 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: accord
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - rcabralc
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-02-25 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rspec
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ description: Contracts and adaptation for Ruby
31
+ email:
32
+ - rcabralc@gmail.com
33
+ executables: []
34
+ extensions: []
35
+ extra_rdoc_files: []
36
+ files:
37
+ - .gitignore
38
+ - .rvmrc
39
+ - Gemfile
40
+ - Gemfile.lock
41
+ - accord.gemspec
42
+ - lib/accord.rb
43
+ - lib/accord/adapter_registry.rb
44
+ - lib/accord/base_registry.rb
45
+ - lib/accord/declarations.rb
46
+ - lib/accord/exceptions.rb
47
+ - lib/accord/extendor.rb
48
+ - lib/accord/extendor_container.rb
49
+ - lib/accord/interface.rb
50
+ - lib/accord/interface_body.rb
51
+ - lib/accord/interface_members.rb
52
+ - lib/accord/interface_method.rb
53
+ - lib/accord/interfaces.rb
54
+ - lib/accord/nested_key_hash.rb
55
+ - lib/accord/ro.rb
56
+ - lib/accord/signature_info.rb
57
+ - lib/accord/specification.rb
58
+ - lib/accord/subscription_registry.rb
59
+ - lib/accord/tags.rb
60
+ - lib/accord/version.rb
61
+ - spec/adapter_registry_spec.rb
62
+ - spec/declarations_spec.rb
63
+ - spec/extendor_container_spec.rb
64
+ - spec/extendor_spec.rb
65
+ - spec/integration/adaptation_spec.rb
66
+ - spec/integration/adapter_for_class_declaration_spec.rb
67
+ - spec/integration/adapter_hook_spec.rb
68
+ - spec/integration/default_adapters_spec.rb
69
+ - spec/integration/hash_adapters_spec.rb
70
+ - spec/integration/interface_declaration_spec.rb
71
+ - spec/integration/multi_adapters_spec.rb
72
+ - spec/integration/named_adapters_spec.rb
73
+ - spec/integration/single_adapters_spec.rb
74
+ - spec/integration/subscriptions_spec.rb
75
+ - spec/integration/verification_spec.rb
76
+ - spec/interface_body_spec.rb
77
+ - spec/interface_members_spec.rb
78
+ - spec/interface_spec.rb
79
+ - spec/nested_key_hash_spec.rb
80
+ - spec/signature_info_spec.rb
81
+ - spec/spec_helper.rb
82
+ - spec/specification_spec.rb
83
+ - spec/subscription_registry_spec.rb
84
+ - spec/tags_spec.rb
85
+ homepage: http://rubygems.org/gems/accord
86
+ licenses: []
87
+ post_install_message:
88
+ rdoc_options: []
89
+ require_paths:
90
+ - lib
91
+ required_ruby_version: !ruby/object:Gem::Requirement
92
+ none: false
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ required_rubygems_version: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubyforge_project:
105
+ rubygems_version: 1.8.25
106
+ signing_key:
107
+ specification_version: 3
108
+ summary: Contracts and adaptation for Ruby
109
+ test_files:
110
+ - spec/adapter_registry_spec.rb
111
+ - spec/declarations_spec.rb
112
+ - spec/extendor_container_spec.rb
113
+ - spec/extendor_spec.rb
114
+ - spec/integration/adaptation_spec.rb
115
+ - spec/integration/adapter_for_class_declaration_spec.rb
116
+ - spec/integration/adapter_hook_spec.rb
117
+ - spec/integration/default_adapters_spec.rb
118
+ - spec/integration/hash_adapters_spec.rb
119
+ - spec/integration/interface_declaration_spec.rb
120
+ - spec/integration/multi_adapters_spec.rb
121
+ - spec/integration/named_adapters_spec.rb
122
+ - spec/integration/single_adapters_spec.rb
123
+ - spec/integration/subscriptions_spec.rb
124
+ - spec/integration/verification_spec.rb
125
+ - spec/interface_body_spec.rb
126
+ - spec/interface_members_spec.rb
127
+ - spec/interface_spec.rb
128
+ - spec/nested_key_hash_spec.rb
129
+ - spec/signature_info_spec.rb
130
+ - spec/spec_helper.rb
131
+ - spec/specification_spec.rb
132
+ - spec/subscription_registry_spec.rb
133
+ - spec/tags_spec.rb
134
+ has_rdoc: