mogli 0.0.23 → 0.0.24

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.
Files changed (3) hide show
  1. data/lib/mogli.rb +0 -1
  2. data/lib/mogli/model.rb +28 -11
  3. metadata +5 -21
data/lib/mogli.rb CHANGED
@@ -3,7 +3,6 @@ module Mogli
3
3
  end
4
4
 
5
5
  require "httparty"
6
- require "hashie"
7
6
 
8
7
 
9
8
  require "mogli/authenticator"
data/lib/mogli/model.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'mogli/model/search'
2
2
 
3
3
  module Mogli
4
- class Model < Hashie::Dash
4
+ class Model
5
5
  extend Mogli::Model::Search
6
6
 
7
7
  set_search_type :all
@@ -17,25 +17,25 @@ module Mogli
17
17
  end
18
18
 
19
19
  def initialize(hash={},client=nil)
20
+ @_values = {}
20
21
  self.client=client
21
- super(hash||{})
22
+ hash.each do |k,v|
23
+ self.send("#{k}=",v)
24
+ end
22
25
  end
23
26
 
24
27
  def post_params
25
28
  post_params = {}
26
29
  self.class.creation_keys.each do |key|
27
- post_params[key] = self[key]
30
+ post_params[key] = @_values[key.to_s]
28
31
 
29
32
  # make sure actions and any other creation_properties that aren't just
30
33
  # hash entries get added...
31
- if post_params[key].nil? &&
32
- self.respond_to?(key.to_sym) && !self.send(key.to_sym).nil?
33
-
34
- val = self.send(key.to_sym)
35
- post_params[key] = if val.respond_to?(:to_json)
34
+ if post_params[key].nil? && self.respond_to?(key.to_sym) && !(val=self.send(key.to_sym)).nil?
35
+ post_params[key] = if val.is_a?(Array)
36
+ "[#{val.map { |v| v.respond_to?(:to_json) ? v.to_json : nil }.compact.join(',')}]"
37
+ elsif val.respond_to?(:to_json)
36
38
  val.to_json
37
- elsif val.is_a?(Array)
38
- "[#{val.map { |v| v.respond_to?(:to_json) ? v.to_json : nil }.compact.join(',')}]"
39
39
  else
40
40
  nil
41
41
  end
@@ -66,6 +66,19 @@ module Mogli
66
66
  puts "Warning: property #{property} doesn't exist for class #{self.class.name}"
67
67
  end
68
68
 
69
+ def self.property(arg)
70
+ @properties ||= []
71
+ @properties << arg
72
+ define_method arg do
73
+ @_values[arg.to_s]
74
+ end
75
+ define_method "#{arg}=" do |val|
76
+ @_values[arg.to_s] = val
77
+ end
78
+ end
79
+
80
+
81
+
69
82
  def self.define_properties(*args)
70
83
  args.each do |arg|
71
84
  property arg
@@ -122,7 +135,11 @@ module Mogli
122
135
  other = self.class.find(id,client)
123
136
  merge!(other) if other
124
137
  end
125
-
138
+
139
+ def merge!(other)
140
+ @_values.merge!(other.instance_variable_get("@_values"))
141
+ end
142
+
126
143
  def self.recognize?(data)
127
144
  true
128
145
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mogli
3
3
  version: !ruby/object:Gem::Version
4
- hash: 49
4
+ hash: 47
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 23
10
- version: 0.0.23
9
+ - 24
10
+ version: 0.0.24
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Mangino
@@ -18,26 +18,10 @@ cert_chain: []
18
18
  date: 2011-02-01 00:00:00 -05:00
19
19
  default_executable:
20
20
  dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: hashie
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 23
30
- segments:
31
- - 0
32
- - 2
33
- - 0
34
- version: 0.2.0
35
- type: :runtime
36
- version_requirements: *id001
37
21
  - !ruby/object:Gem::Dependency
38
22
  name: httparty
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ requirement: &id001 !ruby/object:Gem::Requirement
41
25
  none: false
42
26
  requirements:
43
27
  - - ">="
@@ -49,7 +33,7 @@ dependencies:
49
33
  - 3
50
34
  version: 0.4.3
51
35
  type: :runtime
52
- version_requirements: *id002
36
+ version_requirements: *id001
53
37
  description: Simple library for accessing the facebook Open Graph API
54
38
  email: mmangino@elevatedrails.com
55
39
  executables: []