serializer 0.0.9 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.rdoc +7 -12
- data/lib/serializer.rb +30 -28
- data/lib/serializer/initializer.rb +2 -2
- data/lib/serializer/railtie.rb +2 -2
- data/lib/serializer/version.rb +1 -1
- data/test/dummy/Rakefile +0 -1
- data/test/dummy/app/assets/stylesheets/application.css +3 -3
- data/test/dummy/app/controllers/application_controller.rb +1 -1
- data/test/dummy/app/controllers/main_controller.rb +2 -2
- data/test/dummy/app/controllers/users_controller.rb +17 -17
- data/test/dummy/app/models/account.rb +5 -3
- data/test/dummy/app/models/subscription.rb +3 -0
- data/test/dummy/app/models/user.rb +9 -7
- data/test/dummy/app/views/users/_form.html.haml +4 -4
- data/test/dummy/app/views/users/edit.html.haml +1 -1
- data/test/dummy/app/views/users/new.html.haml +1 -1
- data/test/dummy/bin/bundle +3 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/config.ru +1 -1
- data/test/dummy/config/application.rb +1 -34
- data/test/dummy/config/boot.rb +4 -9
- data/test/dummy/config/environment.rb +2 -2
- data/test/dummy/config/environments/development.rb +12 -13
- data/test/dummy/config/environments/production.rb +44 -24
- data/test/dummy/config/environments/test.rb +15 -18
- data/test/dummy/config/initializers/other.rb +8 -2
- data/test/dummy/config/routes.rb +3 -3
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/db/migrate/20110927222742_create_users.rb +1 -1
- data/test/dummy/db/migrate/20130207030140_create_subscriptions.rb +1 -1
- data/test/dummy/db/schema.rb +15 -11
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/development.log +109 -2307
- data/test/dummy/log/test.log +10981 -13387
- data/test/dummy/test/fixtures/users.yml +1 -1
- data/test/dummy/test/functional/main_controller_test.rb +1 -1
- data/test/dummy/test/functional/users_controller_test.rb +3 -3
- data/test/dummy/test/integration/user_create_test.rb +5 -5
- data/test/dummy/test/integration/user_update_test.rb +5 -5
- data/test/dummy/test/unit/account_test.rb +6 -6
- data/test/dummy/test/unit/user_test.rb +30 -30
- data/test/dummy/tmp/cache/assets/{D65/FC0/sprockets%2F650c155de4459a33bb5cc75d0cabc738 → development/sprockets/08ccbef19db178234499204fd36c0915} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/{DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 → development/sprockets/2f5173deea6c795b8fdde723bb4b63af} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/7682e37e0736cf2b209545cf7af4dc29 +0 -0
- data/test/dummy/tmp/cache/assets/{DBA/C70/sprockets%2F393a0a1b56d0da607ff53aa2fdb9ec31 → development/sprockets/88e88b185ff5a542c97cbb3b475e608d} +0 -0
- data/test/dummy/tmp/cache/assets/{C63/7C0/sprockets%2F951340282b11ba35a865d4e04300b3a8 → development/sprockets/b5282f83ab7001db941907c89cbdebe2} +0 -0
- data/test/dummy/tmp/cache/assets/{E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af → development/sprockets/cffd775d018f68ce5dba1ee0d951a994} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/{CB9/B60/sprockets%2Fe7b839a0806e5c20e5018197f56cd656 → development/sprockets/e27d2ca07f775a17ecaec5e004a62a56} +0 -0
- data/test/dummy/tmp/cache/assets/{D13/FD0/sprockets%2F8d733d18e3095c053f81f78d4a422afd → development/sprockets/eacda4f935d5f480cb099f85f49a65b2} +0 -0
- data/test/dummy/tmp/cache/assets/development/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/2f5173deea6c795b8fdde723bb4b63af +0 -0
- data/test/dummy/tmp/cache/assets/{D76/4D0/sprockets%2F8a096b6dd59bfda3e461617a95524eaf → test/sprockets/30465d6ec3d7c977f30a3a297e7f57c1} +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/306c1607f0ffbc40bac368573862cf58 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/59e56a009695d42ebc54fb7f0b4f948d +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/736bfbe6fcafc58b47f016154a407ffc +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/7682e37e0736cf2b209545cf7af4dc29 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/88e88b185ff5a542c97cbb3b475e608d +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/b5282f83ab7001db941907c89cbdebe2 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/cffd775d018f68ce5dba1ee0d951a994 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/e27d2ca07f775a17ecaec5e004a62a56 +0 -0
- data/test/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/test_helper.rb +7 -0
- metadata +69 -89
- data/test/dummy/app/assets/javascripts/main.js +0 -0
- data/test/dummy/app/assets/javascripts/users.js +0 -0
- data/test/dummy/app/assets/stylesheets/main.css +0 -4
- data/test/dummy/app/assets/stylesheets/scaffold.css +0 -56
- data/test/dummy/app/assets/stylesheets/users.css +0 -4
- data/test/dummy/app/helpers/main_helper.rb +0 -2
- data/test/dummy/app/helpers/users_helper.rb +0 -2
- data/test/dummy/script/rails +0 -6
- data/test/dummy/tmp/cache/assets/C36/B50/sprockets%2F5e8353089687a8324957248c12a6ea87 +0 -0
- data/test/dummy/tmp/cache/assets/C8C/B80/sprockets%2F371bf96e99717688ed7313a0c53f4212 +0 -0
- data/test/dummy/tmp/cache/assets/CAA/620/sprockets%2F87b209c0c9da28094a8d5581a21262c6 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
- data/test/dummy/tmp/cache/assets/CD8/B70/sprockets%2F4050a4e5062ab95c9f32e9b6940821ea +0 -0
- data/test/dummy/tmp/cache/assets/CF0/1D0/sprockets%2F6fc757c2c8329244ca95d6909865bbc2 +0 -0
- data/test/dummy/tmp/cache/assets/D06/B40/sprockets%2F25fca4643219052b0d5c66cf2c71f72f +0 -0
- data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
- data/test/dummy/tmp/cache/assets/D46/650/sprockets%2Ff56253b5f374fff1a33fbbc9881c9124 +0 -0
- data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
- data/test/dummy/tmp/cache/assets/D52/D30/sprockets%2Fb1b780ccf384149569ceb76ee7bd5639 +0 -0
- data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
- data/test/dummy/tmp/cache/assets/D67/250/sprockets%2F2b4acc4bbcc24118e7707c269738f0bf +0 -0
- data/test/dummy/tmp/cache/assets/D67/B60/sprockets%2F5f1a0d05e77ca8b9a1fc2a47e17a8174 +0 -0
- data/test/dummy/tmp/cache/assets/D73/9B0/sprockets%2Ff6eeb33602682bd6ff6d1f177f6b142d +0 -0
- data/test/dummy/tmp/cache/assets/DA7/530/sprockets%2Fe36b8fcf5914a3a6bf058abfe7367b19 +0 -0
- data/test/dummy/tmp/cache/assets/DB7/6C0/sprockets%2F386e9196dd0f9efdce6f92ce93a6d107 +0 -0
- data/test/dummy/tmp/cache/assets/DC8/3B0/sprockets%2F0949dcec3ad4d7d2733ad5b523aeb7d4 +0 -0
- data/test/dummy/tmp/cache/assets/DE1/6A0/sprockets%2Fcae9aba95894da8a28fa8a5387dc565f +0 -0
- data/test/dummy/tmp/cache/assets/E1D/010/sprockets%2Fdffad412d86bfdfbb1f307d711da21d3 +0 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d5c912a41791921da90698e640dd7f296b91960d
|
4
|
+
data.tar.gz: 40a499a320d33c5df1adfe53d9654de15f915ab4
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 2420de6e82e18c54ca4c86b03d256bfefbe70ede0a4cf5b46ed3d6f24aeb50ef745b1d5214617ad86dbd0108be4091aad429916ca952b2b7e3ca9cdc04633cab
|
7
|
+
data.tar.gz: 2cb8c12561c4f40db78ba9cfd030cf594c17ab9ee64df71bc0bb28a02f96eecb99219b0b75e421969176c0b26ecf659e33a34ef447aabdfe68b5604eeff7f7ed
|
data/README.rdoc
CHANGED
@@ -8,11 +8,8 @@ The gem is tested with:
|
|
8
8
|
|
9
9
|
* Ruby (MRI) 2.0.0
|
10
10
|
* Ruby (MRI) 1.9.3
|
11
|
-
*
|
12
|
-
*
|
13
|
-
* Ruby (REE) 1.8.7
|
14
|
-
* JRuby 1.7.2
|
15
|
-
* Rubinius 1.2.4
|
11
|
+
* JRuby 1.7.6
|
12
|
+
* Rubinius 2.1.1
|
16
13
|
|
17
14
|
== Installation
|
18
15
|
|
@@ -27,15 +24,15 @@ Migration:
|
|
27
24
|
Model:
|
28
25
|
|
29
26
|
class User < ActiveRecord::Base
|
30
|
-
|
27
|
+
|
31
28
|
has_serialized :settings do |settings|
|
32
29
|
settings.define :tw_share, type: :boolean, default: true
|
33
30
|
settings.define :fb_share, type: :boolean, default: true
|
34
31
|
settings.define :completion, type: :float, default: 50.0
|
35
32
|
end
|
36
|
-
|
33
|
+
|
37
34
|
end
|
38
|
-
|
35
|
+
|
39
36
|
Form:
|
40
37
|
|
41
38
|
<%= form_for @user do |form| %>
|
@@ -44,14 +41,12 @@ Form:
|
|
44
41
|
<%= form.checkbox_box :tw_share %>
|
45
42
|
<%= form.checkbox_box :fb_share %>
|
46
43
|
<% end %>
|
47
|
-
|
48
|
-
View:
|
44
|
+
iew:
|
49
45
|
|
50
46
|
<%- if @user.tw_share? -%>
|
51
47
|
...
|
52
48
|
<%- end -%>
|
53
|
-
|
54
|
-
<%- if @user.fb_share? -%>
|
49
|
+
<%- if @user.fb_share? -%>
|
55
50
|
...
|
56
51
|
<%- end -%>
|
57
52
|
|
data/lib/serializer.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
require 'serializer/railtie'
|
2
2
|
require 'serializer/initializer'
|
3
3
|
|
4
|
-
module Serializer
|
5
|
-
|
4
|
+
module Serializer
|
5
|
+
|
6
6
|
def self.included(base)
|
7
7
|
base.extend ClassMethods
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
module ClassMethods
|
11
|
-
|
11
|
+
|
12
12
|
# Add serializer to a class.
|
13
13
|
#
|
14
14
|
# Usage:
|
@@ -18,73 +18,75 @@ module Serializer
|
|
18
18
|
# settings.define :fb_share, default: true, type: :boolean
|
19
19
|
# end
|
20
20
|
#
|
21
|
-
|
21
|
+
|
22
22
|
def has_serialized(name, &block)
|
23
23
|
serialize name, Hash
|
24
|
-
|
24
|
+
|
25
25
|
initializer = Serializer::Initializer.new
|
26
26
|
block.call(initializer)
|
27
|
-
|
27
|
+
|
28
28
|
initializer.each do |method, options|
|
29
|
-
|
29
|
+
|
30
30
|
define_method "#{method}" do
|
31
31
|
hash = send(name)
|
32
32
|
result = hash[method.to_sym] if hash
|
33
|
-
|
33
|
+
|
34
34
|
if hash.nil? or result.nil?
|
35
35
|
send("#{name}=", {}) unless send(name)
|
36
36
|
hash = send(name)
|
37
|
-
|
37
|
+
|
38
38
|
result = options[:default]
|
39
39
|
result = result.clone if result.duplicable?
|
40
|
-
|
40
|
+
|
41
41
|
hash[method.to_sym] = result
|
42
42
|
end
|
43
|
-
|
43
|
+
|
44
44
|
return result
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
define_method "#{method}?" do
|
48
48
|
hash = send(name)
|
49
49
|
result = hash[method.to_sym] if hash
|
50
|
-
|
50
|
+
|
51
51
|
if hash.nil? or result.nil?
|
52
52
|
send("#{name}=", {}) unless send(name)
|
53
53
|
hash = send(name)
|
54
|
-
|
54
|
+
|
55
55
|
result = options[:default]
|
56
56
|
result = result.clone if result.duplicable?
|
57
|
-
|
57
|
+
|
58
58
|
hash[method.to_sym] = result
|
59
59
|
end
|
60
|
-
|
60
|
+
|
61
61
|
return result
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
64
|
define_method "#{method}=" do |value|
|
65
|
-
send(
|
66
|
-
|
67
|
-
|
65
|
+
original = send(name) || {}
|
66
|
+
|
68
67
|
if options[:type] and value
|
69
68
|
case options[:type].to_sym
|
70
69
|
when :float then value = value.to_f if value.respond_to? :to_f
|
71
70
|
when :integer then value = value.to_i if value.respond_to? :to_i
|
72
71
|
when :string then value = value.to_str if value.respond_to? :to_str
|
73
72
|
when :symbol then value = value.to_sym if value.respond_to? :to_sym
|
74
|
-
when :boolean then
|
73
|
+
when :boolean then
|
75
74
|
value = true if value.eql? "true"
|
76
75
|
value = false if value.eql? "false"
|
77
76
|
value = !value.to_i.zero? if value.respond_to? :to_i
|
78
77
|
end
|
79
78
|
end
|
80
|
-
|
81
|
-
|
82
|
-
|
79
|
+
|
80
|
+
modified = original.clone
|
81
|
+
modified[method.to_sym] = value
|
82
|
+
|
83
|
+
send("#{name}_will_change!") unless modified.eql?(original)
|
84
|
+
send("#{name}=", modified)
|
83
85
|
end
|
84
|
-
|
86
|
+
|
85
87
|
end
|
86
88
|
end
|
87
|
-
|
89
|
+
|
88
90
|
end
|
89
|
-
|
91
|
+
|
90
92
|
end
|
data/lib/serializer/railtie.rb
CHANGED
data/lib/serializer/version.rb
CHANGED
data/test/dummy/Rakefile
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
class UsersController < ApplicationController
|
2
|
-
|
2
|
+
|
3
3
|
respond_to :html
|
4
|
-
|
4
|
+
|
5
5
|
# GET /users
|
6
6
|
def index
|
7
7
|
@users = User.all
|
8
|
-
|
8
|
+
|
9
9
|
respond_with(@users)
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
# GET /users/:id
|
13
13
|
def show
|
14
14
|
@user = User.find(params[:id])
|
15
|
-
|
15
|
+
|
16
16
|
respond_with(@user)
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
# GET /users/new
|
20
20
|
def new
|
21
21
|
@user = User.new
|
22
|
-
|
22
|
+
|
23
23
|
respond_with(@user)
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
# GET /users/:id/edit
|
27
27
|
def edit
|
28
28
|
@user = User.find(params[:id])
|
29
|
-
|
29
|
+
|
30
30
|
respond_with(@user)
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
# POST /users
|
34
34
|
def create
|
35
35
|
@user = User.create(params[:user])
|
36
|
-
|
36
|
+
|
37
37
|
respond_with(@user)
|
38
38
|
end
|
39
|
-
|
40
|
-
#
|
39
|
+
|
40
|
+
# PATCH /users/:id
|
41
41
|
def update
|
42
42
|
@user = User.find(params[:id])
|
43
43
|
@user.attributes = params[:user]
|
44
44
|
@user.save
|
45
|
-
|
45
|
+
|
46
46
|
respond_with(@user)
|
47
47
|
end
|
48
|
-
|
48
|
+
|
49
49
|
# DELETE /users/:id
|
50
50
|
def destroy
|
51
51
|
@user = User.find(params[:id])
|
52
52
|
@user.destroy
|
53
|
-
|
53
|
+
|
54
54
|
respond_with(@user)
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
end
|
@@ -1,24 +1,26 @@
|
|
1
1
|
class User < ActiveRecord::Base
|
2
|
-
|
2
|
+
|
3
3
|
belongs_to :account
|
4
4
|
has_one :subscription
|
5
|
-
|
5
|
+
|
6
|
+
attr_accessible :name, :email
|
7
|
+
attr_accessible :tw_share, :fb_share, :tb_share, :status, :location, :percentage, :permissions, :mystery, :notifications
|
8
|
+
|
6
9
|
has_serialized :settings do |settings|
|
7
10
|
settings.define :tw_share, :default => true, :type => :boolean
|
8
11
|
settings.define :fb_share, :default => true, :type => :boolean
|
9
12
|
settings.define :tb_share, :default => true, :type => :boolean
|
10
|
-
|
13
|
+
|
11
14
|
settings.define :status, :default => :user, :type => :symbol
|
12
15
|
settings.define :location, :type => :string
|
13
|
-
|
16
|
+
|
14
17
|
settings.define :percentage, :default => 0.0, :type => :float
|
15
|
-
|
18
|
+
|
16
19
|
settings.define :permissions, :default => [], :type => :array
|
17
|
-
|
20
|
+
|
18
21
|
settings.define :mystery
|
19
22
|
|
20
23
|
settings.define :notifications, :type => :boolean, :default => false
|
21
24
|
end
|
22
25
|
|
23
|
-
|
24
26
|
end
|
@@ -1,10 +1,10 @@
|
|
1
|
-
= form_for(
|
2
|
-
- if
|
1
|
+
= form_for(user) do |f|
|
2
|
+
- if user.errors.any?
|
3
3
|
%p
|
4
|
-
= pluralize(
|
4
|
+
= pluralize(user.errors.count, "error")
|
5
5
|
prohibited this user from being saved:
|
6
6
|
%ul
|
7
|
-
-
|
7
|
+
- user.errors.each do |attribute, message|
|
8
8
|
%li= "#{attribute} : #{message}"
|
9
9
|
= render 'fields', :f => f
|
10
10
|
.actions
|
data/test/dummy/bin/rake
ADDED
data/test/dummy/config.ru
CHANGED