declarative 0.0.8 → 0.0.9

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: 821bc94b5316e638016b621016276d0b43ae7545
4
- data.tar.gz: 330cde61ef63784b7111de6c3167c0bdc9329e37
3
+ metadata.gz: 85ae72ce17160c8d0d6bbe197358967601d4565d
4
+ data.tar.gz: 28b480fc3526c9197fbe02899929c8a0cec4baa4
5
5
  SHA512:
6
- metadata.gz: 84188b1b135bf31cb9d2c7b2d08c4145688a39a246c8fc99fe04d3c4824350ee20741142de62f2362f8b9d589d44c978db0694c6c923892fab23f8a1507e29c7
7
- data.tar.gz: 2b056f07f475a823d6763c64c4e5272a218c5d214052f0e8bbe8b3730cd8e059ae995a23bc9239fa34c40392d484e2b44763b20edccfb9f931c61f8f9a55e9b2
6
+ metadata.gz: 6c2b2d5d60573417e5304f220cf3d1658bda2b5b52601b5ed554fb6447c1f62c5d4fad254c2b28dc68bf231aea8e0215bea5b565ade7189dfb6935efbf6fa534
7
+ data.tar.gz: 28abb6da89a87cbb256cce92327945641224cc077ef1f182451ce9695c02ed16aaeace1b5e56714ce948d9fafd4776de1312715893b07676ec0e8f1ca7ba6b44
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 0.0.9
2
+
3
+ * Removing `uber` dependency.
4
+
1
5
  # 0.0.8
2
6
 
3
7
  * When calling `Schema#defaults` (or `Defaults#merge!`) multiple times, same-named arrays will be joined instead of overridden. This fixes a common problem when merging different default settings.
data/README.md CHANGED
@@ -24,7 +24,7 @@ Normally, an abstract base class will define essential configuration.
24
24
 
