pry-parsecom 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,9 +1,63 @@
1
1
  # pry-parsecom
2
2
 
3
- CLI for parse.com
3
+ pry-parsecom is a REPL for parse.com based on pry. It allows you to manage your parse.com applications through CLI.
4
4
 
5
5
  ## Usage
6
6
 
7
+ ### Login/Logout
8
+
9
+ First of all, you should log in parse.com. Once you log in, your account, credentials and schemas are stored in ~/.pry-console directory.
10
+
11
+ $ pry-parsecom
12
+ [1] pry(main)> login-parse
13
+ Email for parse.com: andyjpn@gmail.com
14
+ Password for parse.com:
15
+ logged in
16
+ [2] pry(main)> logout-parse
17
+ logged out
18
+
19
+ ### Show your applications' information
20
+
21
+ There are three main show-something commands to see your applications' information.
22
+
23
+ - show-application command lists all names of your parse applications.
24
+ - show-classes command lists all classes defined in the using parse application.
25
+ - show-schemas command shows schemas for the given parse class.
26
+
27
+ Note that classes and schemas are cached when you call login-parse command. To update them you need to calling the command again.
28
+
29
+ ### Choose an application
30
+
31
+ Before accessing your parse.com application, you have to declare which application you use by calling the use-application command.
32
+
33
+ [1] pry(main)> use-application YourApp
34
+ The current app is YourApp.
35
+
36
+ ### Use parse objects
37
+
38
+ Once you choose an application, parsecom Objects for the application are automatically defined. You can use these objects to manage your parse.com application.
39
+
40
+ [1] pry(main)> use-application YourApp
41
+ The current app is YourApp.
42
+ [2] pry(main)> post = Post.find(:where => {:body => 'Hello'}).first
43
+ => [---
44
+ __type: Post
45
+ author:
46
+ __type: Pointer
47
+ className: _User
48
+ objectId: ZybBXQEIjI
49
+ body: Hello
50
+ comments: <Ralations>
51
+ ...snip...
52
+ [3] pry(main)> post.body = 'World!'
53
+ => "World!"
54
+ [4] pry(main)> post.save!
55
+ => true
56
+
57
+ To know more detail about the parsecom library, see http://github.com/technohippy/parsecom
58
+
59
+ ### Examples
60
+
7
61
  $ pry-parsecom
8
62
  [1] pry(main)> help parse.com
9
63
  Parse.com
@@ -15,37 +69,42 @@ CLI for parse.com
15
69
  show-schema Show a parse class schema
16
70
  use-application Set the current parse.com application
17
71
  [2] pry(main)> show-applications
18
- Input parse.com email: andyjpn@gmail.com
19
- Input parse.com password:
20
- Name | Selected
21
- ===================
22
- FakeApp |
23
- FakeApp2 |
72
+ Email for parse.com: andyjpn@gmail.com
73
+ Password for parse.com:
74
+ Name | Using
75
+ ================
76
+ FakeApp |
77
+ FakeApp2 |
78
+ (cached at: 2013-11-18 13:59:48 +0900)
24
79
  [3] pry(main)> use-application FakeApp
25
80
  The current app is FakeApp.
26
81
  [4] pry(main)> show-applications
27
- Name | Selected
28
- ===================
29
- FakeApp | *
30
- FakeApp2 |
82
+ Name | Using
83
+ ================
84
+ FakeApp | *
85
+ FakeApp2 |
86
+ (cached at: 2013-11-18 13:59:48 +0900)
31
87
  [5] pry(main)> show-credentials
32
- Key | Value
33
- =========================================================
34
- APPLICATION_ID | abcdefghijklmnopqrstuvwxyzabcdefghijklmn
35
- REST_API_KEY | abcdefghijklmnopqrstuvwxyzabcdefghijklmn
36
- MASTER_KEY | abcdefghij******************************
88
+ Key | Value
89
+ =========================================================
90
+ APPLICATION_ID | abcdefghijklmnopqrstuvwxyzabcdefghijklmn
91
+ REST_API_KEY | abcdefghijklmnopqrstuvwxyzabcdefghijklmn
92
+ MASTER_KEY | abcdefghij******************************
93
+ (cached at: 2013-11-18 13:59:48 +0900)
37
94
  [6] pry(main)> show-classes
38
- Name
39
- =======
40
- Comment
41
- Post
42
- _User
95
+ Name | Class
96
+ =====================
97
+ Comment | Comment
98
+ Post | Post
99
+ _User | Parse::User
100
+ (cached at: 2013-11-18 13:59:48 +0900)
43
101
  [7] pry(main)> show-schema Post
44
- Name | Type
45
- ============================
46
- author | pointer<_User>
47
- body | string
48
- comments | relation<Comment>
102
+ Name | Type
103
+ ============================
104
+ author | pointer<_User>
105
+ body | string
106
+ comments | relation<Comment>
107
+ (cached at: 2013-11-18 13:59:48 +0900)
49
108
  [8] pry(main)> Post.find :all
50
109
  => [---
51
110
  __type: Post
@@ -55,28 +114,10 @@ CLI for parse.com
55
114
  objectId: ZybBXQEIjI
56
115
  body: Hello
57
116
  comments: <Ralations>
58
- createdAt: '2013-11-17T13:37:44.055Z'
59
- updatedAt: '2013-11-17T13:38:30.908Z'
60
- objectId: lNKMPYSCTw
61
- ,
62
- ---
63
- __type: Post
64
- author:
65
- __type: Pointer
66
- className: _User
67
- objectId: ZybBXQEIjI
68
- body: World
69
- comments: <Ralations>
70
- createdAt: '2013-11-17T14:33:00.134Z'
71
- updatedAt: '2013-11-17T14:33:25.436Z'
72
- objectId: ur2StDqAFD
73
- ]
117
+ ...snip...
74
118
  [9] pry(main)> logout
75
119
  logged out
76
- [10] pry(main)> show-applications
77
- Name | Selected
78
- ===================
79
- [11] pry(main)> exit
120
+ [10] pry(main)> exit
80
121
 
81
122
  ## Contributing
82
123
 
data/lib/pry-parsecom.rb CHANGED
@@ -16,9 +16,9 @@ if ENV['ENABLE_PRY_PARSECOM']
16
16
  module_function
17
17
 
18
18
  def ask_email_and_password
19
- print 'Input parse.com email: '
19
+ print 'Email for parse.com: '
20
20
  email = gets
21
- print 'Input parse.com password: '
21
+ print 'Password for parse.com: '
22
22
  password = STDIN.noecho(&:gets)
23
23
  puts
24
24
  [email.strip, password.strip]
@@ -14,7 +14,7 @@ PryParsecom::Commands.create_command 'show-classes' do
14
14
 
15
15
  def process
16
16
  if 1 < args.size
17
- output.puts opt
17
+ output.puts opts
18
18
  return
19
19
  end
20
20
 
@@ -26,9 +26,10 @@ PryParsecom::Commands.create_command 'show-classes' do
26
26
  return
27
27
  end
28
28
 
29
- table = PryParsecom::Table.new %w(Name)
30
- setting.classes.each do |klass|
31
- table.add_row klass
29
+ table = PryParsecom::Table.new %w(Name Class)
30
+ setting.classes.each do |parse_class|
31
+ class_name = parse_class.sub /^_/, 'Parse::'
32
+ table.add_row [parse_class, class_name]
32
33
  end
33
34
  output.puts table
34
35
  output.puts "(cached at: #{PryParsecom::Setting.cache_time})"
@@ -14,7 +14,7 @@ PryParsecom::Commands.create_command "show-credentials" do
14
14
 
15
15
  def process
16
16
  if 1 < args.size
17
- output.puts opt
17
+ output.puts opts
18
18
  return
19
19
  end
20
20
 
@@ -14,7 +14,7 @@ PryParsecom::Commands.create_command "show-schema" do
14
14
 
15
15
  def process
16
16
  unless args.size == 1
17
- output.puts opt
17
+ output.puts opts
18
18
  return
19
19
  end
20
20
 
@@ -15,7 +15,7 @@ PryParsecom::Commands.create_command 'use-application' do
15
15
  def process
16
16
  PryParsecom::Setting.setup_if_needed
17
17
  unless args.size == 1
18
- output.puts opt
18
+ output.puts opts
19
19
  return
20
20
  end
21
21
  app_name = args.first.to_s
@@ -30,7 +30,7 @@ PryParsecom::Commands.create_command 'use-application' do
30
30
  end
31
31
 
32
32
  setting = PryParsecom::Setting[app_name]
33
- setting.set
33
+ setting.apply
34
34
  PryParsecom::Setting.current_app = app_name
35
35
  output.puts "The current app is #{app_name}."
36
36
  end
@@ -3,5 +3,29 @@ module Parse
3
3
  def to_s
4
4
  to_h.to_yaml
5
5
  end
6
+
7
+ def inspect
8
+ to_s
9
+ end
10
+ end
11
+ end
12
+
13
+ class Array
14
+ #alias_method :inspect_original, :inspect
15
+ alias_method :inspect_original, :to_s
16
+ #def inspect
17
+ def to_s
18
+ if self.empty? || self.all? {|e| e === Parse::Object}
19
+ puts self.first.class.name
20
+ heads = self.first.to_h.keys
21
+ table = PryParsecom::Table.new heads
22
+ self.each do |e|
23
+ table.add_row heads.map{|h| e[h]}
24
+ end
25
+ table.to_s
26
+ else
27
+ puts :inspect_original
28
+ inspect_original
29
+ end
6
30
  end
7
31
  end
@@ -73,7 +73,7 @@ module PryParsecom
73
73
  end
74
74
  unless settings.empty?
75
75
  settings = YAML.load settings
76
- @@current_app = settings['current_app']
76
+ self.current_app = settings['current_app']
77
77
  end
78
78
  return true
79
79
  end
@@ -176,7 +176,7 @@ module PryParsecom
176
176
  app_name, app_id, api_key, master_key, schemas
177
177
  end
178
178
 
179
- def set
179
+ def apply
180
180
  Parse.credentials :application_id => @app_id, :api_key => @api_key, :master_key => @master_key
181
181
  Parse::Client.default.application_id = @app_id
182
182
  Parse::Client.default.api_key = @api_key
@@ -1,7 +1,10 @@
1
1
  module PryParsecom
2
2
  class Table
3
- def initialize heads, rows=[]
3
+ attr_accessor :indent
4
+
5
+ def initialize heads, indent=' ', rows=[]
4
6
  @heads = heads
7
+ @indent = indent
5
8
  @col_widths = Hash.new 0
6
9
  @heads.each do |head|
7
10
  @col_widths[head] = head.size
@@ -51,7 +54,7 @@ module PryParsecom
51
54
  }.join " | "
52
55
  ret += "\n"
53
56
  end
54
- ret
57
+ ret.gsub /^/, @indent
55
58
  end
56
59
  end
57
60
  end
@@ -1,5 +1,5 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module PryParsecom
4
- VERSION = "0.0.5"
4
+ VERSION = "0.0.6"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-parsecom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-11-20 00:00:00.000000000 Z
12
+ date: 2013-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: pry