amber-kit 0.0.3 → 0.0.5

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: 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