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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0902ac2d8ca8ba16869996c1ef04b7ecb2000d97
4
- data.tar.gz: d7b5fa19e9126827253e862dcbcabf42b4b9e414
3
+ metadata.gz: 0bcfe0b06dba3e6fe05c7abbfc571b4a730f2e14
4
+ data.tar.gz: 8c38fc100b208b7dd433b1cd49ffc532e4805082
5
5
  SHA512:
6
- metadata.gz: 6ffde4729d408042a7b506d3120585cb97fcdfc664c3badacff70d89814a19fd5e0f112a9fa85528f4cba5318b3fb12e60be56544c14d5d854b1ba0ba9d15e86
7
- data.tar.gz: 1f9b9bf84633739b59d1b6cde9f4f02ecd8bb9dc8307d501cc5aea3d2b9c1eb6014b48f21588243913d1209f334f5e36f09b4f019ecf470d8b2194a6693c115b
6
+ metadata.gz: 30a396cc252034d137d96f44daf020e3f84d440285f19df47ce0dda7252baa67ce8654e5ee4664afa085df6e2ed5b9f164b49350ccae24a0e0a6f017322340fe
7
+ data.tar.gz: 5d3f0f12ac99e416d97b54786394da9f2f3b8ecdf8864b3ad9d493d973f13df4293e28ae14f32006ad75f121c50badda36b41e7c96f3aec6bfdf330fa55ad43c
data/README.md CHANGED
@@ -1,6 +1,12 @@
1
1
  # Light
2
2
 
3
- TODO: Write a gem description
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
@@ -1 +1,6 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new(:spec)
5
+
6
+ task default: :spec
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
- self.send(:attr_accessor, attr)
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("#{attr}")
23
+ public_send(attr.to_s)
23
24
  end
24
25
  end
25
26
 
26
- def ==(o)
27
- o.class == self.class && o.equality_state == equality_state
27
+ def ==(other)
28
+ other.class == self.class && other.equality_state == equality_state
28
29
  end
29
30
 
30
- alias_method :eql?, :==
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
- self.public_send("#{attr}=", value)
39
- end if params
40
+ public_send("#{attr}=", value)
41
+ end
40
42
  end
41
43
 
42
- def to_h(opts=nil)
43
- self.serializable_hash(opts)
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
@@ -1,3 +1,3 @@
1
1
  module Light
2
- VERSION = "0.0.1"
2
+ VERSION = '1.0.0'.freeze
3
3
  end
data/lib/light.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "light/version"
2
- require "light/model"
1
+ require 'light/version'
2
+ require 'light/model'
3
3
 
4
4
  module Light
5
5
  # Your code goes here...
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 = "light"
7
+ spec.name = 'light'
8
8
  spec.version = Light::VERSION
9
- spec.authors = ["Pawel Niemczyk"]
10
- spec.email = ["pniemczyk@o2.pl"]
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 = "MIT"
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 = ["lib"]
19
+ spec.require_paths = ['lib']
20
20
 
21
- spec.add_development_dependency "bundler", "~> 1.3"
22
- spec.add_development_dependency "rake"
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
@@ -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 be_true
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.1
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: 2013-10-29 00:00:00.000000000 Z
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.0.3
123
+ rubygems_version: 2.6.8
82
124
  signing_key:
83
125
  specification_version: 4
84
126
  summary: Light models