light 0.0.1 → 1.0.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.
- checksums.yaml +4 -4
- data/README.md +7 -1
- data/Rakefile +6 -1
- data/lib/light/model.rb +13 -11
- data/lib/light/version.rb +1 -1
- data/lib/light.rb +2 -2
- data/light.gemspec +11 -8
- data/spec/light/model_spec.rb +3 -4
- metadata +53 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0bcfe0b06dba3e6fe05c7abbfc571b4a730f2e14
|
4
|
+
data.tar.gz: 8c38fc100b208b7dd433b1cd49ffc532e4805082
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30a396cc252034d137d96f44daf020e3f84d440285f19df47ce0dda7252baa67ce8654e5ee4664afa085df6e2ed5b9f164b49350ccae24a0e0a6f017322340fe
|
7
|
+
data.tar.gz: 5d3f0f12ac99e416d97b54786394da9f2f3b8ecdf8864b3ad9d493d973f13df4293e28ae14f32006ad75f121c50badda36b41e7c96f3aec6bfdf330fa55ad43c
|
data/README.md
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
# Light
|
2
2
|
|
3
|
-
|
3
|
+
When you need all functionalities of ActiveRecord model but for other purposes than db transactions you can use Light. Light has additional `equality_state` and `to_h` method.
|
4
|
+
|
5
|
+
## Examples:
|
6
|
+
|
7
|
+
```
|
8
|
+
|
9
|
+
```
|
4
10
|
|
5
11
|
## Installation
|
6
12
|
|
data/Rakefile
CHANGED
data/lib/light/model.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_model'
|
1
2
|
module Light
|
2
3
|
class Model
|
3
4
|
include ActiveModel::Serialization
|
@@ -11,7 +12,7 @@ module Light
|
|
11
12
|
class << self
|
12
13
|
def attributes(*attrs)
|
13
14
|
attrs.each do |attr|
|
14
|
-
|
15
|
+
send(:attr_accessor, attr)
|
15
16
|
end
|
16
17
|
@__attributes = (@__attributes || []) + attrs
|
17
18
|
end
|
@@ -19,28 +20,29 @@ module Light
|
|
19
20
|
|
20
21
|
def equality_state
|
21
22
|
self.class.instance_variable_get(:@__attributes).map do |attr|
|
22
|
-
public_send(
|
23
|
+
public_send(attr.to_s)
|
23
24
|
end
|
24
25
|
end
|
25
26
|
|
26
|
-
def ==(
|
27
|
-
|
27
|
+
def ==(other)
|
28
|
+
other.class == self.class && other.equality_state == equality_state
|
28
29
|
end
|
29
30
|
|
30
|
-
|
31
|
+
alias eql? ==
|
31
32
|
|
32
33
|
def hash
|
33
34
|
equality_state.hash
|
34
35
|
end
|
35
36
|
|
36
|
-
def initialize(params={})
|
37
|
+
def initialize(params = {})
|
38
|
+
return unless params
|
37
39
|
params.each do |attr, value|
|
38
|
-
|
39
|
-
end
|
40
|
+
public_send("#{attr}=", value)
|
41
|
+
end
|
40
42
|
end
|
41
43
|
|
42
|
-
def to_h(opts=nil)
|
43
|
-
|
44
|
+
def to_h(opts = nil)
|
45
|
+
serializable_hash(opts)
|
44
46
|
end
|
45
47
|
|
46
48
|
def persisted?
|
@@ -57,4 +59,4 @@ module Light
|
|
57
59
|
end
|
58
60
|
end
|
59
61
|
end
|
60
|
-
end
|
62
|
+
end
|
data/lib/light/version.rb
CHANGED
data/lib/light.rb
CHANGED
data/light.gemspec
CHANGED
@@ -4,20 +4,23 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
require 'light/version'
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
|
-
spec.name =
|
7
|
+
spec.name = 'light'
|
8
8
|
spec.version = Light::VERSION
|
9
|
-
spec.authors = [
|
10
|
-
spec.email = [
|
9
|
+
spec.authors = ['Pawel Niemczyk']
|
10
|
+
spec.email = ['pniemczyk@o2.pl']
|
11
11
|
spec.description = %q{Light models}
|
12
12
|
spec.summary = %q{Light models}
|
13
|
-
spec.homepage =
|
14
|
-
spec.license =
|
13
|
+
spec.homepage = ''
|
14
|
+
spec.license = 'MIT'
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
-
spec.require_paths = [
|
19
|
+
spec.require_paths = ['lib']
|
20
20
|
|
21
|
-
spec.
|
22
|
-
spec.add_development_dependency
|
21
|
+
spec.add_dependency 'activemodel', '~> 4.0'
|
22
|
+
spec.add_development_dependency 'bundler', '~> 1.3'
|
23
|
+
spec.add_development_dependency 'rake', '~> 0'
|
24
|
+
spec.add_development_dependency 'rspec', '~> 3.1'
|
25
|
+
spec.add_development_dependency 'guard-rspec', '~> 0'
|
23
26
|
end
|
data/spec/light/model_spec.rb
CHANGED
@@ -9,7 +9,6 @@ describe Light::Model do
|
|
9
9
|
before(:each) { @subject = TestClass.new(test_data) }
|
10
10
|
|
11
11
|
describe 'initialize' do
|
12
|
-
|
13
12
|
it 'fillfull instance' do
|
14
13
|
@subject.name.should eq test_data[:name]
|
15
14
|
@subject.email.should eq test_data[:email]
|
@@ -33,7 +32,7 @@ describe Light::Model do
|
|
33
32
|
[
|
34
33
|
TestClass.new(test_data) == TestClass.new(test_data),
|
35
34
|
TestClass.new(test_data).eql?(TestClass.new(test_data))
|
36
|
-
].all?.should
|
35
|
+
].all?.should eq(true)
|
37
36
|
end
|
38
37
|
end
|
39
38
|
|
@@ -43,7 +42,7 @@ describe Light::Model do
|
|
43
42
|
end
|
44
43
|
|
45
44
|
it 'with options' do
|
46
|
-
hash = {'name' => 'Pawel'}
|
45
|
+
hash = { 'name' => 'Pawel' }
|
47
46
|
@subject.as_json(only: :name).should eq hash.stringify_keys
|
48
47
|
end
|
49
48
|
end
|
@@ -54,7 +53,7 @@ describe Light::Model do
|
|
54
53
|
end
|
55
54
|
|
56
55
|
it 'with options' do
|
57
|
-
hash = {'name' => 'Pawel'}
|
56
|
+
hash = { 'name' => 'Pawel' }
|
58
57
|
@subject.to_json(only: :name).should eq hash.to_json
|
59
58
|
end
|
60
59
|
end
|
metadata
CHANGED
@@ -1,41 +1,83 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: light
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pawel Niemczyk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activemodel
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '4.0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: bundler
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
|
-
- - ~>
|
31
|
+
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
33
|
version: '1.3'
|
20
34
|
type: :development
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
|
-
- - ~>
|
38
|
+
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
40
|
version: '1.3'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
|
-
- -
|
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.1'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '3.1'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: guard-rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
32
74
|
- !ruby/object:Gem::Version
|
33
75
|
version: '0'
|
34
76
|
type: :development
|
35
77
|
prerelease: false
|
36
78
|
version_requirements: !ruby/object:Gem::Requirement
|
37
79
|
requirements:
|
38
|
-
- -
|
80
|
+
- - "~>"
|
39
81
|
- !ruby/object:Gem::Version
|
40
82
|
version: '0'
|
41
83
|
description: Light models
|
@@ -45,8 +87,8 @@ executables: []
|
|
45
87
|
extensions: []
|
46
88
|
extra_rdoc_files: []
|
47
89
|
files:
|
48
|
-
- .gitignore
|
49
|
-
- .rspec
|
90
|
+
- ".gitignore"
|
91
|
+
- ".rspec"
|
50
92
|
- Gemfile
|
51
93
|
- Guardfile
|
52
94
|
- LICENSE.txt
|
@@ -68,17 +110,17 @@ require_paths:
|
|
68
110
|
- lib
|
69
111
|
required_ruby_version: !ruby/object:Gem::Requirement
|
70
112
|
requirements:
|
71
|
-
- -
|
113
|
+
- - ">="
|
72
114
|
- !ruby/object:Gem::Version
|
73
115
|
version: '0'
|
74
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
117
|
requirements:
|
76
|
-
- -
|
118
|
+
- - ">="
|
77
119
|
- !ruby/object:Gem::Version
|
78
120
|
version: '0'
|
79
121
|
requirements: []
|
80
122
|
rubyforge_project:
|
81
|
-
rubygems_version: 2.
|
123
|
+
rubygems_version: 2.6.8
|
82
124
|
signing_key:
|
83
125
|
specification_version: 4
|
84
126
|
summary: Light models
|