amber-kit 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: abb5d6f5194b5bcc43b59ae0fe579bc79e343535
4
- data.tar.gz: e0b86813cc0a55e49d0da869671cc1401885a86f
3
+ metadata.gz: 4daafd7c33b3564f976ebc47625157d334790224
4
+ data.tar.gz: 28400cb07fc9ee630e8aa9fdb4dd99908f7c60c2
5
5
  SHA512:
6
- metadata.gz: '018de9241807b73a26e98dc1bf0f4f8019c3e459ee83bfd79991582e8829f5735eabdfbe8ae4f42c70b5b95a80ffb4b6dfd668b7ea4ee1e2b9bd8772d4dbbfa4'
7
- data.tar.gz: 1f44b60554f41266fd0e84069504302203cce62fc520424368e2f9468ac3c0fed8d5e711ab38bc53d15b6b8d0eb48e0e7a8bb31770eb78b7833966112d5e1ac3
6
+ metadata.gz: 0b58a7882fbffd206867f51843012075b729551537eca2e26db84b4785a525cb8a6b11e39d4113aeb0d6b56ecc5d0ccba275f293eded1984c0b1740d51918d9a
7
+ data.tar.gz: 29bef4bb4544de9092a0071ca294a655077d021dae68e43d48513c9844722fb060fba13c34786c401cc3de306c21c707accec67aa202ae02195c2c94527e6ebd
data/amber.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "amber-kit"
3
- s.version = "0.0.3"
3
+ s.version = "0.0.5"
4
4
  s.authors = ["Jakit"]
5
5
  s.date = "2017-06-03"
6
6
  s.summary = "A glitter network toolkit"
@@ -185,7 +185,9 @@ class Amber::Http::Request < Amber::Http
185
185
  form_items.each do |item|
186
186
  item_info = item.split('=')
187
187
  if item_info.length == 2
188
- @body[item_info[0]] = item_info[1]
188
+ key = URI.decode item_info[0]
189
+ value = URI.decode item_info[1]
190
+ @body[key] = value
189
191
  end
190
192
  end
191
193
  end
data/lib/amber/model.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  class Amber::Model
2
-
3
2
  def initialize
4
3
  @data = {}
5
4
  @data["id"] = Amber::Data::IntegerData.new
@@ -18,6 +17,9 @@ class Amber::Model
18
17
  def []=(key, value)
19
18
  if value.is_a? Amber::Data
20
19
  @data[key] = value
20
+ self.define_singleton_method key.to_sym do
21
+ @data[key]
22
+ end
21
23
  end
22
24
  end
23
25
 
data/lib/amber/storage.rb CHANGED
@@ -1,8 +1,16 @@
1
1
  class Amber::Storage
2
- attr_reader :status, :data
2
+ attr_reader :status, :model, :data
3
3
 
4
- def initialize
4
+ def initialize(model, driver)
5
5
  @status = false
6
- @data = nil
6
+ unless model.is_a? Amber::Model
7
+ raise "#{model} should be an instance of Amber::Model"
8
+ end
9
+ unless driver.include? Amber::Storage::Driver
10
+ raise "#{driver} should be implement Amber::Storage::Driver"
11
+ end
12
+ @model = model
13
+ @driver = driver
14
+ @data = []
7
15
  end
8
16
  end
@@ -1,116 +1,53 @@
1
1
  class Amber::Storage::Json < Amber::Storage
2
- def initialize(file_path)
3
- @file_path = file_path
4
- end
5
-
6
- def fetch
7
- data = []
8
- if raw_data = self.read_file
9
- data = self.deserialize(raw_data)
2
+ include Amber::StorageDelegate
3
+
4
+ def initialize(model, file_name)
5
+ super model, Amber::Storage::Driver::File.new(file_name)
6
+ if @driver.mount
7
+ @status = true
10
8
  end
11
- data.first
9
+ @data = {}
12
10
  end
13
-
14
- def fetch_all
15
- data = []
16
- if raw_data = self.read_file
17
- data = self.deserialize(raw_data)
18
- end
19
- data
11
+
12
+ def get(id)
13
+ self.refresh
14
+ @data[id.to_s]
20
15
  end
21
16
 
22
- def save(data)
23
- if File.exist? @file_path
24
- file = File.open(@file_path, "w")
25
- file.puts self.serialize(data)
26
- file.close
27
- end
17
+ def post(model)
18
+ self.refresh
19
+ @data[model.id]
28
20
  end
29
21
 
30
- def update(data)
31
- if raw_data = self.read_file
32
- origin_data = self.deserialize(raw_data)
33
- new_data = []
34
-
35
- if data.is_a? Array
36
- origin_data.each do |item|
37
- new_item = item
38
- data.each do |data_item|
39
- if data_item["id"] == item["id"]
40
- new_item = data_item
41
- end
42
- end
43
- new_data.push(new_item)
44
- end
45
- else
46
- origin_data.each do |item|
47
- new_item = item
48
- if data["id"] == item["id"]
49
- new_item = data
50
- end
51
- new_data.push(new_item)
52
- end
53
- end
54
-
55
- self.save(new_data)
56
- end
22
+ def patch(id, model)
23
+
57
24
  end
58
25
 
59
- def delete(data)
60
- if raw_data = self.read_file
61
- origin_data = self.deserialize(raw_data)
62
- new_data = []
63
-
64
- if data.is_a? Array
65
- origin_data.each do |item|
66
- retain = true
67
- data.each do |data_item|
68
- if data_item["id"] == item["id"]
69
- retain = false
70
- end
71
- end
72
- new_data.push(item) if retain
73
- end
74
- else
75
- origin_data.each do |item|
76
- retain = true
77
- if data["id"] == item["id"]
78
- retain = false
79
- end
80
- new_data.push(item) if retain
81
- end
82
- end
26
+ def delete(id)
27
+
28
+ end
83
29
 
84
- self.save(new_data)
30
+ def refresh
31
+ data = @driver.read
32
+ data = self.parse data
33
+ if data
34
+ @data = data
85
35
  end
86
36
  end
87
37
 
88
- def serialize(data)
38
+ def parse(data)
89
39
  begin
90
- data = [data] unless data.is_a? Array
91
- JSON.generate(data)
40
+ JSON.parse data
92
41
  rescue Exception => e
93
42
  p e
94
43
  end
95
44
  end
96
45
 
97
- def deserialize(data)
46
+ def generate(data)
98
47
  begin
99
- JSON.parse(data)
48
+ JSON.generate data
100
49
  rescue Exception => e
101
50
  p e
102
51
  end
103
52
  end
104
-
105
- def read_file
106
- if File.exist? @file_path
107
- file = File.open(@file_path)
108
- raw_data = file.read
109
- raw_data = "[]" if raw_data.empty?
110
- file.close
111
- return raw_data
112
- end
113
- end
114
- end
115
-
116
- require "json"
53
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: amber-kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jakit