25
25
  ```ruby
26
26
  class Model
27
- include Declarative::Schema
27
+ extend Declarative::Schema
28
28
 
29
29
  def self.default_nested_class
30
30
  Model
@@ -106,4 +106,4 @@ class Model
106
106
 
107
107
  ## Copyright
108
108
 
109
- * Copyright (c) 2015 Nick Sutterer <apotonick@gmail.com>
109
+ * Copyright (c) 2015 Nick Sutterer <apotonick@gmail.com>
@@ -17,8 +17,6 @@ Gem::Specification.new do |spec|
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
19
 
20
- spec.add_dependency "uber", ">= 0.0.15"
21
-
22
20
  spec.add_development_dependency "rake", "~> 10.0"
23
21
  spec.add_development_dependency "minitest"
24
22
  spec.add_development_dependency "minitest-line"
@@ -1,5 +1,3 @@
1
- require "uber/delegates"
2
-
3
1
  module Declarative
4
2
  class Defaults
5
3
  def initialize
@@ -1,3 +1,5 @@
1
+ require "declarative/deep_dup"
2
+
1
3
  module Declarative
2
4
  class Heritage < Array
3
5
  # Record inheritable assignments for replay in an inheriting class.
@@ -1,6 +1,6 @@
1
- require "declarative"
2
1
  require "declarative/definitions"
3
2
  require "declarative/defaults"
3
+ require "declarative/heritage"
4
4
 
5
5
  module Declarative
6
6
  # Include this to maintain inheritable, nested schemas with ::defaults and
@@ -57,8 +57,8 @@ module Declarative
57
57
  end
58
58
 
59
59
  NestedBuilder = ->(options) do
60
- base = Class.new(options[:_base]) do
61
- feature *options[:_features]
60
+ Class.new(options[:_base]) do # base
61
+ feature(*options[:_features])
62
62
  class_eval(&options[:_block])
63
63
  end
64
64
  end
@@ -79,8 +79,6 @@ module Declarative
79
79
  heritage.record(:register_feature, mod) # this is only for inheritance between decorators and modules!!! ("horizontal and vertical")
80
80
 
81
81
  defaults.merge!(_features: [mod])
82
- # defaults[:_features] ||= []
83
- # defaults[:_features] << mod
84
82
  end
85
83
  end
86
84
  end
@@ -1,3 +1,3 @@
1
1
  module Declarative
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
@@ -20,8 +20,6 @@ class DefinitionsTest < Minitest::Spec
20
20
  # #add with name and options
21
21
  schema.add(:id, unique: true)
22
22
  schema.get(:id).inspect.must_equal '#<Declarative::Definitions::Definition: @options={:unique=>true, :name=>"id"}>'
23
-
24
- pp schema
25
23
  end
26
24
 
27
25
  it "overwrites old when called twice" do
@@ -39,8 +37,6 @@ class DefinitionsTest < Minitest::Spec
39
37
  end
40
38
 
41
39
  schema.inspect.must_equal '{"artist"=>#<Declarative::Definitions::Definition: @options={:nested=>{"name"=>#<Declarative::Definitions::Definition: @options={:name=>"name"}>, "band"=>#<Declarative::Definitions::Definition: @options={:nested=>{"location"=>#<Declarative::Definitions::Definition: @options={:name=>"location"}>}, :name=>"band"}>}, :name=>"artist"}>}'
42
-
43
- pp schema
44
40
  end
45
41
 
46
42
  it "#add with :nested instead of block" do
@@ -73,9 +69,6 @@ class DefinitionsTest < Minitest::Spec
73
69
 
74
70
  schema.add :id, unique: false, inherit: true
75
71
 
76
- pp schema
77
-
78
-
79
72
  schema.inspect.must_equal '{"artist"=>#<Declarative::Definitions::Definition: @options={:cool=>true, :nested=>{"name"=>#<Declarative::Definitions::Definition: @options={:name=>"name"}>, "band"=>#<Declarative::Definitions::Definition: @options={:crazy=>nil, :nested=>{"location"=>#<Declarative::Definitions::Definition: @options={:name=>"location"}>, "genre"=>#<Declarative::Definitions::Definition: @options={:name=>"genre"}>}, :name=>"band", :normal=>false}>}, :name=>"artist", :uncool=>false}>, "id"=>#<Declarative::Definitions::Definition: @options={:unique=>false, :value=>1, :name=>"id"}>}'
80
73
  end
81
74
 
@@ -56,7 +56,6 @@ class SchemaTest < Minitest::Spec
56
56
  it do
57
57
  InheritingConcrete.extend(Declarative::Inspect::Schema)
58
58
  InheritingConcrete.inspect
59
- # pp InheritingConcrete.definitions.get(:artist)[:nested].definitions.get(:band)[:nested].definitions
60
59
  InheritingConcrete.inspect.gsub(/\s/, "").must_equal 'Schema:{
61
60
  "links"=>#<Declarative::Definitions::Definition:@options={:render_nil=>true,:as=>"LINKS",:name=>"links"}>,
62
61
  "artist"=>#<Declarative::Definitions::Definition:@options={:render_nil=>true,:as=>"ARTIST",:cool=>true,:nested=>Schema:{
@@ -1,6 +1,4 @@
1
- require "declarative"
2
1
  require "minitest/autorun"
3
- require "pp"
4
-
2
+ require "declarative"
5
3
  require "declarative/testing"
6
- require "ostruct"
4
+ require "ostruct"
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: declarative
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
4
+ version: 0.0.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-25 00:00:00.000000000 Z
11
+ date: 2017-01-28 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: uber
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: 0.0.15
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: 0.0.15
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: rake
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -114,7 +100,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
100
  version: '0'
115
101
  requirements: []
116
102
  rubyforge_project:
117
- rubygems_version: 2.4.8
103
+ rubygems_version: 2.6.3
118
104
  signing_key:
119
105
  specification_version: 4
120
106
  summary: DSL for nested schemas.